Table des matières:

Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Étapes
Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Étapes

Vidéo: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Étapes

Vidéo: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Étapes
Vidéo: Warm Up | SancaThon - “Programando com a DragonBoard” | Parte 3 2024, Novembre
Anonim
Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine
Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine

Essa publicação tem como objetivo mostrar os passos necessários para desenvolver aplicações analógicas usando Dragonboard 410c e Linker Sprite Mezzanine.

Étape 1: Pré Requisitos:

Les conditions préalables requises:

Plataforma de desenvolvimento (cible):

  • Dragonboard 410c;
  • Linker Sprite mezzanine;
  • Linux Linaro basé sur Debian 17.04.1;
  • Image de démarrage avec SPI habilité;
  • Bibliothèque Libsoc.

Étape 2: Como Funciona a Comunicação Analógica Entre Dragonboard 410c E Linker Sprite Mezzanine

Como Funciona a Comunicação Analógica Entre Dragonboard 410c E Linker Sprite Mezzanine
Como Funciona a Comunicação Analógica Entre Dragonboard 410c E Linker Sprite Mezzanine

O Linker Sprite Mezzanine tem um chip ADC integrado para que les modules analógicos possam ser usados atraves da Dragonboard 410c.

O chip ADC usado é o MCP3004 e comunica com a Dragonboard 410c através da interface SPI.

Étape 3: Interface Habilitando SPI Na Dragonboard 410c

Vous pouvez utiliser l'image de démarrage novo pour Dragonboard 410c avec l'habilitation SPI, ou utiliser l'image de démarrage esse já compilado e com SPI habilitado.

Côme chair ou image de démarrage avec Dragonboard 410c?

Após obter o boot image com SPI habilitado, o próximo passo é chairar esse boot image na Dragonboard 410c.

Étape 4: Bibliothèque Libsoc

libsoc é une biblioteca qui vamos usar pour desenvolver aplicações analógicas na Dragonboard 410c com Linker Sprite Mezzanine.

Comme dependências da biblioteca libsoc são:

  • construire-essentiel
  • autoconf
  • fabrication automobile
  • libtool-bin
  • pkg-config
  • python-dev

sudo apt-get install build-essential autoconf automake libtool-bin pkg-config python-dev

Pront! Feito isso, temos o ambiente preparado para instalar a biblioteca libsoc.

Étape 5: Instalando Libsoc Na Dragonboard 410c

Seguem as etapas para instalar a biblioteca libsoc:

wget -c https://github.com/jackmitch/libsoc/archive/0.8.2.zipunzip 0.8.2.zip cd libsoc-0.8.2 autoreconf -i./configure --enable-python=2 --enable- board=dragonboard410c --with-board-configs make sudo make install sudo ldconfig /usr/local/lib sudo reboot

Étape 6: Exemple: Rhéostat coulissant

Exemple: Rhéostat coulissant
Exemple: Rhéostat coulissant

Considérant que le module de rhéostat coulissant est branché sur le port ADC1 de Linker Sprite Mezzanine, siga os próximos passos para executar o código.

Code:

#comprendre

#include #include #include #include #include #include #include #include #include #include "libsoc_spi.h" #include "libsoc_gpio.h" #include "libsoc_debug.h" #define GPIO_CS 18 statique uint8_t tx[3], rx[3]; int main() { int valeur_adc; gpio *gpio_cs; libsoc_set_debug(0); gpio_cs = libsoc_gpio_request(GPIO_CS, LS_SHARED); if(gpio_cs == NULL) { goto fail; } libsoc_gpio_set_direction(gpio_cs, SORTIE); if(libsoc_gpio_get_direction(gpio_cs) != SORTIE){ printf("Impossible de définir la direction sur SORTIE !\n"); aller à l'échec; } spi *spi_dev = libsoc_spi_init(0, 0); if(!spi_dev){ printf("Impossible d'obtenir le périphérique spidev !\n"); renvoie EXIT_FAILURE; } libsoc_spi_set_mode(spi_dev, MODE_0); libsoc_spi_get_mode(spi_dev); libsoc_spi_set_speed(spi_dev, 10000); libsoc_spi_get_speed(spi_dev); libsoc_spi_set_bits_per_word(spi_dev, BITS_8); libsoc_spi_get_bits_per_word(spi_dev); tx[0] = 0x01; tx[1] = 0x80; tx[2] = 0x00; while(1) { libsoc_gpio_set_level(gpio_cs, HAUT); dormir(10); libsoc_gpio_set_level(gpio_cs, BAS); libsoc_spi_rw(spi_dev, tx, rx, 3); libsoc_gpio_set_level(gpio_cs, HAUT); valeur_adc = (rx[1]<<8)&0b1100000000; valeur_adc |= (rx[2]&0xff); printf("adc_value:%d\n", adc_value); sommeil(1); } gratuit: libsoc_spi_free(spi_dev); échec: if(gpio_cs) { libsoc_gpio_free(gpio_cs); } renvoie EXIT_SUCCESS; }

Salve o código como: slide.c

Compiler le code:

gcc slide.c -o slide -lsoc

Exécuter o projeto:

sudo./slide

Conseillé: