Pagina 1 di 6

Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 16:28
da wimatech
Ciao a tutti, sto cercando di mettere in piedi un proiettore laser con galvanometri.
Al momento invio tramite PC degli input ad un Arduino al quale ho collegato in I2C due DAC MCP4725 i quali a loro volta sono collegati ad una schedina che amplifica il segnale analogico e lo da in pasto ai drive che comandano i galvanometri.
Tanto per capirci meglio:


La parte di op-amp funziona grazie anche ai consigli del forum :ok:
Praticamente sta funzionando ma vorrei migliorare la situazione in quanto:

Collegando 2 DAC di questo tipo riesco a generare circa 1500 punti al secondo e vorrei se possibile arrivare a 7000/10000.
Ho anche provato a mettere dei DAC paralleli ma restando attorno ai 12bit di risoluzione ho dovuto riccorrere a delle espansioni di I/O sempre collegate in I2C e il numero di punti generato è addirittura calato a 800.

Avete qualche consiglio?
Mi sembra che esistono delle schede con DAC a bordo della STM se non sbaglio.
Però non vorrei spendere una marea di tempo e fare acquisti inutili.

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 17:08
da EcoTan
Nei miei progettini uso le MCU della serie dsPic33 GP che sono già dotate di DAC per usi stereofonici quindi dovrebbero essere adatti.

Post Scriptum
The Audio DAC provides these key features:
• 16-bit resolution (14-bit accuracy)
• Second-order digital Delta-Sigma modulator
• 256x oversampling ratio
• 100 ksps maximum sampling rate
• User controllable sample clock
• Maximum input signal frequency of 45 kHz
• Differential analog outputs
• Four word deep input buffer
• 16-bit processor I/O and DMA interfaces
Note: The Audio DAC module is designed specifically for the Audio applications. Using
this module for control loop type of applications is not recommended
Ho trovato un livello di uscita poco preciso quindi per bilanciare i canali ho messo due trimmer.

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 18:13
da wimatech
Ho dato un occhiata on line e se non ho capito male vendono il chip puro quindi gli devo costruire tutta la scheda o esistono già su board stile "Arduino"?
E inoltre come vanno programmati?

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 18:39
da EcoTan
Una schedina su millefori si monta in una giornata, sul sito di RobotItaly si trovava una schedina 990012 MuIn dsPIC ma è esaurita. Per potere fare la programmazione, a suo tempo ho scaricato sul PC il sistema di sviluppo MPLAB dal sito Microchip, poi dallo stesso sito ho installato il compilatore C free student, non so se la procedura sia ancora a tutt'oggi così aperta. Poi ci vuole un programmatore tipo pickit. Il modulo DAC è un po' ostico da programmare, bisogna studiare il datasheet o il reference manual. Ma il grosso scoglio secondo me rimane il colloquio col PC per cui non mi pare che ci sia alcun tipo di supporto, e in tutti i casi alla fine sei tu che devi sapere cosa vuoi fare.
Non conosco Arduino, certo se fra i tanti modelli ce ne fosse uno già dotato di DAC sarebbe il caso di usare quello e tutti i problemi sarebbero risolti.

P.S. Una domanda: cosa usi o userai come equipaggio mobile?

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 19:05
da wimatech
in effetti non so quanto valga la pena studiare tutto ciò che mi serve per fare un programmino che di per se deve fare poco ma farglielo fare bene è un altro paio di maniche...

Cosa intendi come equipaggio mobile? parli dei galvo?

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 20:55
da standardoil
C'è una cosa che non ho chiara:


Quando parli di 1500 punti al secondo intendi punti tra di loro slegati oppure esiste una sorta di sequenza?

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 21:38
da wimatech
Se ad esempio devo disegnare questo quadrato:


da PC spedirò questa sequenza di istruzioni:
10;10
20;10
20;20
10;20

Il uC le immagazzina e poi le esegue in sequenza e per farlo emetterà una sequenza di punti per ogni riga es:
10;10
11;10
12;10
[...]

Questa sequenza sposta il laser e disegna la figura.

Su tratti orizzontali e verticali si può evitare di creare una polilinea e andare diretti ma il proiettore nel 99,9% delle volte sarà puntato di traverso e le linee non saranno quasi mai orizzontali o verticali quindi occorre creare le polilinee.

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 21:42
da wimatech
per le applicazioni in cui voglio usare questo proiettore ho stimato una media di 5000 punti da proiettare, considerando che per non avere sfarfalii nel disegno devo avere una frequenza di almeno 24Hz dovrei riuscire ad emettere almeno:
5000pti * 24Hz = 120000 pti/sec
probabilmente la soluzione migliore è proprio un uC serio (Non Arduino) con molti I/O e dei DAC paralleli

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 23 apr 2023, 22:58
da djnz
Le librerie standard e il bus i2c sono lenti, usando dei DAC con interfaccia SPI le cose dovrebbero migliorare di molto.

Re: Generare valori con DAC molto rapidi

MessaggioInviato: 24 apr 2023, 2:34
da EcoTan
Sì, sono curioso di come avvenga la composizione dei movimenti x e y, diciamo la parte elettromeccanica.

P.S. forse usi qualcosa tipo questo:
https://it.aliexpress.com/item/32869192 ... pt=glo2ita