Volevo aprire una discussione riguardo alla realizzazione di un generatore arbitrario di funzioni basato su DDS di cui ha anche parlato brabus.
Inizio scrivendo qualche specifica dello strumento:
- Onde quadre e sinusoidali fino a 20 MHz
- Onde triangolari e personalizzate ad una frequenza minore
- Impedenza di uscita 50 ohm, lo standard degli strumenti da banco
- Tensione di uscita da 0 a 3-3.3V (tensione duale +/-3.3V da valutare)
- Interfaccia tramite sw lato PC ed alimentazione USB
- Modulazioni AM, OOK, ... (altre da definire)
- BOM contenuto
Il progetto si può dividere in:
- Sezione alimentazione
- Sezione digitale (microcontrollore / ic dds)
- Sezione analogica (filtro e amplificazione)
Avendo svolto un progetto simile precedentemente a breve pubblicherò delle informazioni basate sulla mia esperienza che possono rilevarsi utili
[CDYE] DDS
Moderatore:
brabus
4
voti
[2] Re: [CDYE] DDS
Sezione alimentazione
Il bus USB offre 5V +/- 5% e massimo 100mA prima della negoziazione col microcontrollore, dopodiché è possibile ottenere fino a 500mA
La sezione di alimentazione deve derivare dall'alimentazione USB le seguenti tensioni stabilizzate:
+3.3V per il microcontrollore e l'IC DDS
+/-5V per poter amplificare senza avvicinarsi ai rail di alimentazione un segnale finale di +/- 3.3v
La parte critica di questa sezione è rispettare le specifiche USB (es. carico capacitivo 10uF) e fornire un'alimentazione stabilizzata priva di spurie.
Sezione digitale (microcontrollore / ic dds)
Il chip DDS è l'AD9834 http://www.analog.com/en/digital-to-analog-converters/direct-digital-synthesis-dds/ad9834/products/product.html, in grado di soddisfare tutti i requisiti iniziali e dotato di costo ridotto.
Il micro-controllore dovrebbe essere dotato di due DAC.
1 DAC per poter regolare l'ampiezza del segnale in uscita grazie al pin FS ADJUST del DDS
1 DAC per poter generare segnali arbitrari direttamente dal micro-controllore
Sarei propenso ad utilizzare un Atmel XMega http://www.atmel.com/products/microcontrollers/avr/avr_xmega.aspx con USB e DAC (es. un micro della serie AU), cosa ne pensate?
Sezione analogica (filtro e amplificazione)
La questione è leggermente complicata
Con un unico filtro impostato leggermente oltre la frequenza massima (fMax) è possibile evitare l'attenuazione della fmax ma tale valore non sarà ideale ad esempio per fmax/10, un eventuale sistema di relé per segnali può permettere un architettura con più filtri per ottimizzare il filtraggio del segnale
Il singolo filtro viste le frequenza può essere solamente di tipo LC di grado elevato e dovrà tenere conto dell'impedenza di uscita del DDS. La scelta degli induttori è critica, induttori SMD seppur economici e compatti non presentano un Q elevato per le frequenze più alte, induttori toroidali (esempio nucleo T50-2) presentano una scelta migliore.
Per quanto riguarda l'amplificazione i 0.6V in uscita al DDS dovranno essere amplificati in modo possibilmente omogeneo a tutte le frequenze di 5.5 volte per ottenere una tensione massima di 3.3V.
L'amplificazione servirà anche in corrente, per ottenere un'impedenza di 50 ohm saranno necessari amplificatori in grado di erogare almeno 3.3/50=66mA
L'op-amp LMH6612 http://www.ti.com/product/lmh6612 si presenta come un buon candidato
Importante
Le specifiche così come le note di questo post sono in discussione, quindi proponete le vostre idee e osservazioni
Il bus USB offre 5V +/- 5% e massimo 100mA prima della negoziazione col microcontrollore, dopodiché è possibile ottenere fino a 500mA
La sezione di alimentazione deve derivare dall'alimentazione USB le seguenti tensioni stabilizzate:
+3.3V per il microcontrollore e l'IC DDS
+/-5V per poter amplificare senza avvicinarsi ai rail di alimentazione un segnale finale di +/- 3.3v
La parte critica di questa sezione è rispettare le specifiche USB (es. carico capacitivo 10uF) e fornire un'alimentazione stabilizzata priva di spurie.
Sezione digitale (microcontrollore / ic dds)
Il chip DDS è l'AD9834 http://www.analog.com/en/digital-to-analog-converters/direct-digital-synthesis-dds/ad9834/products/product.html, in grado di soddisfare tutti i requisiti iniziali e dotato di costo ridotto.
Il micro-controllore dovrebbe essere dotato di due DAC.
1 DAC per poter regolare l'ampiezza del segnale in uscita grazie al pin FS ADJUST del DDS
1 DAC per poter generare segnali arbitrari direttamente dal micro-controllore
Sarei propenso ad utilizzare un Atmel XMega http://www.atmel.com/products/microcontrollers/avr/avr_xmega.aspx con USB e DAC (es. un micro della serie AU), cosa ne pensate?
Sezione analogica (filtro e amplificazione)
La questione è leggermente complicata
Con un unico filtro impostato leggermente oltre la frequenza massima (fMax) è possibile evitare l'attenuazione della fmax ma tale valore non sarà ideale ad esempio per fmax/10, un eventuale sistema di relé per segnali può permettere un architettura con più filtri per ottimizzare il filtraggio del segnale
Il singolo filtro viste le frequenza può essere solamente di tipo LC di grado elevato e dovrà tenere conto dell'impedenza di uscita del DDS. La scelta degli induttori è critica, induttori SMD seppur economici e compatti non presentano un Q elevato per le frequenze più alte, induttori toroidali (esempio nucleo T50-2) presentano una scelta migliore.
Per quanto riguarda l'amplificazione i 0.6V in uscita al DDS dovranno essere amplificati in modo possibilmente omogeneo a tutte le frequenze di 5.5 volte per ottenere una tensione massima di 3.3V.
L'amplificazione servirà anche in corrente, per ottenere un'impedenza di 50 ohm saranno necessari amplificatori in grado di erogare almeno 3.3/50=66mA
L'op-amp LMH6612 http://www.ti.com/product/lmh6612 si presenta come un buon candidato
Importante
Le specifiche così come le note di questo post sono in discussione, quindi proponete le vostre idee e osservazioni
Ultima modifica di
tazzo il 18 nov 2013, 0:23, modificato 2 volte in totale.
4
voti
[3] Re: [CDYE] DDS
Il progetto si può suddividere ancora in..
Sezione software
Composta dal firmware e dal software lato PC.
Lato firmware la scelta sarà dipendente dal micro-controllore scelto.
La Atmel dispone del framework ASF per semplificare lo sviluppo.
Lato PC propongo di utilizzare principalmente C# e WPF per realizzare un front-end in grado di:
- Impostare i parametri relativi alla generazione di forme d'onda visualizzandone un'anteprima a schermo
- Trasmettere eventuali file (es. audio) da modulare sul DDS
- Fornire un'interfaccia API utilizzabile da altri programmi
- Fornire un'ambiente di scripting
Sezione software
Composta dal firmware e dal software lato PC.
Lato firmware la scelta sarà dipendente dal micro-controllore scelto.
La Atmel dispone del framework ASF per semplificare lo sviluppo.
Lato PC propongo di utilizzare principalmente C# e WPF per realizzare un front-end in grado di:
- Impostare i parametri relativi alla generazione di forme d'onda visualizzandone un'anteprima a schermo
- Trasmettere eventuali file (es. audio) da modulare sul DDS
- Fornire un'interfaccia API utilizzabile da altri programmi
- Fornire un'ambiente di scripting
4
voti
[4] Re: [CDYE] DDS
Tools
Per poter collaborare bisogna utilizzare alcuni strumenti, propongo:
Schemi e Board: Eagle 6+
Firmware: Atmel Studio 6+ (se scelto il microcontrollore Atmel)
Software: Visual Studio 2010+ (versione Express gratuita)
Simulatore: TINA (versione TI gratuita)
Per lo sviluppo ci si può avvalere di un repository gratuito come CodePlex / GitHub / etc.. da decidere
Per poter collaborare bisogna utilizzare alcuni strumenti, propongo:
Schemi e Board: Eagle 6+
Firmware: Atmel Studio 6+ (se scelto il microcontrollore Atmel)
Software: Visual Studio 2010+ (versione Express gratuita)
Simulatore: TINA (versione TI gratuita)
Per lo sviluppo ci si può avvalere di un repository gratuito come CodePlex / GitHub / etc.. da decidere
Ultima modifica di
tazzo il 18 nov 2013, 0:49, modificato 1 volta in totale.
4
voti
[5] Re: [CDYE] DDS
Sezione meccanica
In questa sezione non ho grande esperienza ma non per questo è meno importante, definire l'aspetto fisico dell'oggetto e i materiali da utilizzare per il case, con un occhio sui costi ed eventuali soluzioni DIY per chi volesse cimentarsi nella costruzione.
Pensavo semplicemente ad un piccolo parallelepipedo di economica plastica ABS con un foro per il connettore USB (B o Mini-B per contenere i costi rispetto al Micro-B?) ed un foro per i connettori BNC.
Probabilmente esistono case commerciali con queste caratteristiche o molto simili, a cui eventualmente vincolare la dimensione del PCB se non si vuole realizzare un contenitore ad-hoc per il progetto.
In questa sezione non ho grande esperienza ma non per questo è meno importante, definire l'aspetto fisico dell'oggetto e i materiali da utilizzare per il case, con un occhio sui costi ed eventuali soluzioni DIY per chi volesse cimentarsi nella costruzione.
Pensavo semplicemente ad un piccolo parallelepipedo di economica plastica ABS con un foro per il connettore USB (B o Mini-B per contenere i costi rispetto al Micro-B?) ed un foro per i connettori BNC.
Probabilmente esistono case commerciali con queste caratteristiche o molto simili, a cui eventualmente vincolare la dimensione del PCB se non si vuole realizzare un contenitore ad-hoc per il progetto.
2
voti
[6] Re: [CDYE] DDS
che progetto tazzuto!
Se il CDTC (Crowd Design Technical Core
) raccoglierà il design ticket (oggi mi spreco in anglicismi
) servirà fare delle squadre e organizzarsi molto bene e bisognerà aprire diverse sezioni di sviluppo.
Progetto bello tosto.
Ciao,
Pietro.
Se il CDTC (Crowd Design Technical Core
Progetto bello tosto.
Ciao,
Pietro.
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12206
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
[7] Re: [CDYE] DDS
Fatty's in!
Eccellente spiegazione
tazzo, se vuoi abbiamo già la repository di ElectroYou su github, così puoi iniziare ad archiviare qualcosa.
In merito alla scelta del microcontrollore, chiamo in campo
TardoFreak, vediamo se il PIC18F47J53 (già impiegato nel PIERIN) può andar bene.
In merito al software di schematico e di sbroglio, per me Eagle va bene (già usato); domanda impertinente: conosci KiCad?
Per quanto riguarda la sezione RF analogica mi piacerebbe sentire il parere di
BrunoValente,
carloc,
DarwinNE,
EnChamade,
DirtyDeeds.
Se ho dimenticato qualcuno estendete l'invito!
Per la meccanica, che ne dici delle scatoline della Hammond?
Sono semplicemente p-e-r-f-e-t-t-e...
Oh, io lo do per scontato: facciamo fare i PCB da OSHPark vero?
Grazie per la collaborazione! Ciao a presto!
Eccellente spiegazione
In merito alla scelta del microcontrollore, chiamo in campo
In merito al software di schematico e di sbroglio, per me Eagle va bene (già usato); domanda impertinente: conosci KiCad?
Per quanto riguarda la sezione RF analogica mi piacerebbe sentire il parere di
Se ho dimenticato qualcuno estendete l'invito!
Per la meccanica, che ne dici delle scatoline della Hammond?
Oh, io lo do per scontato: facciamo fare i PCB da OSHPark vero?
Grazie per la collaborazione! Ciao a presto!
Alberto.
1
voti
[8] Re: [CDYE] DDS
Eccellente spiegazione tazzo, se vuoi abbiamo già la repository di ElectroYou su github, così puoi iniziare ad archiviare qualcosa.
Ottimo :) fammi sapere qualcosa al riguardo
In merito alla scelta del microcontrollore, chiamo in campo TardoFreak, vediamo se il PIC18F47J53 (già impiegato nel PIERIN) può andar bene.
Il PIC in oggetto non dispone di DAC purtroppo, essenziali per progetto. A tal proposito scordavo anche un DAC aggiuntivo potrebbe tornare utile per un OFFSET di tensione programmabile del segnale di uscita.
Si potrebbe risolvere con un IC esterno ma preferirei per semplificare il PCB e ridurre i costi utilizzare meno componenti possibili.
Andrei su qualcosa di più prestante di un 8 bit classico, ho proposto XMega (es. ATXMEGA128A1U http://www.atmel.com/devices/ATXMEGA128A1U.aspx?tab=parameters) perché:
- Includono USB, 4 DAC, DMA e permettono 32 MIPS, in pratica sono una via di mezzo tra un 8 e un 32 bit.
- Li conosco meglio di altri e dispongo dell'AVR Dragon per programmarli ed eseguire debug (si possono ad ogni modo programmare con bootloader tramite Atmel Flip)
Stando sul lato PIC mi orienterei su modelli più prestanti, se qualcuno ha esperienza prenderei in considerazione anche gli ARM.
In merito al software di schematico e di sbroglio, per me Eagle va bene (già usato); domanda impertinente: conosci KiCad?
Mi piacerebbe molto utilizzare KiCad e per me va bene però non l'ho mai usato
Per quanto riguarda la sezione RF analogica mi piacerebbe sentire il parere di BrunoValente, carloc, DarwinNE, EnChamade, DirtyDeeds.
Non ho tirato in ballo tutto per la sezione RF, lo slew-rate e tanti altri parametri sono importanti, l'op-amp che ho consigliato usato in un doppio stadio permette di risolvere molti problemi. Una discussione più approfondita sicuramente gioverebbe al progetto, sul lato filtri ho dubbi riguardo all'uso di appositi relé (più che altro per i costi).
Oh, io lo do per scontato: facciamo fare i PCB da OSHPark vero?![]()
Col toner transfer qualcosa si può fare se il micro non va oltre il TQFP64, altrimenti OSHPark o comunque un service è praticamente mandatorio.
Ciao!
3
voti
[9] Re: [CDYE] DDS
Per questa applicazione
c1b8 è in grado di dire se il PIC18F47J53 è sufficiente. Lui ha già fatto qualcosa del genere ed io non conosco la tecnica DDS.
Tuttavia, cambiare micro per cambiare micro, tanto vale buttarsi direttamente su un Cortex-M3 o su un PIC32.
Scegliere una via di mezzo che non è ne carne ne pesce non ha nessun senso.
Tuttavia, cambiare micro per cambiare micro, tanto vale buttarsi direttamente su un Cortex-M3 o su un PIC32.
Scegliere una via di mezzo che non è ne carne ne pesce non ha nessun senso.
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
2
voti
[10] Re: [CDYE] DDS
L'IC DDS si occupa della generazione del segnale una volta impostati alcuni parametri tramite SPI, fin qui non è richiesta grande capacità di elaborazione del micro se non per sweep particolarmente rapidi che comunque hanno limiti legati al bus di comunicazione.
La generazione di segnali "custom" tramite il DAC del micro (senza utilizzare il DDS) è la parte che richiede (oltre al DAC) maggiori prestazioni.
L'idea di usare gli XMega non la scarterei a priori, evitano alcune complessità di micro più sofisticati a 32 bit portando con se però periferiche interessanti (nel nostro caso diversi DAC) e prestazioni non paragonabili ai ben più complessi Cortex ma che potrebbero essere accettabili e comunque superiori ai modelli ad 8 bit di fascia più bassa. Tecnicamente gli XMega sono classificati come 8/16 bit. Un motivo determinante della mia proposta era l'esperienza con questi micro.
Il problema principale da inquadrare secondo me però è: su quale micro c'è un know-how maggiore in questa community ed in particolari tra gli interessati a questo progetto? Se nessuno conosce gli XMega o similari naturalmente inutile continuare in questa direzione e meglio orientarsi sui micro maggiormente utilizzati.
Ciao
La generazione di segnali "custom" tramite il DAC del micro (senza utilizzare il DDS) è la parte che richiede (oltre al DAC) maggiori prestazioni.
L'idea di usare gli XMega non la scarterei a priori, evitano alcune complessità di micro più sofisticati a 32 bit portando con se però periferiche interessanti (nel nostro caso diversi DAC) e prestazioni non paragonabili ai ben più complessi Cortex ma che potrebbero essere accettabili e comunque superiori ai modelli ad 8 bit di fascia più bassa. Tecnicamente gli XMega sono classificati come 8/16 bit. Un motivo determinante della mia proposta era l'esperienza con questi micro.
Il problema principale da inquadrare secondo me però è: su quale micro c'è un know-how maggiore in questa community ed in particolari tra gli interessati a questo progetto? Se nessuno conosce gli XMega o similari naturalmente inutile continuare in questa direzione e meglio orientarsi sui micro maggiormente utilizzati.
Ciao
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

pigreco]=π