Calcolo setpoint per DAC 12bit.
10 Anni 11 Mesi fa #1
da Cecco
Calcolo setpoint per DAC 12bit. è stato creato da Cecco
Ciao.
Ho un circuito costituito con un PIC18 che comunica con un DAC della Ti a 12bit tramite SPI.
Il tutto funziona nel senso che se gli do i singoli setpoint lui mi genera la tensione corretta come da formula del datasheet.
Ora, volendo generare una rampa, come faccio?
Il comando via SPI deve essere a 24bit:
Io devo far variare solo i bit da D0 a D11.
Come posso fare?
Ho un circuito costituito con un PIC18 che comunica con un DAC della Ti a 12bit tramite SPI.
Il tutto funziona nel senso che se gli do i singoli setpoint lui mi genera la tensione corretta come da formula del datasheet.
Ora, volendo generare una rampa, come faccio?
Il comando via SPI deve essere a 24bit:
Io devo far variare solo i bit da D0 a D11.
Come posso fare?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Cecco
- Autore della discussione
- Visitatori
10 Anni 11 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Calcolo setpoint per DAC 12bit.
Ciao Cecco,
se il comando con il singolo valore funziona, al fine di generare la rampa non devi far altro che ripetere il comando variando D0-D11.
In particolare la rampa la ottieni incrementando sempre di +1 (o piu' a seconda della pendenza della stessa).
Controlli sempre il valore massimo ammesso dal DAC per poi azzerare di conseguenza.
Il tempo tra un incremento e l'altro deve essere costante.
Saluti,
Mauro
se il comando con il singolo valore funziona, al fine di generare la rampa non devi far altro che ripetere il comando variando D0-D11.
In particolare la rampa la ottieni incrementando sempre di +1 (o piu' a seconda della pendenza della stessa).
Controlli sempre il valore massimo ammesso dal DAC per poi azzerare di conseguenza.
Il tempo tra un incremento e l'altro deve essere costante.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Riduci
Di più
10 Anni 11 Mesi fa - 10 Anni 11 Mesi fa #3
da Cecco
Risposta da Cecco al topic Calcolo setpoint per DAC 12bit.
Ciao Mauro.
Si lo so che devo incrementare di uno per avere un incremento dello step minimo della tensione.
Il mio problema è come far cambiare (in automatico diciamo) solo i bit da D0 a D11 lasciando inalterati i primi quattro e gli ultimi otto.
Forse dovrei usare delle routine in bitwise con maschere o roba del genere?
Se ci fosse solo il registro del setpoint della tensione, sarebbe facile, ma qui c'è una parola a 24bit che comprende comandi, indirizzi e dati tutti in una volta.
Si lo so che devo incrementare di uno per avere un incremento dello step minimo della tensione.
Il mio problema è come far cambiare (in automatico diciamo) solo i bit da D0 a D11 lasciando inalterati i primi quattro e gli ultimi otto.
Forse dovrei usare delle routine in bitwise con maschere o roba del genere?
Se ci fosse solo il registro del setpoint della tensione, sarebbe facile, ma qui c'è una parola a 24bit che comprende comandi, indirizzi e dati tutti in una volta.
Ultima Modifica 10 Anni 11 Mesi fa da Cecco.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Cecco
- Autore della discussione
- Visitatori
10 Anni 10 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Calcolo setpoint per DAC 12bit.
Ciao Cecco,
credo che la via sia effettivamente questa, ovvero formare il pacchetto da inviare per mezzo di shift e operazioni bitwise.
Comunque il formato sembra abbastanza facile e te la dovresti cavare con poche operazioni.
Personalmente realizzerei una funzione che accetta indirizzo, dato...
e formatta il tutto in un array da inviare.
Saluti,
Mauro
credo che la via sia effettivamente questa, ovvero formare il pacchetto da inviare per mezzo di shift e operazioni bitwise.
Comunque il formato sembra abbastanza facile e te la dovresti cavare con poche operazioni.
Personalmente realizzerei una funzione che accetta indirizzo, dato...
e formatta il tutto in un array da inviare.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.