Isi kandungan:

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

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

Video: Desenvolvendo Aplicações Analógicas Para Dragonboard 410c Com Linker Sprite Mezzanine: 6 Langkah
Video: Warm Up | SancaThon - “Programando com a DragonBoard” | Parte 3 2024, November
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 requários para desenvolver aplicações analógicas usando Dragonboard 410c e Linker Sprite Mezzanine.

Langkah 1: Pra Requisitos:

Pra requisitos são:

Plataforma de desenvolvimento (Sasaran):

  • Papan Naga 410c;
  • Linker Sprite Mezzanine;
  • Linux Linaro baseado em Debian 17.04.1;
  • Boot image com SPI habilitado;
  • Biblioteca Libsoc.

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

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

Langkah 3: Habilitando Interface SPI Na Dragonboard 410c

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

Como meatar o boot image na Dragonboard 410c?

Apo obter o boot image com SPI habilitado, o próximo passo é meatar esse boot image na Dragonboard 410c.

Langkah 4: Biblioteca Libsoc

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

Sebagai dependências da biblioteca libsoc são:

  • membina-penting
  • autokonfigurasi
  • automatik
  • tong sampah
  • pkg-konfigurasi
  • python-dev

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

Pronto! Feito Isso, temos o ambiente Preparado para instalar a biblioteca libsoc.

Langkah 5: Instalando Libsoc Na Dragonboard 410c

Seguem sebagai etapas para instalar libloc biblioteca:

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 --diaktifkan- board = dragonboard410c --dengan papan-konfigurasi membuat sudo membuat pemasangan sudo ldconfig / usr / local / lib sudo reboot

Langkah 6: Contoh: Slaid Rheostat

Contoh: Slaid Rheostat
Contoh: Slaid Rheostat

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

Código:

#sertakan

#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 statik uint8_t tx [3], rx [3]; int utama () {int adc_value; gpio * gpio_cs; libsoc_set_debug (0); gpio_cs = libsoc_gpio_request (GPIO_CS, LS_SHARED); jika (gpio_cs == NULL) {goto gagal; } libsoc_gpio_set_direction (gpio_cs, OUTPUT); if (libsoc_gpio_get_direction (gpio_cs)! = OUTPUT) {printf ("Gagal menetapkan arah ke OUTPUT! / n"); goto gagal; } spi * spi_dev = libsoc_spi_init (0, 0); if (! spi_dev) {printf ("Gagal mendapatkan peranti spidev! / n"); pulangkan 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; sementara (1) {libsoc_gpio_set_level (gpio_cs, TINGGI); tidur (10); libsoc_gpio_set_level (gpio_cs, RENDAH); libsoc_spi_rw (spi_dev, tx, rx, 3); libsoc_gpio_set_level (gpio_cs, TINGGI); adc_value = (rx [1] << 8) & 0b1100000000; adc_value | = (rx [2] & 0xff); printf ("adc_value:% d / n", adc_value); tidur (1); } percuma: libsoc_spi_free (spi_dev); gagal: jika (gpio_cs) {libsoc_gpio_free (gpio_cs); } pulangkan EXIT_SUCCESS; }

Salve o código como: slide.c

Kumpulkan o código:

gcc slaid.c -o slaid -lsoc

Laksanakan o projeto:

sudo./slide

Disyorkan: