VFO da 1 a 30MHz con DDS

Aperto da Franco Balestrazzi, 10 Marzo 2020, 11:37:55

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Franco Balestrazzi

Spesso leggo su questo o altri siti la richiesta di un VFO esterno per rtx datati.
A scopo didattico e perche' sono in zona rossa e quindi ho tempo, ne ho realizzato uno con copertura da 1 a 30MHz basato su un modulo DDS contenente l'AD9851 (puo' arrivare a 70MHz) e governato da un micro ATMEL ATMEGA328, esattamente quello usato nella scheda Arduino UNO R3 ed infatti per lo sviluppo ho utilizzato esattamente quella come si vede un una foto.
I passi sono selezionabili e sono: 1Hz, 10Hz, 100Hz, 1KHz, 2.5KHz, 5KHz, 10KHz, 100KHz, 1MHz. La selezione avviene premendo ripetutamente il pulsante concentrico all'encoder incrementale rotativo. La impostazione della frequenza avviene, come nei VFO tradizionali, ruotando in senso orario o antiorario la manopola dell'encoder. La stabilita' e' ottima. Poiche' pero' utilizza un modulo AD9851 che monta un oscillatore da 30MHz e viene fatto lavorare in overtone fino a 180MHz e' possibile che la frequenza ottenuta sia leggermente (al max di 1/2KHz) diversa rispetto a quella impostata. Per tale motivo ho implementato una procedura che, se premuto il pulsante all'accensione, permette di entrare in modalita' taratura e, collegando un frequenzimetro all'uscita del VFO, attraverso la rotazione dell'encoder permette di allineare la frequenza indicata sul display (che ho scelto 10MHz) con quella in uscita. Successivamente basta togliere l'alimentazione che i parametri necessari sono stati memorizzati sulla Eeprom interna al micro e non ci sara' piu' bisogno di modificarli. Su questa Eeprom inoltre sono memorizzati l'ultimo passo selezionato e la frequenza impostata in modo che alla riaccensione si ripresentino a display. Nell'ottica della condivisione includo le foto della realizzazione meccanica (che non e' proprio il massimo), lo schema elettrico e il programma sorgente per Arduino. Due parole sullo schema elettrico : se andate a vedere sullo schema il numero del pin collegato ad esempio al display LCD e lo andate a confrontare con la definizione dello stesso all'interno del programma vedrete che sono differenti. Questo perche' all'interno del programma sono stati usati i numeri dei pin relativi alla scheda Arduìno UNO R3. La compilazione in realta' converte questi numeri in quelli reali del microcontrollore che sono quelli reali e utilizzati nello schema.
Spero di essere stato chiaro.
PS: Il Buzzer non e' utilizzato e pertanto potete anche non montarlo.

73' Franco


Pol

Complimenti Franco, un meritatissimo applauso da parte mia.
Lo copio, per ora sull'hard disk e appena possibile proverò a realizzarlo. La mia intenzione sarebbe di utilizzarlo come generatore rf.  [emoji106]

Franco Balestrazzi

Adesso e' programmato per funzionare da 1 a 30MHz ma, poiche' il modulo AD9851 puo' arrivare a 70MHz, si possono modificare i limiti. Ti sconsiglio di andare oltre i 40MHz poiche' piu' ti avvicini a 70MHz piu' le armoniche si fanno sentire.
Considera come limite 40MHz.
73' Franco

kz

ce ne vorrebbero 10 di applausi, grazie.


Franco Balestrazzi

#4
Purtroppo sono in zona rossa e quindi ho tempo disponibile. Inoltre, visti i miei problemi di salute pregressi che ricadono nelle tre situazioni elencate, devo per forza essere cauto. Il problema e' che non lavorando non incasso nulla e quindi la situazione si fa dura. Speriamo che duri il meno possibile.
Mi scuso se non ho commentato le procedure ma ho scritto il codice velocemente e non sono stato a pensare molto, la mia testa e' da un'altra parte. In ogni caso sono a disposizione per chiarimenti. Per coloro che volessero costruirlo possono modificare il messaggio di welcome cambiando le due righe in neretto nella procedura "presentazione". Il buzzer non e' gestito dal programma e quindi se si vuole si puo' eliminare se no lo si puo' gestire. Io lo ho previsto nell'HW.

void presentazione(void)
{lcd.setCursor(0,0);
lcd.print(" VFO-DDS ");
lcd.setCursor(0,1);
lcd.print(" F. Balestrazzi ");
delay(3000);
lcd.clear();
}

73' Franco

Ilpassa

#5
Salve....

Sono nuovo del Sito, anche se non nuovo per quanto riguarda la passione per l'elettronica e l'autocostruzione in generale. Ho letto con attenzione  tutto questo bellissimo post, il progetto e i consigli che l'autore è cosi disponibile a dare.
avevo aperto un post ieri, dove chiedevo informazioni sulla reperibilità di quarzi per costruire il VFO a pll pubblicato su NE tanti anni fa, l' LX503.
Ma vista la quasi certa impossibilità a trovare quei componenti, un  amico del forum mi ha consigliato di considerare l'opportunita di usare i DDS e cercando su internet, mi è apparso questo interessantissimo post.
Non sono uno scienziato, ma in questi anni mi sono  cimentato spesso nella programmazione dei microcontrollori, arduino ecc, e questo progetto mi entusiasma  molto e credo proverò a costruirlo. Di solito mi autocostruisco anche i PCB, vedo che l'autore a usato basette millefori( almeno mi sembra di intravedere).. ma se mi sbagliassi  e il montaggio fosse stato fatto su PCB, chissà se possibile avere il fooprint .. [emoji12].
Chiedo anche se per usarlo sia RX che sul TX ne devo costruire 2 esemplari o si puo  aggeggiare un po ed usarlo contemporaneamente, ed ancora, l'uscita la posso connettere direttamente sullo zoccolo del quarzi dell' rtx?

Grazie davvero e complimenti

Ilpassa  [emoji112]
73' a tutti..
Ilpassa


son3dra (IU7SUX)

Citazione di: Franco Balestrazzi il 11 Marzo 2020, 10:06:55Purtroppo sono in zona rossa e quindi ho tempo disponibile. Inoltre, visti i miei problemi di salute pregressi che ricadono nelle tre situazioni elencate, devo per forza essere cauto. Il problema e' che non lavorando non incasso nulla e quindi la situazione si fa dura. Speriamo che duri il meno possibile.
Mi scuso se non ho commentato le procedure ma ho scritto il codice velocemente e non sono stato a pensare molto, la mia testa e' da un'altra parte. In ogni caso sono a disposizione per chiarimenti. Per coloro che volessero costruirlo possono modificare il messaggio di welcome cambiando le due righe in neretto nella procedura "presentazione". Il buzzer non e' gestito dal programma e quindi se si vuole si puo' eliminare se no lo si puo' gestire. Io lo ho previsto nell'HW.

void presentazione(void)
{lcd.setCursor(0,0);
lcd.print(" VFO-DDS ");
lcd.setCursor(0,1);
lcd.print(" F. Balestrazzi ");
delay(3000);
lcd.clear();
}

73' Franco
Ciao scusami ero curioso di darci un'occhiata e magari replicarlo...è possibile trovarlo da qualche parte? Qui gli allegato sono spariti e su Ari Fidenza non permettono l'iscrizione ai non radioamatori (io lo ero con licenza speciale, ma mi è scaduta) ed in giro non lo trovo. Grazie in anticipo


AZ6108

#7
Presa di terra :
manciata di terriccio che, cosparsa sulle apparecchiature elettroniche, ne migliora il funzionamento

son3dra (IU7SUX)

Grazie sono interessanti per prendere spunto.
Comunque volevo provare l'accoppiata arduino con ad9850.
Continuerò a cercare in rete.


nik77

Salve son3dra ,io avevo fatto questo dds vfo qualche anno fa per un piccolo ricevitore come sperimento ,ha funzionato molto bene usando il AD9850 ,mi sembra che e' in una scatola in cantina , preso il progetto da AD7C , abbastanza semplice da fare ,lascio link ,73s to all nik.
https://www.ad7c.com/projects/ad9850-dds-vfo

son3dra (IU7SUX)