Tabla de contenido:

Desenvolvendo Aplicaciones Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps
Desenvolvendo Aplicaciones Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps

Video: Desenvolvendo Aplicaciones Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps

Video: Desenvolvendo Aplicaciones Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Steps
Video: ATPC de 27/06 a 01/07 - Anos Iniciais 2024, Noviembre
Anonim
Desenvolvendo Aplicaciones Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine
Desenvolvendo Aplicaciones Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine

Essa publicación como objetivo mostrar los pasos necesarios para desenvolver aplicaciones analógicas usando Dragonboard 410c e Linker Sprite Mezzanine.

Paso 1: Pré Requisitos:

Os pré requisitos são:

Plataforma de desenvolvimento (Target):

  • Dragonboard 410c;
  • Entresuelo Linker Sprite;
  • Linux Linaro basado en Debian 17.04.1;
  • Imagen de arranque com SPI habilitado;
  • Biblioteca Libsoc.

Paso 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 los módulos analógicos que pueden ser usados através da Dragonboard 410c.

O chip ADC usado é o MCP3004 e comunica con una Dragonboard 410c através de la interfaz SPI.

Paso 3: Habilitando Interface SPI Na Dragonboard 410c

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

¿Cómo descargar la imagen de arranque de la Dragonboard 410c?

Após obter o imagen de arranque con SPI habilitado, o próximo paso é fleshar esse imagen de arranque en Dragonboard 410c.

Paso 4: Biblioteca Libsoc

libsoc es una biblioteca que vamos a usar para desenvolver aplicaciones analógicas en Dragonboard 410c con Linker Sprite Mezzanine.

Como dependencias da biblioteca libsoc são:

  • construir-esencial
  • 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 una biblioteca libsoc.

Paso 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

Paso 6: Ejemplo: reóstato deslizante

Ejemplo: reóstato deslizante
Ejemplo: reóstato deslizante

Considerando que o módulo Sliding Rheostat esteja plugado na porta ADC1 do Linker Sprite Mezzanine, siga los pasos siguientes para ejecutar o código.

Código:

#incluir

#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 estático uint 38_t 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) {ir a fallar; } libsoc_gpio_set_direction (gpio_cs, SALIDA); if (libsoc_gpio_get_direction (gpio_cs)! = SALIDA) {printf ("¡No se pudo establecer la dirección en SALIDA! / n"); ir a fallar; } spi * spi_dev = libsoc_spi_init (0, 0); if (! spi_dev) {printf ("¡No se pudo obtener el 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; while (1) {libsoc_gpio_set_level (gpio_cs, HIGH); dormido (10); libsoc_gpio_set_level (gpio_cs, BAJO); libsoc_spi_rw (spi_dev, tx, rx, 3); libsoc_gpio_set_level (gpio_cs, ALTO); adc_value = (rx [1] << 8) & 0b1100000000; adc_value | = (rx [2] & 0xff); printf ("adc_value:% d / n", adc_value); dormir (1); } gratis: libsoc_spi_free (spi_dev); falla: si (gpio_cs) {libsoc_gpio_free (gpio_cs); } return EXIT_SUCCESS; }

Salve o código como: slide.c

Compilar o código:

gcc slide.c -o slide -lsoc

Ejecutar o projeto:

sudo./slide

Recomendado: