Arduino Controlled GPS Corrected VFO
-
- Berichten: 191
- Lid geworden op: 30 sep 2014, 12:05
- Roepletters: ON5DRE
- Locatie: Vlaams Brabant
Arduino Controlled GPS Corrected VFO
een ontwerp van W3PM ( http://www.knology.net/~gmarcus/Si5351.html )
Dit heb ik deze week nagebouwd, en het principe werkt prima !
origineel bedoeld als VFO, met de mogelijkheid om deze via FLL te locken aan een 1PPS signaal van een GPS ontvanger.
via deze manier bekom je een heel goedkope, vrij accurate, instelbare VFO. De stabiliteit is grotendeels afhankelijk van
de korte termijns-drift van de oscillator op het Si5351 printje.
Ik heb een filmpje gemaakt van mijn testopstelling : https://youtu.be/Pg_Ei7bKniU
Dit is enkel een testopstelling, ik ga de outputs nog anders programmeren, het geheel in een RF dichte behuizing zetten,
en ik wil nog een temperatuuroventje maken voor de Si5351, eventueel in combinatie met de Arduino, omdat deze
uiteindelijk ook stabiel moet blijven tijdens de frequentiemetingen die hij doet.
het plan is om dit uiteindelijk te gebruiken als LO voor mijn Icom-910, want die drift enorm tijdens meteor-scatter of EME.
uiteraard ga ik nog experimenteren met een bandpass filter op de uitgang van de Si5351, want dit signaal is niet ideaal...
De GPS locator en klok op het display zijn een mooie extra bonus natuurlijk
mvg,
Kevin ON5DRE.
Dit heb ik deze week nagebouwd, en het principe werkt prima !
origineel bedoeld als VFO, met de mogelijkheid om deze via FLL te locken aan een 1PPS signaal van een GPS ontvanger.
via deze manier bekom je een heel goedkope, vrij accurate, instelbare VFO. De stabiliteit is grotendeels afhankelijk van
de korte termijns-drift van de oscillator op het Si5351 printje.
Ik heb een filmpje gemaakt van mijn testopstelling : https://youtu.be/Pg_Ei7bKniU
Dit is enkel een testopstelling, ik ga de outputs nog anders programmeren, het geheel in een RF dichte behuizing zetten,
en ik wil nog een temperatuuroventje maken voor de Si5351, eventueel in combinatie met de Arduino, omdat deze
uiteindelijk ook stabiel moet blijven tijdens de frequentiemetingen die hij doet.
het plan is om dit uiteindelijk te gebruiken als LO voor mijn Icom-910, want die drift enorm tijdens meteor-scatter of EME.
uiteraard ga ik nog experimenteren met een bandpass filter op de uitgang van de Si5351, want dit signaal is niet ideaal...
De GPS locator en klok op het display zijn een mooie extra bonus natuurlijk
mvg,
Kevin ON5DRE.
Re: Arduino Controlled GPS Corrected VFO
Hallo Kevin.
Mooi ontwerp, bedankt voor de Link, ik ga het zeker nabouwen.
Heb al zo'n SI5351 print van SV1AFN.
Mooi ontwerp, bedankt voor de Link, ik ga het zeker nabouwen.
Heb al zo'n SI5351 print van SV1AFN.
73's Egbert PAØEJH. Licensed since 1971.
En meer dan 50 Jaar radio-actief
En meer dan 50 Jaar radio-actief
Re: Arduino Controlled GPS Corrected VFO
Hallo kevin,
Bedankt voor de link en ik ben begonnen om het in eerste instantie na te bouwen en om er vervolgens een paar eigen wensen in te bouwen.
In het QEX-artikel schrijft Gene dat hij de NMEA processing af zet om conflicten in de software en fouten in de frequentie teller te voorkomen. Na het bekijken van de software zie ik dat de interrupt service routine voor de 1 PPS veel te groot is. Dit is waarschijnlijk de bron van de problemen. Als ik alles binnen heb (de GPS ontvanger is nog onderweg) ga ik eerst eens kijken of ik verbeteringen in de software kan maken. Ik zal deze aanpassingen ook aan Gene mailen. Daarnaast zal ik ze ook hier publiceren.
Ik ben heel benieuwd wat het uiteindelijke resultaat zal zijn.
73,
Jan PE1CID
Bedankt voor de link en ik ben begonnen om het in eerste instantie na te bouwen en om er vervolgens een paar eigen wensen in te bouwen.
In het QEX-artikel schrijft Gene dat hij de NMEA processing af zet om conflicten in de software en fouten in de frequentie teller te voorkomen. Na het bekijken van de software zie ik dat de interrupt service routine voor de 1 PPS veel te groot is. Dit is waarschijnlijk de bron van de problemen. Als ik alles binnen heb (de GPS ontvanger is nog onderweg) ga ik eerst eens kijken of ik verbeteringen in de software kan maken. Ik zal deze aanpassingen ook aan Gene mailen. Daarnaast zal ik ze ook hier publiceren.
Ik ben heel benieuwd wat het uiteindelijke resultaat zal zijn.
73,
Jan PE1CID
- ton.blokker
- Berichten: 158
- Lid geworden op: 29 nov 2005, 16:17
- Roepletters: Pa0klt
- Locatie: Enkhuizen
- Contacteer:
Re: Arduino Controlled GPS Corrected VFO
Een heel leuk idee, vooral omdat de Si5351 drie frequentie uitgangen heeft.
Dus een gebruiken voor referentie en de ander variabel als vfo.
Het blokvormige uitgangssignaal is daarbij geen echt bezwaar en indien gewenst gemakkelijk
tot een sinus om te vormen.
Een ander probleem maakt de Si5351 niet echt geschikt als meng oscillator in hoogwaardige toepassingen.
In tegenstelling met de Si570 geeft de Si5351 bij elke frequentie andere valse signalen die helaas behoorlijk sterk kunnen zijn en niet weg te filteren.
Zie ook: http://www.ra3apw.ru/proekty/si5351-spectrum/
Dus een gebruiken voor referentie en de ander variabel als vfo.
Het blokvormige uitgangssignaal is daarbij geen echt bezwaar en indien gewenst gemakkelijk
tot een sinus om te vormen.
Een ander probleem maakt de Si5351 niet echt geschikt als meng oscillator in hoogwaardige toepassingen.
In tegenstelling met de Si570 geeft de Si5351 bij elke frequentie andere valse signalen die helaas behoorlijk sterk kunnen zijn en niet weg te filteren.
Zie ook: http://www.ra3apw.ru/proekty/si5351-spectrum/
-
- Berichten: 191
- Lid geworden op: 30 sep 2014, 12:05
- Roepletters: ON5DRE
- Locatie: Vlaams Brabant
Re: Arduino Controlled GPS Corrected VFO
ik heb er nog een beetje mee verder gedaan.
de uitgang die origineel op 10.066666 MHz geprogrammeerd stond, heb ik naar 30,2 MHz geprogrammeerd.
het signaal dat nu rechtstreeks uit de Si5351 komt, zie je op foto "sig1.jpg".
dit is niet bijster mooi, dus heb ik een bandpass filter gemaakt op 30,2 MHz, die zie je op foto "bpf.jpg".
Na deze bandpass filter, zie ik een signaal op foto "sig2.jpg".
In het spectrum heb ik nog niet gekekeken, dat zal nog eens moeten gebeuren.
Heeft er iemand enig idee of zulk een signaal "proper" genoeg is om als LO te gebruiken ?
Mvg,
Kevin ON5DRE.
de uitgang die origineel op 10.066666 MHz geprogrammeerd stond, heb ik naar 30,2 MHz geprogrammeerd.
het signaal dat nu rechtstreeks uit de Si5351 komt, zie je op foto "sig1.jpg".
dit is niet bijster mooi, dus heb ik een bandpass filter gemaakt op 30,2 MHz, die zie je op foto "bpf.jpg".
Na deze bandpass filter, zie ik een signaal op foto "sig2.jpg".
In het spectrum heb ik nog niet gekekeken, dat zal nog eens moeten gebeuren.
Heeft er iemand enig idee of zulk een signaal "proper" genoeg is om als LO te gebruiken ?
Mvg,
Kevin ON5DRE.
Re: Arduino Controlled GPS Corrected VFO
Gene, W3PM, heeft een nieuwe versie van de software (5.3) uitgebracht.
Zie: http://www.knology.net/~gmarcus/index.html
73,
Jan, PE1CID
Zie: http://www.knology.net/~gmarcus/index.html
73,
Jan, PE1CID
-
- Berichten: 191
- Lid geworden op: 30 sep 2014, 12:05
- Roepletters: ON5DRE
- Locatie: Vlaams Brabant
Re: Arduino Controlled GPS Corrected VFO
bedankt voor de info Jan, ik ga het nog eens even bekijken.
mvg,
Kevin ON5DRE.
mvg,
Kevin ON5DRE.
Re: Arduino Controlled GPS Corrected VFO
Dag Kevin,
De grootste verschillen zijn:
- De 1pps ISR (Interrupt Service Routine) is veel kleiner geworden en duur van de ISR is van 33 ms naar max 10 us gegaan.
- Het afhandelen van het display gebeurt nu in de main-loop.
- Alle delays zijn uit de code verwijderd.
Het real-time gedrag van de code is hierdoor veel verbeterd. Ik heb het nog niet geprobeerd maar ik verwacht dat afhandelen van de NMEA data van de GPS ontvanger nu altijd kan en niet alleen tijdens het opstarten. Ik heb nog meer ideeën maar moet het project even laten liggen in verband met gebrek aan tijd.
73,
Jan
De grootste verschillen zijn:
- De 1pps ISR (Interrupt Service Routine) is veel kleiner geworden en duur van de ISR is van 33 ms naar max 10 us gegaan.
- Het afhandelen van het display gebeurt nu in de main-loop.
- Alle delays zijn uit de code verwijderd.
Het real-time gedrag van de code is hierdoor veel verbeterd. Ik heb het nog niet geprobeerd maar ik verwacht dat afhandelen van de NMEA data van de GPS ontvanger nu altijd kan en niet alleen tijdens het opstarten. Ik heb nog meer ideeën maar moet het project even laten liggen in verband met gebrek aan tijd.
73,
Jan
Re: Arduino Controlled GPS Corrected VFO
Ik ben ook bezig met dit project.
De nieuwe softwareversie werkt inderdaad veel beter.
Ik heb alleen een ander probleem (zowel in de oude als in de nieuwe versie):
Wanneer de GPS werkt en de klok in beeld verschijnt, wordt die niet met één seconde per seconde opgehoogd, maar met 11 tot 14 seconden per seconde. In de oude softwareversie was dat 32 seconden per seconde.
Iemand enig idee waar dit door komt?
Ik maak overigens gebruik van een VK2828U7G5LF-gpsmodule.
De nieuwe softwareversie werkt inderdaad veel beter.
Ik heb alleen een ander probleem (zowel in de oude als in de nieuwe versie):
Wanneer de GPS werkt en de klok in beeld verschijnt, wordt die niet met één seconde per seconde opgehoogd, maar met 11 tot 14 seconden per seconde. In de oude softwareversie was dat 32 seconden per seconde.
Iemand enig idee waar dit door komt?
Ik maak overigens gebruik van een VK2828U7G5LF-gpsmodule.
Re: Arduino Controlled GPS Corrected VFO
Dag Paulus,
Het lijkt er op dat je vaker dan een keer per seconde een interrupt krijgt.
In de oude versie wordt de klok in de ISR (Interrupt Service Routine) van de 1PPS verhoogd. In de nieuwe versie van de software wordt er in de ISR een vlag gezet die in de main loop getest en gereset wordt. Dan wordt ook de tijd aangepast.
Kijk eens naar de volgende punten.
- Is de PPS uitgang van de GPS ontvanger aangesloten op de juiste pin van de Arduino Nano?
- Klopt de frequentie (1 Hz) van het PPS signaal? Bij deze GPS ontvanger is dat instelbaar.
- Je kunt in de ISR twee regels code toevoegen. Als eerste regel code in de ISR een niet gebruikte digitale pin hoog zetten en als laatste regel code in de ISR deze pin weer laag zetten. Daarna op een oscilloscoop het signaal van deze pin bekijken. De frequentie moet ook 1 Hz zijn en de pulsduur 33 ms bij de oude software en 7 tot 10 us bij de nieuwe software.
Laat maar weten wat de resultaten zijn.
73,
Jan PE1CID
Het lijkt er op dat je vaker dan een keer per seconde een interrupt krijgt.
In de oude versie wordt de klok in de ISR (Interrupt Service Routine) van de 1PPS verhoogd. In de nieuwe versie van de software wordt er in de ISR een vlag gezet die in de main loop getest en gereset wordt. Dan wordt ook de tijd aangepast.
Kijk eens naar de volgende punten.
- Is de PPS uitgang van de GPS ontvanger aangesloten op de juiste pin van de Arduino Nano?
- Klopt de frequentie (1 Hz) van het PPS signaal? Bij deze GPS ontvanger is dat instelbaar.
- Je kunt in de ISR twee regels code toevoegen. Als eerste regel code in de ISR een niet gebruikte digitale pin hoog zetten en als laatste regel code in de ISR deze pin weer laag zetten. Daarna op een oscilloscoop het signaal van deze pin bekijken. De frequentie moet ook 1 Hz zijn en de pulsduur 33 ms bij de oude software en 7 tot 10 us bij de nieuwe software.
Laat maar weten wat de resultaten zijn.
73,
Jan PE1CID
Re: Arduino Controlled GPS Corrected VFO
Hallo Jan,
Bedankt voor je input: naar aanleiding van jou bericht kon ik een aantal zaken testen.
Alles was goed aangesloten;
De GPS geeft netjes elke seconden een puls van ca. 2,4 V / 50 ms af.
Ik heb een eenvoudige sketch geschreven die bij elke interrupt een teller ophoogt en de tellerwaarde naar de seriële poort schrijft. Dan wordt netjes elke seconde de teller met 1 opgehoogd. Helemaal goed dus. Totdat ik op pen 0 (RX) de TX-lijn van de GPS aansluit. Dan slaat de teller op hol en wordt elke keer dat de GPS data stuurt meerdere keren opgehoogd. Het lijkt er dus op dat de datalijn van de GPS storing veroorzaakt.
Enig idee hoe dat kan en wat ik eraan kan doen?
73,
Paul, PD0RPI.
Bedankt voor je input: naar aanleiding van jou bericht kon ik een aantal zaken testen.
Alles was goed aangesloten;
De GPS geeft netjes elke seconden een puls van ca. 2,4 V / 50 ms af.
Ik heb een eenvoudige sketch geschreven die bij elke interrupt een teller ophoogt en de tellerwaarde naar de seriële poort schrijft. Dan wordt netjes elke seconde de teller met 1 opgehoogd. Helemaal goed dus. Totdat ik op pen 0 (RX) de TX-lijn van de GPS aansluit. Dan slaat de teller op hol en wordt elke keer dat de GPS data stuurt meerdere keren opgehoogd. Het lijkt er dus op dat de datalijn van de GPS storing veroorzaakt.
Enig idee hoe dat kan en wat ik eraan kan doen?
73,
Paul, PD0RPI.
Re: Arduino Controlled GPS Corrected VFO
Dag Paul,
Nu wordt het lastiger.
- Blijft het PPS signaal "netjes" als de seriële dat wordt verstuurd? Oftewel is er mogelijk overspraak.
- Doe je nog ergens iets in je code met D0?
- Haal het PPS signaal eens los en kijk eens of de tijd dan nog steeds veranderd.
Je kunt die eenvoudige sketch eens opsturen. Dan kan ik die eens bekijken.
Op woensdagavond 22 maart ben ik in Schimmert maar ik verwacht dat er dan weinig tijd zal zijn om het uitgebreid door te spreken. Ik sta dan voor de zaal.
73
Jan PE1CID
Nu wordt het lastiger.
- Blijft het PPS signaal "netjes" als de seriële dat wordt verstuurd? Oftewel is er mogelijk overspraak.
- Doe je nog ergens iets in je code met D0?
- Haal het PPS signaal eens los en kijk eens of de tijd dan nog steeds veranderd.
Je kunt die eenvoudige sketch eens opsturen. Dan kan ik die eens bekijken.
Op woensdagavond 22 maart ben ik in Schimmert maar ik verwacht dat er dan weinig tijd zal zijn om het uitgebreid door te spreken. Ik sta dan voor de zaal.
73
Jan PE1CID
-
- Berichten: 2085
- Lid geworden op: 21 mar 2015, 19:42
- Roepletters: pe1cmo
- Locatie: Ayamonte (spanje)
- Contacteer:
Re: Arduino Controlled GPS Corrected VFO
Jullie hebben het over 2.4V data en als je clock op 3.3V of 5V draait is die spanning mogelijk de boosdoender. Dan is het niet een volledige 1 die binnenkomt.
Bekijk dat eens (misschien loos alarm, maar je weet nooit. Ik heb dat ook wel eens gehad in een andere schakeling met Cmos op 5V en 3.3V data dat één punls als 3 werd geteld)
Bekijk dat eens (misschien loos alarm, maar je weet nooit. Ik heb dat ook wel eens gehad in een andere schakeling met Cmos op 5V en 3.3V data dat één punls als 3 werd geteld)
PE1CMO/EA7LAD
Ayamonte España
Ayamonte España
Re: Arduino Controlled GPS Corrected VFO
Hmm...die 2,4 V zou idd nog wel eens het probleem kunnen zijn.
Ik had nog een levelshifter liggen, maar daar krijg ik het niet mee aan de praat.
Helaas..het weekend is voorbij en voorlopig kom ik er weer niet aan toe.
Bedankt voor het meedenken. Bij nieuwe ontwikkelingen zal ik weer posten.
73,
Paul, PD0RPI
Ik had nog een levelshifter liggen, maar daar krijg ik het niet mee aan de praat.
Helaas..het weekend is voorbij en voorlopig kom ik er weer niet aan toe.
Bedankt voor het meedenken. Bij nieuwe ontwikkelingen zal ik weer posten.
73,
Paul, PD0RPI
Re: Arduino Controlled GPS Corrected VFO
Dag Paul,
Ik heb de datasheets van jou GPS ontvanger en die van mij eens vergeleken. Ik gebruik een Ublox Neo 7.
Bij jou GPS ontvanger staat voor het output signaal:
min: 2,4 V; nom: 2,8 V; max: 3,3 V.
Bij de Ublox Neo 7 staat:
Min: VCC - 0,4 V.
Dus de minimum spanning van het output signaal bij 3,3 V is dus minimaal 2,9 V.
De datasheet van de Atmega328 vermeldt dat een hoog signaal op een input pin minimaal 0,6 * Vcc moet zijn. Bij 3,3 V voedingsspanning wordt dat dus 1,98 V.
Het llijkt er op dat de uitgangsspanning van jouw GPS ontvanger wel volgdoende zou moeten zijn maar wel aan de lage kant is. Op dit moment denk ik dat je daar moet zoeken.
Groeten,
Jan PE1CID
Ik heb de datasheets van jou GPS ontvanger en die van mij eens vergeleken. Ik gebruik een Ublox Neo 7.
Bij jou GPS ontvanger staat voor het output signaal:
min: 2,4 V; nom: 2,8 V; max: 3,3 V.
Bij de Ublox Neo 7 staat:
Min: VCC - 0,4 V.
Dus de minimum spanning van het output signaal bij 3,3 V is dus minimaal 2,9 V.
De datasheet van de Atmega328 vermeldt dat een hoog signaal op een input pin minimaal 0,6 * Vcc moet zijn. Bij 3,3 V voedingsspanning wordt dat dus 1,98 V.
Het llijkt er op dat de uitgangsspanning van jouw GPS ontvanger wel volgdoende zou moeten zijn maar wel aan de lage kant is. Op dit moment denk ik dat je daar moet zoeken.
Groeten,
Jan PE1CID