Skip to content

Latest commit

 

History

History
104 lines (78 loc) · 3.51 KB

ads1256.md

File metadata and controls

104 lines (78 loc) · 3.51 KB

Torna all'indice

Guida Collegamento ADS1256 con ESP32

Hardware

Modulo ADS1256

Il modulo utilizzato è un ADC (Analog to Digital Converter) ADS1256 con le seguenti caratteristiche:

  • 24-bit di risoluzione
  • 8 canali analogici
  • Fino a 30kSPS di sampling rate
  • Level shifter 5V-3.3V integrato
  • Range di input analogico: ±5V (con alimentazione 5V)

Collegamenti

Pin ESP32 → Modulo ADS1256

ESP32 Pin ADS1256 Pin Descrizione
GPIO18 SCLK Clock SPI
GPIO23 DIN Data In (MOSI)
GPIO19 DOUT Data Out (MISO)
GPIO5* CS Chip Select
GPIO4* DRDY Data Ready
3.3V VDD Alimentazione
GND GND Ground

* Questi pin possono essere cambiati con altri GPIO disponibili

Pin Opzionali

  • RESET: Non necessario, ha pull-up interno
  • PDWN: Non necessario, ha pull-up interno

Note Importanti

  1. Alimentazione

    • Il modulo può essere alimentato sia a 5V che a 3.3V
    • Con alimentazione a 5V si ha il massimo range di input analogico (±5V)
    • Con alimentazione a 3.3V il range di input si riduce proporzionalmente
  2. Level Shifting

    • Il modulo include già la conversione di livello 5V-3.3V
    • Non sono necessari convertitori di livello aggiuntivi
    • I segnali digitali sono già compatibili con la logica 3.3V dell'ESP32
  3. Ground

    • Per le migliori prestazioni, mantenere separati i ground analogici e digitali
    • Collegare entrambi in un unico punto vicino all'alimentazione
  4. Input Analogici

    • AIN0-AIN7: Accettano tensioni nel range ±5V (con VDD=5V)
    • Impedenza di ingresso: >1MΩ
    • Protezione da sovratensioni integrata

Configurazione Software

Inizializzazione SPI

// Definizione pin
#define ADS1256_DRDY_PIN 4
#define ADS1256_CS_PIN   5

// Configurazione SPI
SPIClass *spi = new SPIClass(VSPI);
spi->begin(18, 19, 23, 5); // SCLK, MISO, MOSI, SS

// Configurazione pin
pinMode(ADS1256_DRDY_PIN, INPUT);
pinMode(ADS1256_CS_PIN, OUTPUT);
digitalWrite(ADS1256_CS_PIN, HIGH);

alt text

Velocità SPI

  • L'ADS1256 supporta clock SPI fino a 2MHz
  • Consigliato iniziare con frequenze più basse (es. 1MHz) e aumentare se necessario
  • La velocità può essere impostata con: spi->beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1));

Troubleshooting

  1. Letture instabili

    • Verificare la qualità dell'alimentazione
    • Controllare la connessione dei ground
    • Ridurre la velocità SPI
  2. Comunicazione non funzionante

    • Verificare i collegamenti dei pin SPI
    • Controllare la tensione di alimentazione
    • Verificare che CS e DRDY funzionino correttamente
  3. Rumore nelle misure

    • Utilizzare cavi schermati per gli input analogici
    • Separare i percorsi dei segnali analogici e digitali
    • Considerare l'uso di ferriti sui cavi di alimentazione

Il FW, completo di pagina web di interfaccia, è reperibile nella cartella src: https://github.com/marconicivitavecchia/2024-pedana-salto/tree/main/src

La libreria ADS1256_DMA.h in uso imposta già internamente sia le porte digitali che il BUS SPI secondo le pedinature sopra riportate per cui non è necessario eseguire la loro configurazione esplicita all'interno della funzione setup().

Sitografia:

Torna all'indice