Índice:

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

Vídeo: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezanino: 6 Passos

Vídeo: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezanino: 6 Passos
Vídeo: Warm Up | SancaThon - “Programando com a DragonBoard” | Parte 3 2024, Novembro
Anonim
Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezanino
Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezanino

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

Etapa 1: Pré Requisitos:

Os pré requisitos são:

Plataforma de desenvolvimento (alvo):

  • Dragonboard 410c;
  • Linker Sprite Mezzanine;
  • Linux Linaro baseado em Debian 17.04.1;
  • Imagem de boot com SPI habilitado;
  • Biblioteca Libsoc.

Passo 2: Como Funciona a Comunicação Analógica Entre Dragonboard 410c E Linker Sprite Mezanino

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

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

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

Etapa 3: Habilitando Interface SPI Na Dragonboard 410c

Você pode gerar uma nova imagem de boot para Dragonboard 410c com SPI habilitado, ou usar esse boot image já compilado e com SPI habilitado.

Como criar uma imagem de boot no Dragonboard 410c?

Após obter a imagem de inicialização com SPI habilitado, o próximo passo é fleshar esse imagem de inicialização no Dragonboard 410c.

Etapa 4: Biblioteca Libsoc

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

As dependências da biblioteca libsoc são:

  • essencial para construir
  • autoconf
  • automake
  • libtool-bin
  • pkg-config
  • python-dev

sudo apt-get install autoconf essencial para compilação automake libtool-bin pkg-config python-dev

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

Etapa 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

Etapa 6: Exemplo: Reostato deslizante

Exemplo: Reostato Deslizante
Exemplo: Reostato Deslizante

Desejando o módulo Reostato deslizante está plugado na porta ADC1 do Linker Sprite Mezzanine, siga os próximos passos para executar o código.

Código:

#incluir

#include #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 uint8_t estático, tx rx [3]; int main () {int adc_value; 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)! = SAÍDA) {printf ("Falha ao definir direção para SAÍDA! / n"); goto fail; } spi * spi_dev = libsoc_spi_init (0, 0); if (! spi_dev) {printf ("Falha ao obter dispositivo spidev! / n"); return 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; enquanto (1) {libsoc_gpio_set_level (gpio_cs, HIGH); usleep (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); dormir (1); } grátis: libsoc_spi_free (spi_dev); falha: if (gpio_cs) {libsoc_gpio_free (gpio_cs); } retornar EXIT_SUCCESS; }

Salve o código como: slide.c

Compilar o código:

gcc slide.c -o slide -lsoc

Execute o projeto:

sudo./slide

Recomendado: