Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Generare valori con DAC molto rapidi

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[41] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentewimatech » 28 apr 2023, 14:26

GioCosco ha scritto:La soluzione più elegante ed efficiente sarebbe tenere tutto in RAM e mandare i dati a due DAC SPI usando il DMA. Non è però la più semplice ma probabilmente dovresti gestire (rallentare) la velocità di refresh perché il DMA risolverebbe tutto in hardware.


Cercando appunto on line ho visto dei progetti fatti con ESP32 e dac in I2S che sfruttando il DMA leggono dei file audio o ILDA e li "sparano" ai DAC ma per le mie nozioni sono progetti abbastanza complicati da prendere in mano ed adattarli alle mie necessità
Avatar utente
Foto Utentewimatech
50 2 7
Frequentatore
Frequentatore
 
Messaggi: 240
Iscritto il: 24 feb 2022, 9:34

0
voti

[42] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentedadduni » 28 apr 2023, 15:15

Guarda, secondo i conti di Marco ogni dac ha una frequenza di frequenza di 47kSps
Non pensarci due volte e prendi un DAC audio che ha 16bit di risoluzione, campiona a 48kSps ed è già stereo.
Con un solo componente risolvi tutti i problemi.

In I2S è facile facile facile caricare il programma da una SD in un buffer e poi portare i dati dal buffer al DAC con un DMA.

dimentica Arduino e prendi un STM32 che va facilmente a 80-100MHz e risolvi tutto con facilità.
Non vedo perché usare un DAC parallelo che ti occupa 20 PIN quando in I2S ce la fai più che tranquillamente con 2pin
Avatar utente
Foto Utentedadduni
2.073 2 7 12
Expert EY
Expert EY
 
Messaggi: 1370
Iscritto il: 23 mag 2014, 16:26

0
voti

[43] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentewimatech » 28 apr 2023, 15:29

Infatti proprio stamattina mi è arrivato l'stm32 e il dac audio sto rovistando on line per capire come gestire il DMA volevo avere conferma da chi ne sa molto più di me a riguardo per capire se stavo seguendo la strada giusta
Avatar utente
Foto Utentewimatech
50 2 7
Frequentatore
Frequentatore
 
Messaggi: 240
Iscritto il: 24 feb 2022, 9:34

0
voti

[44] Re: Generare valori con DAC molto rapidi

Messaggioda Foto UtenteEcoTan » 28 apr 2023, 16:43

Secondo me un dilettante non può programmare il DMA a partire da zero cioè in Assembler o altri linguaggi "puri" senza altri supporti relativi alla MCU utilizzata.
Io lo ho programmato ma utilizzando il compilatore C di Microchip che prevede almeno delle apposite istruzioni, tipo:
unsigned int Buffer[2] __attribute__((space(dma)));
DMA0STA = __builtin_dmaoffset(Buffer);
eccetera
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5420
Iscritto il: 29 gen 2014, 8:54

0
voti

[45] Re: Generare valori con DAC molto rapidi

Messaggioda Foto UtenteThEnGi » 28 apr 2023, 16:56

EcoTan ha scritto:Secondo me un dilettante non può programmare il DMA a partire da zero cioè in Assembler o altri linguaggi "puri" senza altri supporti relativi alla MCU utilizzata.


ST(CubeIDE)offre un ottimo tool per gestire il DMA(e altre cose), Loro lo chiamano HAL Link Guida DMA ST
Non è come programmare arduino ma è abbastanza semplice una volta imparato come funziona (HW) un STM32
Non so se nel caso specifico se può essere utile, ma immagino tu possa caricare in memoria i valori e poi "riprodurli" con un tempo dettato da un Timer

Un STM32 in assembly credo sia da pazzi :mrgreen:

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

2
voti

[46] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentedadduni » 29 apr 2023, 10:31

NONONONONONONO
NO
NO

Fermi tutti piano e con calma.

Il passaggio da Arduino a STM32 è tutt'altro che indolore e bisogna pensare bene ad un modo per fare funzionare le cose altrimenti ci risentiamo tra qualche mese quando avrai letto il Datasheet del controllore (e non mi sembra nemmeno il caso).

Hai fondamentalmente due strade per usare un STM32 senza morire inevitabilmente:
- STM32CUBEIDE e configuratore grafico e programmi tutto con le librerie HAL do alto livello (NO assembly e Poche chiamate a registri speciali)
- installi il bootloader di Arduino dentro l STM e ti fai bastare il supporto che Arduino ha già per il tuo processore, se ti serve qualcosa in più fondamentale te lo scrivi a mano e non è facile.

Ora: guarda bene online se il tuo micro è supportato da Arduino, guarda bene se ha tutte le periferiche che servono e inizia a sperimentare SENZA DAC.
Dall'altra parte prendi Arduino mega e sperimenta solo col dac, per vedere quanto riesci ad andare veloce registri di configurazione ecc.
Solo alla fine monta l'esperienza dell'STM con l'esperienza del DAC.
Provare a fare tutto subito a basso livello fai prima a non provarci neppure.
Sono solo i miei due centesimi: piano e con calma, configurazioni prima e funzionamento dopo
Avatar utente
Foto Utentedadduni
2.073 2 7 12
Expert EY
Expert EY
 
Messaggi: 1370
Iscritto il: 23 mag 2014, 16:26

0
voti

[47] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentestandardoil » 29 apr 2023, 12:05

Concordo in pieno
Avatar utente
Foto Utentestandardoil
547 2 4
Stabilizzato
Stabilizzato
 
Messaggi: 420
Iscritto il: 15 lug 2022, 19:14

0
voti

[48] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentewimatech » 30 apr 2023, 14:48

No aspettate, ho digitato male io chiedo scusa quello che ho preso non è stm32 è ESP32
Avatar utente
Foto Utentewimatech
50 2 7
Frequentatore
Frequentatore
 
Messaggi: 240
Iscritto il: 24 feb 2022, 9:34

1
voti

[49] Re: Generare valori con DAC molto rapidi

Messaggioda Foto Utentelelerelele » 30 apr 2023, 17:09

dadduni ha scritto:Il passaggio da Arduino a STM32 è tutt'altro che indolore....
Hai fondamentalmente due strade per usare un STM32 senza morire inevitabilmente:
- STM32CUBEIDE e configuratore grafico e programmi tutto con le librerie HAL do alto livello (NO assembly e Poche chiamate a registri speciali)

Ognuno la vede a modo suo.

io sono passato dirattamente dai pic16 a stm32, senza cubeide, (che mi ha incasinato la vita), e librerie a basso livello, perché a mio parere, ho sempre avuto l'idea che dovevo imparare a fare le cose, non che faccio qualcosa che va, (per caso), ma senza sapere il perché. :-)

Addirittura mi sono riscritto librerie di sensori tipo BMP180 o DHT11 o LM75 ecc. Il che non è difficile, magari ti porta via un po di tempo, se lo fai per lavoro non puoi permetterti, ma da hobbista (io), o da studente che sta imparando è una manna, ti chiarisce bene come gira il tutto.

Ecco perché non mi sono mai neanche interessato ad arduino :mrgreen:

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[50] Re: Generare valori con DAC molto rapidi

Messaggioda Foto UtenteThEnGi » 30 apr 2023, 17:21

Foto Utentelelerelele Concordo !
Secondo me arduino ti "acceca", si semplifica tutto ma ti oscura quello che è il funzionamento del micro.
Tu scrivi digitalWrite(Led,HIGH) e il led si accende, ma dentro il 328P cosa accade ? quli registri vengono modificati ? Che circuiteria viene impiegata ?

Io sono partito (a scuola) PIC16F in assembly per poi passare ad Arduino e infine approdare su ESP32 e STM32.
Ho sofferto quasi di più il passaggio da Assembly a C (Arduino), che quello verso STM. Ho usato a volte il GOTO in C :mrgreen:
Io con CubeIDE mi trovo bene, probabilmente perché non ho esplorato ancora nulla di serio. Scrivere librerie non è nelle mia competenze il massimo è stato in assembly il flusso per la lettura di una RFID Card (Per necessità)

Il passaggio NON è indolore, ma è fattibile
Ci vuole qualche mese (Io ho usato questo tempo), Devi partire dal HW cosa che con arduino non fai.I Datasheet devi saperlo a menadito, se ti viene un dubbio devi sapere subito a che pagina cercare !
Ovviamente dipende dalle competenze individuali e dalla predisposizione. Ma una volta che riesci a far funzionare un STM32 riuscirai ad imparare velocemente qualsiasi uControllore perché quello che impari è il metodo.

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

PrecedenteProssimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti