Cov txheej txheem:

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

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

Video: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Kauj Ruam
Video: Warm Up | SancaThon - “Programando com a DragonBoard” | Parte 3 2024, Hlis ntuj nqeg
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.

Kauj Ruam 1: Cov Lus Qhia Tshwj Xeeb:

Yog xav paub ntxiv txog:

Plataforma de desenvolvimento (Lub Hom Phiaj):

  • Dragonboard 410c;
  • Linker Sprite Mezzanine;
  • Linux Linaro baseado em Debian 17.04.1;
  • Khau raj duab com SPI habilitado;
  • Biblioteca Libsoc.

Kauj Ruam 2: Como Funciona thiab Comunicação Analógica Entre Dragonboard 410c E Linker Sprite Mezzanine

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

O Linker Sprite Mezzanine tem um chip ADC integrado para que módulos analógicos possam ser usados através da Dragonboard 410c.

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

Kauj Ruam 3: Habilitando Interface SPI Na Dragonboard 410c

Você pode gerar um novo boot duab para Dragonboard 410c com SPI habilitado, koj siv esse boot duab já compilado e com SPI habilitado.

Puas yog cov duab khau raj ntawm Dragonboard 410c?

Após obter o khau raj duab com SPI muaj kev nyab xeeb, los ntawm kev siv lub tshuab hluav taws xob zoo li Dragonboard 410c.

Kauj Ruam 4: Biblioteca Libsoc

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

Raws li dependências da biblioteca libsoc são:

  • tsim-qhov tseem ceeb
  • autoconf
  • tsheb
  • libtool-bin
  • pkg-teeb tsa
  • python-dev

sudo apt-tau nruab tsim-qhov tseem ceeb autoconf automake libtool-bin pkg-teeb tsa sej-dev

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

Kauj Ruam 5: Instalando Libsoc Na Dragonboard 410c

Seguem li etapas para instalar 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-nrog-board-configs ua sudo ua nruab sudo ldconfig/usr/local/lib sudo reboot

Kauj Ruam 6: Piv txwv: Rheostat zawv zawg

Piv txwv: Zawv zawg Rheostat
Piv txwv: Zawv zawg Rheostat

Kev txiav txim siab ua ke o módulo Zais Rheostat esteja plugado na porta ADC1 do Linker Sprite Mezzanine, siga os próximos passos para executar o código.

Caj dab:

#suav nrog

#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 txx [3]; int lub ntsiab () {int adc_value; gpio *gpio_cs; libsoc_set_debug (0); gpio_cs = libsoc_gpio_request (GPIO_CS, LS_SHARED); yog (gpio_cs == NULL) {goto tsis ua; } libsoc_gpio_set_direction (gpio_cs, OUTPUT); yog (libsoc_gpio_get_direction (gpio_cs)! = OUTPUT) {printf ("Ua tsis tau txoj kev taw qhia rau OUTPUT! / n"); ua tsis tiav; } spi *spi_dev = libsoc_spi_init (0, 0); yog (! spi_dev) {printf ("Ua tsis tau cov cuab yeej spidev! / n"); rov qab 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; thaum (1) {libsoc_gpio_set_level (gpio_cs, HIGH); pw tsaug zog (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 ("adc_value:%d / n", adc_value); tsaug zog (1); } pub dawb: libsoc_spi_free (spi_dev); ua tsis tau: yog (gpio_cs) {libsoc_gpio_free (gpio_cs); } rov qab EXIT_SUCCESS; }

Salve o código como: swb.c

Compile cov ntaub ntawv:

gcc swb.c -o swb -lsoc

Ua qhov kev txiav txim:

sudo./slide

Pom zoo: