Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Scelta bus seriale per ADC e DAC

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] Scelta bus seriale per ADC e DAC

Messaggioda Foto UtenteLucast85 » 23 apr 2013, 21:37

Ciao a tutti!
Ho la necessità di scrivere alcuni registri di circa 40 DAC e 30 ADC. Tali dispositivi non possono essere raggruppati in quanto saranno posizionati su diverse board (dove posso sceglierò ADC e DAC a più canali, ma saranno pochi i casi consentiti).
Tutti dovrebbero comunicare tramite la stessa interfaccia, una scheda USB-SPI-I2C della National Instruments o similari.
Studiando i due protocolli di comunicazione SPI e I2C ho notato che:
  • SPI-Ha bisogno del segnale di selezione dell'IC (SS o CS) e quindi dovrei prevedere 40+30 ulteriori segnali digitali. Troppi.
  • I2C-Pensavo di aver trovato l'alternativa giusta al protocollo SPI ma leggendo vari datasheet mi sono accorto che molto spesso (diciamo quasi sempre) i bit di configurazione degli indirizzi dei dispositivi sono solo 3; ciò mi consente di individuare univocamente solo 8 diversi dispositivi mentre io ne ho molti di più (almeno 30 dello stesso tipo).
Ho pensato a due soluzioni relative ai due casi:
  • SPI-prevedo un demultiplexer per ottenere più segnali di chip select (CS/SS) a partire da pochi, segnali digitali. Così avrei 2^N segnali per poter gestire i CS a partire da sole N linee.
  • I2C-utilizzo dei (de)multiplexer per I2C. Purtroppo però ne devono essere previsti più d'uno in cascata e la comunicazione si complicherebbe.
Quale via mi consigliate di seguire?
Sono ben gradite anche soluzioni alternative.
Grazie, O_/ O_/
Avatar utente
Foto UtenteLucast85
125 2 8
Frequentatore
Frequentatore
 
Messaggi: 189
Iscritto il: 13 nov 2009, 16:34
Località: MC

0
voti

[2] Re: Scelta bus seriale per ADC e DAC

Messaggioda Foto UtenteIsidoroKZ » 30 apr 2013, 9:24

Problema interessante.
Hai valutato il throughput richiesto? Puoi accettare dei ritardi di comunicazione?
Can bus?
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
121,2k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 21059
Iscritto il: 17 ott 2009, 0:00

0
voti

[3] Re: Scelta bus seriale per ADC e DAC

Messaggioda Foto UtenteTardoFreak » 30 apr 2013, 10:43

Per dare una risposta sensata serve sapere la velocità di comunicazione, il numero di campionamenti/trasmissioni al secondo.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[4] Re: Scelta bus seriale per ADC e DAC

Messaggioda Foto UtenteLucast85 » 3 mag 2013, 11:12

Ciò che devo realizzare è un banco test per BMS (Battery Management System). Dato che ci sono, però, vorrei dare la possibilità di inserire un DSP con un modello matematico per consentire un'accurata emulazione delle celle al litio, come descritto in quest'articolo.

Inizialmente le 18 board dovranno fornire delle tensioni variabili fra 0 V e 5 V e delle correnti fino a 3 A. Tali schede dovranno anche misurare queste tensioni e correnti generate per la validazione dei valori, come fanno le SMU (Source Measure Unit). Da qui l'esigenza di avere almeno un DAC ogni board per generare la tensione e di un paio di ADC per la misura della tensione e della corrente.

Fin qui non sono richieste tempistiche stringenti poiché l'obiettivo è quello di verificare le funzionalità del BMS.
Al contrario, se si aggiungerà un DSP col modello matematico della cella al litio, si dovranno avere dei tempi di reazione molto ridotti (i principali IC di controllo per BMS hanno tempi di risposta di circa 10-50 \mu s).

Nel caso in cui non ci sono vincoli temporali importanti pensavo di comunicare dall'interfaccia USB-SPI/I2c/CAN verso ogni singolo DAC e ADC (dunque 18 DAC + 18 ADC a 2 canali). In più dovrei comunicare anche con almeno 18 potenziometri digitali (256 step, 100 kohm) che simulano l'andamento di alcuni NTC (forse ce ne vorranno di più connessi in serie o parallelo per aumentare la risoluzione di ogni canale).

Se si userà il modello matematico e relativo DSP, sarà il DSP stesso a comunicare col PC tramite l'interfaccia USB-xx appena menzionata. Oltre a ciò rimangono i 18 potenziometri digitali da gestire.

Al CAN avevo già pensato, ma dovrei passare attraverso un micro-controllore/DSP poiché non ho trovato ADC o DAC direttamente controllabili col CAN. Il sistema si complicherebbe da subito e non è ciò che avevo in mente.

La scheda NI USB-8451 che possiedo ha un clock rate fino a 12 MHz (SPI) e 250 kHz (I2C). Volendo ho disponibile anche un'interfaccia USB-CAN con bit-rate fino a 1 Mbit/s.
Tutti gli integrati sono ancora in fase di definizione e non conosco il numero di campionamenti/trasmissioni al secondo. Posso dirvi che il DUT (il BMS) campiona potenzialmente fino a 12 kHz.
Credo di utilizzare DAC e ADC a minimo 14 bit.

Scusate se l'ho fatta lunga, spero di aver chiarito il problema.
A presto... O_/
Avatar utente
Foto UtenteLucast85
125 2 8
Frequentatore
Frequentatore
 
Messaggi: 189
Iscritto il: 13 nov 2009, 16:34
Località: MC

0
voti

[5] Re: Scelta bus seriale per ADC e DAC

Messaggioda Foto UtenteLucast85 » 7 mag 2013, 10:44

Mi sto orientando verso la seguente soluzione. Utilizzerò 4 demultiplexer 4-16 linee (74HC154) e saranno controllati con le 8 uscite digitali che ha disponibili la scheda di interfaccia NI USB-8451.
Posso selezionare solo un IC alla volta, ma non dovrebbe essere un grosso problema.

Il datasheet dice che i tempi di propagazione sono dell'ordine delle decine di ns. Dovrebbe essere più che sufficiente. Purtroppo avrò qualche linea in più da gestire, ma non vedo alternative...
Così avrò 8 ingressi di selezione e 16*4 uscite.
Se vi venisse in mente qualcosa... O_/
Avatar utente
Foto UtenteLucast85
125 2 8
Frequentatore
Frequentatore
 
Messaggi: 189
Iscritto il: 13 nov 2009, 16:34
Località: MC

1
voti

[6] Re: Scelta bus seriale per ADC e DAC

Messaggioda Foto Utentebobina » 7 mag 2013, 20:12

Hai valutato anche l'integrato MCP23S17/MCP23S18 della microchip che si comanda in SPI ed ha 16 IO digitali?
Ha l'indirizzo impostabile da 0 a 7, quindi puoi usare con solo 4 IO fino a 16*8 IO ed ha un clock massimo di 10MHz.
Esiste anche la versione I2C ma il clock massimo è 1,7MHz.
Il protocollo è abbastanza semplice e dopo un procedura di init abbastanza piccola si legge e scrivono gli IO abbastanza velocemente.
Avatar utente
Foto Utentebobina
212 6
Frequentatore
Frequentatore
 
Messaggi: 177
Iscritto il: 27 dic 2009, 14:22

0
voti

[7] Re: Scelta bus seriale per ADC e DAC

Messaggioda Foto UtenteLucast85 » 8 mag 2013, 11:22

Grazie per il suggerimento, è diventato un candidato!
Forse posso anche risparmiare qualche linea di CS utilizzando IC con bus SPI utilizzabile in daisy chain...
Avatar utente
Foto UtenteLucast85
125 2 8
Frequentatore
Frequentatore
 
Messaggi: 189
Iscritto il: 13 nov 2009, 16:34
Località: MC


Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti