Sommario:

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

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

Video: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps
Video: 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 è pubblicata come obiettivo per mostrare i passaggi necessari per applicazioni analitiche di sviluppo utilizzando Dragonboard 410c e Linker Sprite Mezzanine.

Passaggio 1: Prerequisiti:

Os pré requisitos são:

Piattaforma di desenvolvimento (Obiettivo):

  • Dragonboard 410c;
  • Linker Sprite mezzanino;
  • Linux Linaro basato su Debian 17.04.1;
  • Immagine di avvio con abilitazione SPI;
  • Biblioteca Libsoc.

Passaggio 2: Como Funciona e 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 integrato per i moduli analogici può essere utilizzato su Dragonboard 410c.

Il chip ADC utilizzato é o MCP3004 e comunica con un Dragonboard 410c attraverso l'interfaccia SPI.

Passaggio 3: Habilitando Interfaccia SPI Na Dragonboard 410c

È possibile modificare una nuova immagine di avvio per Dragonboard 410c con abilitazione SPI, o utilizzare l'immagine di avvio essere compilata e con abilitazione SPI.

Come carne o immagine di avvio nd Dragonboard 410c?

Puoi ottenere l'immagine di avvio con l'abilitazione SPI, o il prossimo passo è carne questa immagine di avvio con Dragonboard 410c.

Fase 4: Biblioteca Libsoc

libsoc é una biblioteca que vamos usar para desenvolver aplicações analógicas na Dragonboard 410c con Linker Sprite Mezzanine.

Come dependências da biblioteca libsoc são:

  • costruire-essenziale
  • autoconf
  • automake
  • libtool-bin
  • pkg-config
  • python-dev

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

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

Passaggio 5: installazione di 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

Passaggio 6: Esempio: reostato scorrevole

Esempio: reostato scorrevole
Esempio: reostato scorrevole

Considerando que o módulo Sliding Rheostat esteja plugado na porta ADC1 do Linker Sprite Mezzanine, siga os próximos passis para executar o código.

Codice:

#includere

#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 static uint8_t tx[3], rx[3]; int main() { int valore_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, OUTPUT); if(libsoc_gpio_get_direction(gpio_cs) != OUTPUT){ printf("Impossibile impostare la direzione su OUTPUT!\n"); andare a fallire; } spi *spi_dev = libsoc_spi_init(0, 0); if(!spi_dev){ printf("Impossibile ottenere il dispositivo spidev!\n"); restituisce 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, HIGH); dormire(10); libsoc_gpio_set_level(gpio_cs, LOW); libsoc_spi_rw(spi_dev, tx, rx, 3); libsoc_gpio_set_level(gpio_cs, HIGH); adc_value = (rx[1]<<8)&0b1100000000; adc_value |= (rx[2]&0xff); printf("valore_adc:%d\n", valore_adc); dormire (1); } libero: libsoc_spi_free(spi_dev); fail: if(gpio_cs) { libsoc_gpio_free(gpio_cs); } restituisce EXIT_SUCCESS; }

Salve o código como: slide.c

Compila il codice:

gcc slide.c -o slide -lsoc

Esegui o progetto:

sudo./slide

Consigliato: