Taula de continguts:

Desenvolupament d'aplicacions analògiques per a Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps
Desenvolupament d'aplicacions analògiques per a Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps

Vídeo: Desenvolupament d'aplicacions analògiques per a Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps

Vídeo: Desenvolupament d'aplicacions analògiques per a Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps
Vídeo: Quantum computing: present and future of a technological revolution 2024, De novembre
Anonim
Desenvolupament d'aplicacions analògiques per a Dragonboard 410c Com Linker Sprite Mezzanine
Desenvolupament d'aplicacions analògiques per a Dragonboard 410c Com Linker Sprite Mezzanine

Essa publicació com a objectiu mostrar els passos necessaris per desenvolupar aplicacions analògiques mitjançant Dragonboard 410c i Linker Sprite Mezzanine.

Pas 1: Requisits previs:

Els requisits previs són:

Plataforma de desenvolupament (Target):

  • Dragonboard 410c;
  • Linker Sprite Mezzanine;
  • Linux Linaro va utilitzar Debian 17.04.1;
  • Boot image com SPI habilitado;
  • Biblioteca Libsoc.

Pas 2: Com Funcionar 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 for that módulos analógicos possam ser usats através da Dragonboard 410c.

El xip ADC utilitzat és el MCP3004 i la comunicació amb Dragonboard 410c através de la interfície SPI.

Pas 3: habilitació de la interfície SPI Na Dragonboard 410c

Podeu utilitzar una imatge d'arrencada nova per a Dragonboard 410c amb SPI habilitat, o utilitzar una imatge d'arrencada ja compilada i amb SPI habilitada.

Com fleshar o boot image a Dragonboard 410c?

Podeu obtenir una imatge d'arrencada amb SPI habilitada, o el pròxim pas es mostrarà com a imatge d'arrencada a Dragonboard 410c.

Pas 4: Biblioteca Libsoc

libsoc és una biblioteca que volem utilitzar per desenvolupar aplicacions analògiques a Dragonboard 410c com Linker Sprite Mezzanine.

Com a dependències de la biblioteca libsoc são:

  • essencial per construir
  • 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, tenim o ambient preparat per instal·lar una biblioteca libsoc.

Pas 5: Instal·leu Libsoc Na Dragonboard 410c

Seguiment de les etapes per instal·lar a la 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 fan sudo make install sudo ldconfig / usr / local / lib sudo reboot

Pas 6: exemple: reòstat lliscant

Exemple: reòstat lliscant
Exemple: reòstat lliscant

Considerando que o módulo Sliding Rheostat està connectat a la porta ADC1 de Linker Sprite Mezzanine, que segueix els pròxims passos per executar o codi.

Codi:

#incloure

#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 valor_adc; gpio * gpio_cs; libsoc_set_debug (0); gpio_cs = libsoc_gpio_request (GPIO_CS, LS_SHARED); if (gpio_cs == NULL) {falla; } libsoc_gpio_set_direction (gpio_cs, OUTPUT); if (libsoc_gpio_get_direction (gpio_cs)! = OUTPUT) {printf ("No s'ha pogut establir la direcció a OUTPUT! / n"); anar fracassat; } spi * spi_dev = libsoc_spi_init (0, 0); if (! spi_dev) {printf ("No s'ha pogut obtenir el dispositiu spidev! / n"); torna 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); adormir (10); libsoc_gpio_set_level (gpio_cs, BAIX); 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 ("adc_value:% d / n", adc_value); dormir (1); } gratuït: libsoc_spi_free (spi_dev); falla: if (gpio_cs) {libsoc_gpio_free (gpio_cs); } torna EXIT_SUCCESS; }

Salve o code com: slide.c

Compila o codi:

gcc slide.c -o slide -lsoc

Executa o projecta:

sudo./slide

Recomanat: