Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

ADC / DAC virgola mobile o fissa

Elettronica lineare e digitale: didattica ed applicazioni

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

0
voti

[1] ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteRoswell1947 » 15 feb 2024, 12:32

Salve ,ho un'altra questione (forse stupida...boh),riguardante gli adc/dac, da chiarire con qualcuno molto più esperto di me .Se ho dei valori in virgola mobile memorizzati in una ROM (p.es look up table con valori di una funzione coseno e seno) e volessi successivamente convertirli in valore analogico (senza usare microcontrollori) che tipo di dac dovrei usare?Mi spiego meglio,per memorizzare dei valori di seno e coseno di certo non potrò usare la rappresentazione con interi e sarò costretto ad utilizzare quella con mantissa ed esponente oppure quella in virgola fissa ,in questo caso come effettuo la conversione in valore analogico?
Avatar utente
Foto UtenteRoswell1947
89 1 3 8
Stabilizzato
Stabilizzato
 
Messaggi: 438
Iscritto il: 10 feb 2020, 16:39

2
voti

[2] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteGuidoB » 15 feb 2024, 23:06

Ciao,
Roswell1947 ha scritto:Se ho dei valori in virgola mobile ... e volessi successivamente convertirli in valore analogico (senza usare microcontrollori)

In virgola mobile, senza microcontrollori la vedo dura.

Roswell1947 ha scritto:come effettuo la conversione in valore analogico?

La conversione da virgola mobile a intero è digitale, poi la conversione da intero ad analogico (corrente o tensione elettrica) la fa il DAC.

Per ogni campione, la conversione a intero (in C per esempio) potrebbe essere:

Codice: Seleziona tutto
valoreIntero = (unsigned int)(((valoreVirgolaMobile + 1.0) / 2.0) * (RANGE_DAC - 1));

Per esempio se il DAC è a 8 bit, RANGE_DAC è 256, e:

- il valore -1.0 verrà convertito a 0
- il valore 0.0 verrà convertito a 127
- il valore 1.0 verrà convertito a 255

I valori intermedi ovviamente verranno convertiti a valori intermedi.

Roswell1947 ha scritto:Mi spiego meglio,per memorizzare dei valori di seno e coseno di certo non potrò usare la rappresentazione con interi

Certo che puoi usarla. Memorizzi i valori pronti da dare in pasto al DAC, quelli che escono dalla conversione precedente. Così puoi fare la conversione prima, e a run-time non ti serve fare calcoli.

In questo modo potresti non aver bisogno di un microcontrollore, potrebbe bastarti un contatore digitale come generatore di indirizzi per la ROM.

Roswell1947 ha scritto:che tipo di dac dovrei usare?

Se ti bastano 8 bit, un DAC08 per esempio.
Big fan of ƎlectroYou!       Ausili per disabili e anziani su ƎlectroYou
Caratteri utili: À È É Ì Ò Ó Ù α β γ δ ε η θ λ μ π ρ σ τ φ ω Ω º ª ² ³ √ ∛ ∜ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ∃ ∄ ∆ ∈ ∉ ± ∓ ∾ ≃ ≈ ≠ ≤ ≥
Avatar utente
Foto UtenteGuidoB
17,8k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 2809
Iscritto il: 3 mar 2011, 16:48
Località: Madrid

0
voti

[3] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto Utentelelerelele » 18 feb 2024, 13:04

non vedo come puoi andare a convertire valori inferiori ad 1 con un DAC, (non ne ho mai usati, ma a buon senso mi pare sia così).

Per usare il convertitore, dovrai pure andare a moltiplicare un valore intero per il tuo float, ed avrai un intero a tua volta che convertirai, i decimali andranno persi, prendendo il solo valore intero, quello che puoi fare è aumentare l'intero, arrivando al valore massimo di uscita, fruttando così il numero maggiore di decimli.

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

[4] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteIsidoroKZ » 19 feb 2024, 6:47

Perché hai i valori delle funzioni trigonometriche in formato floating? Direi che in fixed point possa andare altrettanto bene. Con una risoluzione di 8bit vicino allo zero hai una risoluzione di circa 0.2 gradi, mentre vicino a 1 diventa di 5 gradi. Con un 12 bit la risoluzione diventa meglio, intorno a zero, dove la funzione è praticamente lineare, hai una risoluzione di 50", mentre vicino a 1, dove la funzione e è esenzialmente quadratica, migliori di u n fattore 4 e quindi hai una risoluzione di 1.3 gradi circa.

Che io sappia, tutti i dds usano memorie con il seno rappresentato in virgola fissa.
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

[5] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto Utentestefanopc » 19 feb 2024, 11:12

Per risparmiare hardware il sistema più utilizzato specialmente in passato era quello di memorizzare direttamente i valori da mandare al DAC.
A esempio da 0 a 255 nel caso di 8Bit.
Il resto era fatto a livello analogico.
Naturalmente oltre alla risoluzione occorre valutare il tempo di conversione e il tempo necessario alla gestione digitale del Micro o/e della lettura della Rom.
A che frequenza è il segnale sinusoidale generato?
Ciao
600 Elettra
Avatar utente
Foto Utentestefanopc
13,3k 5 9 13
Master EY
Master EY
 
Messaggi: 5567
Iscritto il: 4 ago 2020, 9:11

0
voti

[6] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteRoswell1947 » 23 feb 2024, 19:48

IsidoroKZ ha scritto:Perché hai i valori delle funzioni trigonometriche in formato floating? Direi che in fixed point possa andare altrettanto bene. Con una risoluzione di 8bit vicino allo zero hai una risoluzione di circa 0.2 gradi, mentre vicino a 1 diventa di 5 gradi. Con un 12 bit la risoluzione diventa meglio, intorno a zero, dove la funzione è praticamente lineare, hai una risoluzione di 50", mentre vicino a 1, dove la funzione e è esenzialmente quadratica, migliori di u n fattore 4 e quindi hai una risoluzione di 1.3 gradi circa.

Che io sappia, tutti i dds usano memorie con il seno rappresentato in virgola fissa.


ok,ma come si gestisce un dac in virgola fissa?nel senso come avviene la conersione con la rappresentazione in virgola fissa?
Avatar utente
Foto UtenteRoswell1947
89 1 3 8
Stabilizzato
Stabilizzato
 
Messaggi: 438
Iscritto il: 10 feb 2020, 16:39

0
voti

[7] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteMarcoD » 23 feb 2024, 20:33

ok,ma come si gestisce un dac in virgola fissa?nel senso come avviene la conversione con la rappresentazione in virgola fissa ?


supponi di avere un DAC a 8 bit, sono 256 valori da 0 a 255.
Prepari una tabella di 256 valori interi
Il seno viene calcolato a passi di 360/256 gradi = 1,406

Moltiplichi i valori del seno variabili fra -1 e 1 per 127
e sommi il valore 127

N gradi seno senox127 numero
1 0 0 0 127 metà tensione
2 1,406 0,0245 3,116 130
3 2,82 0,049 6,23 133
.......
45 0,707 89,7 216
...
90 1 127 255 fondo scala
....
270 -1 -127 0 inizio scala
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[8] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteRoswell1947 » 23 feb 2024, 21:06

OK ma in questo modo nella ROM ci sono numeri interi e non valori del seno rappresentati in virgola fissa
Avatar utente
Foto UtenteRoswell1947
89 1 3 8
Stabilizzato
Stabilizzato
 
Messaggi: 438
Iscritto il: 10 feb 2020, 16:39

0
voti

[9] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteRoswell1947 » 23 feb 2024, 21:15

IsidoroKZ ha scritto:Perché hai i valori delle funzioni trigonometriche in formato floating? Direi che in fixed point possa andare altrettanto bene. Con una risoluzione di 8bit vicino allo zero hai una risoluzione di circa 0.2 gradi, mentre vicino a 1 diventa di 5 gradi. Con un 12 bit la risoluzione diventa meglio, intorno a zero, dove la funzione è praticamente lineare, hai una risoluzione di 50", mentre vicino a 1, dove la funzione e è esenzialmente quadratica, migliori di u n fattore 4 e quindi hai una risoluzione di 1.3 gradi circa.

Che io sappia, tutti i dds usano memorie con il seno rappresentato in virgola fissa.


Potresti spiegarmi come mai con una risoluzione di 8bit vicino allo zero si ha una risoluzione di circa 0.2 gradi, mentre vicino a 1 diventa di 5 gradi?
grazie
Avatar utente
Foto UtenteRoswell1947
89 1 3 8
Stabilizzato
Stabilizzato
 
Messaggi: 438
Iscritto il: 10 feb 2020, 16:39

0
voti

[10] Re: ADC / DAC virgola mobile o fissa

Messaggioda Foto UtenteIsidoroKZ » 24 feb 2024, 4:49

Roswell1947 ha scritto:OK ma in questo modo nella ROM ci sono numeri interi e non valori del seno rappresentati in virgola fissa


Supponi di volere il seno di 40°, che tensione vuoi all'uscita del convertitore? Se il convertitore ha l'uscita in corrente, che corrente vuoi sempre per lo stesso angolo?

Poi rispondo al problema della risoluzione.
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

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti