Arduino vraagjes/praatjes

blackdog

Golden Member

Hi big_fat_mama, :-)

Dat kan dan weer alleen als er een goede ontvangst mogelijkhied is voor gps.

Verder ben ik wel geintressert in GPS tijd op mijn Raspberry computertjes.
Heb je hier wat informatie van voor mij Website/code?
Op het ogenblik doe ik het via de netwerk aansluiting van de PI's de ik hier gebruik.

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Voor zover ik weet staat NTP voor "Network Time Protocol"; dat de service die daarvoor bedoeld is tegenwoordig ook met andere bronnen gesynchroniseerd kan worden, zorgt alleen maar voor meer spraakverwarring, aangezien een GPS ontvanger al apart vernoemd was.

Uiteraard is de ruimte voor een antenne soms een probleem, maar GPS antennes zijn, geloof ik, al een stuk kleiner dan de ferriet staaf die je voor DCF nodig hebt.

@blackdog: waarom zou het niet nauwkeurig zijn en blijven? Stel nou dat je het kristal meet bij een bekende temperatuur; zeg, 20 graden en het aantal cycles gedurende 24 uur. Je kunt dan al eenvoudig compenseren voor de initiële afwijking van dat specifieke kristal. Vervolgens zul je moeten bepalen wat de afwijking is, afhankelijk van de temperatuur. Weet jij of dat een lineair verband is? Mag je van een goedkoop kristal nog verwachten dat de frequentie verloopt in de tijd?

Elk device apart moeten kalibreren is natuurlijk ondoenlijk als je iets in massa gaat produceren, maar voor een enkel exemplaar, voor de hobby, dat je klein en goedkoop probeert te doen, is het misschien nog wel een leuke mogelijkheid. Wellicht kun je zelfs zo'n ding data laten sturen over de UART of zo, waar de gemeten temperatuur en de klok in zit, dat loggen, terwijl hij een paar lange warm-koud cycles maakt (in de vriezer, naast de vriezer, achter de vriezer...), en met een beetje Excel-fu de correctie parameters bepalen. Met een beetje geluk hoef je de temperatuurcorrectie maar één keer te doen voor een type kristal, en niet elk exemplaar apart.

@deKees: inderdaad, als je handig gebruikt maakt van de overflows, kun je het zonder special case toch kloppend maken; ik had alleen geen zin om te gaan beredeneren of dat nu al goed zou gaan ;-)

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
blackdog

Golden Member

Hi Rob,

Als je een DS3232 wilt hebben om daarmee te worstelen, dan kan ik er een voor je kalibreren en naar je opsturen voor een glimlach ;-)

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
big_fat_mama

Zie Paulinha_B

@Blackdog: ik wil je graag behulpzaam zijn, maar kan nu eventjes niet aan de raspi-omgeving aan. En zouden we dit niet beter in een apart draadje bespreken? Tenslotte ging het hier over een Arduino, toch een redelijk verschillende omgeving in dit verband. (@mods: wat vinden jullie?)

@SparkyGSX: ik begrijp wel wat je bedoelt, maar vergeet niet dat de hele NTP-dienst wordt geïmplementeerd met een enkele daemon gpsd ntpd. Het is dus onvermijdelijk ook de bedoeling dat deze gpsd ntpd info kan krijgen uit andere bronnen dan het (ethernet-)netwerk.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Onder linux (en dus op de Raspberry Pi) misschien wel, maar NTP is niet specifiek voor Linux; het is prima mogelijk om een NTP client te implementeren in een microcontroller die een WiFi of Ethernet verbinding heeft.

Ik ben niet bijzonder bekend met de Raspberry Pi, maar vergeet niet dat het prima mogelijk is om verschillende besturingssystemen te draaien op dat platform. Dat de meest gebruikte distributie van Linux voor de Raspberry Pi die daemon blijkbaar "gpsd" heeft genoemd, betekend niet dat NTP opeens gelijk is aan GPS. Om verwarring te voorkomen lijkt het me handiger om vast te houden aan de gebruikelijke termen, waarbij NTP slaat op het specifieke protocol dat gebruikt wordt voor het synchroniseren van klokken via een IP netwerk.

Weet je trouwens zeker dat dat niet "ntpd" moet zijn? Ik neem toch aan dat hij ook nog steeds het echt NTP protocol kan gebruiken, en niet alleen GPS data?

Volgens Wikipedia staat NTP nog steeds (en al ruim 20 jaar) voor het netwerk protocol: https://en.wikipedia.org/wiki/Network_Time_Protocol

[Bericht gewijzigd door SparkyGSX op zondag 3 december 2017 16:23:07 (11%)

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
blackdog

Golden Member

Hi,

Rob, ik heb de counter opgestart en ook de Miedema 10MHZreferentie, dan kan ik vanavond in ieder geval even een DS3231 klok printje voor je tunen.
Als je er één hebben wilt, stuur me dan even een mailtje met je adres gegeven, dan komt er een Sinterklaas kado die kant op...

big_fat_mama
Lijkt mij een goed plan voor een apart topic , kan volgen mij in algemene electronica of in software.
Niet direct haast mee, ik ben een tijdje geleden afgehaakt doordat de "tijd" mij toen ontbrak. :-)

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
big_fat_mama

Zie Paulinha_B

@sparky: typo, nu rechtgezet. Excuus. Maar deze ntpd kan data krijgen via het ethernet netwerk (als hij client is) of, als hij server is, uit plaatselijke bronnen (die dan nog steeds worden aangesproken via de ethernetstack, via localhost=127.0.0.1)

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
blackdog

Golden Member

Hi,

Voor de gene die zouden willen weten hoe je een DS3232 zo precies mogelijk op 32,678KHZ trimt, zie de code hieronder.
Alles wat nodig is, is een Arduino UNO of b.v. een Nano en twee drukknopjes, dit alles als je de beschikking hebt over een nauwkeurige hoge resulutie counter.

De code om te trimmen is van: Kerry D. Wong
Zijn gegevens staan in de code.

www.bramcam.nl/Diversen/DS3232/DS3232-Trim.ino

De test setup
http://www.bramcam.nl/Diversen/DS3232/DS3232-2.png

En dit is het resultaat
http://www.bramcam.nl/Diversen/DS3232/DS3232-1.png

De afwijking is rond de 0,03PPM binnen een paar uur gemeten, en 12PPM is ongeveer 1 seconde per dag afwijking.
Ik kan natuurlijk geen enkele garantie geven over de lange termijn stabaliteit, maar hij staat nu zo goed mogelijk op frequentie.
Dat ik het niet precies op 32.76800000KHz zet komt omdat de stapgrote van het IC dit niet toelaat.

Klaar voor verzending :-)

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Op 3 december 2017 18:47:02 schreef big_fat_mama:als hij server is, uit plaatselijke bronnen (die dan nog steeds worden aangesproken via de ethernetstack, via localhost=127.0.0.1)

juist, dan is de GPS daemon dus de plaatselijke NTP server. Soort van logisch.

@blackdog: en hoe moeten wij ordinaire stervelingen, zonder dergelijk luxe meters dat doen dan? Persoonlijk zou ik hem een paar dagen laten draaien en dan de afwijking bekijken, maar het lastige is natuurlijk dat je al snel een fout maakt van een seconde of zo bij het uitlezen. Je zou dat via een seriële poort kunnen doen, met een timestamp van de computer erbij, of alles in de microcontroller houden met een GPS ontvanger erbij. Ook dan zit je weer met de vertraging van die seriële poort, maar als je dat handig doet is die aan het begin en eind hetzelfde, en valt dus weg.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
blackdog

Golden Member

Hi SparkyGSX,

Ik laat het printje gewoon aan staan, geen idee of Rob het hebben wil, maar dan kan het vast een beetje verouderen :-)
Wat ik heb getrimt is de 32,768KHZ clock waar het IC op draait, ik heb niet de tijd ingesteld! :-)
Er zin trouwens twee trim mogelijkheden in dit IC,
het gene wat ik vandaag heb gedaan is zo goed mogelijk de xtal frequentie ingestellen.
Schijnt met varicaps te gaan.

Verder heeft het IC ook nog een andere trim functie, deze is afhankelijk van de temperatuur.
Afhankelijk van het type uit deze serie, kijk het IC iedere minuut naar de temperatuur van het IC en past de clock of deler aan, aan de hand van een tabel als ik het goed begrepen heb.

De tijd nu instellen heeft niet zoveel zin, als er toch nog met dit moduul ge-experimenteerd gaat worden.

Dit is een mooi "stand allone" klokje, alle moderne middelen zoals hier al reeds aangegeven verslaan dit printje.
Ook al zit je binnen 1 minuut per jaar met een getrimde versie van de DS3232.

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
rob007

Yarr, Matey!

Rob, gaat het nog? :) ( HAHAHAAaaaa LOL )
Flipflop ik zie je al zitten, je lacht me uit! ik zie het gewoon! ;-)

Bram de tekst van Flipflop laat me alleen al laggen!
(nee dankjewel hoor, maar wel aardig dat je dit aanbied! Nogmaals dankjewel!)

Bij RTC raakte ik idd al heel even de weg kwijt,
ben maar een gewone jonge he jongens!
Opgezocht ik ben weer bij ;-)
Maar jullie gaan gelijk extreem lees ik, nee jo het is een maar probeerseltje.
Jullie halen er de atoomklok bij, ben je mal!?
MAAR!
Ik lees wel mee maken jullie nog maar even ruzie ;-)
Altijd goed om elkaar het een(1) en ander te vertellen!

Ik test even dat stukje Arduino software uit!

VrGr Rob.
Ik denk dat Flipflop en denk Bram en nog wat andere het wel door hebben,
Zo diep kan ik niet eens mee gaan lieve mensen! (maar vind het wel leuk!)
MAAR nogmaals ik lees wel mee (wie weet word ik nog eens net zo slim als……)
;-)
Schiet me wel een vraagje te binnen!
Wat heb jij er mee gedaan Bram? Waar heb je het voor gebruikt? Klokje Of ook zomaar…..

Als ik je erger, lees en schrijf hier dan niet?
blackdog

Golden Member

Hi rob007

Ik gebruik dit soort printjes voor verschillende doeleinden.
B.v. als je data wilt loggen naar een SD kaart en daar moet een datum bij staan.
De meeste Arduino microcontrolers hebben zelf geen interne klok en daar gebruik ik dan een DS3231 of DS3232 voor.

Ook de Raspberry PI heeft geen echte interne clock, vorige week toen ik een wat kleinere versie van het DS3231 binnen kreeg,
heb ik de eerste PI hier met zo'n printje uitgerust.
Dit moet nog verder geconfigureerd worden, zodat als er een goede netwerk verbinding is en NTP beschikbaar,
dat de hardware clock regelmatig op tijd wordt gezet, dan is als netwerk/NTP niet voor handen is er altijd een klok is die echt mooi op tijd loopt beschikbaar,
beter dan de specificaties van de DS3231 chip zelf, daar de chip regelmatig op tijd wordt gezet.
Zeg meer dan 1 seconde afwijking, dan wordt de actuele tijd weer in de chip gepompt.
Dat is dan veel beter dan dan de maximale drift van ongeveer 1 minuuut per jaar van de goed geconfigureerde chip.
Dit omdat de laatste keer dat de klok gelijk is gezet een veel kortere tijd betreft.

Verder gebruik ik dit soort dingen niet voor klokken (tijd aan te geven in huis, werkkamer)
Ik bouw geen nixie of andere klokken met microcontrolers, dit omdat ik dit niet aantrekkelijk vind, bouwen van meetinstrumentjes echter wel :-)

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
rob007

Yarr, Matey!

Ja Bram jij gebruikt het op de goeie manier!
Ik rommel er altijd maar een beetje op los, en vind het dat heerlijk als er SOMS eens wat werkt.
Vergeleken met veel mensen hier ben ik gewoon een knutselaartje.
En dat vind ik niet erg want ik knutsel met van alles en nog wat. ( HEEERRRRRrrrrrlijk!!!)
Maar de laatste tijd niet veel geknutseld (we zitten hier ff een beetje in een dipje, moet kunnen)
Laten we het houden op privé probleempjes.
Maar het ff simpel klooien met een Arduino doe ik nog graag wel even! Dat dan weer wel! ;-)

Heb trouwens die software/code geprobeerd maar geen eentje die werkt!?

Nogmaals jij en iedereen fijne feestdaagjes!

VrGr Rob

Als ik je erger, lees en schrijf hier dan niet?
blackdog

Golden Member

Ha die Rob,

Blijf lekker door knutselen!
Ik heb geen idee welke software je nu geprobeerd hebt.
De software om de DS3231 chips op 32,768KHZ te zetten geven zover ik weet geen output in de terminal.

Je ziet op de counter die je op de 32KHz uitgang van het IC zet dat de frequentie van die uitgang omhoog of omlaag gaat.

Ik heb al mijn printjes getest en alle printjes die met de DS3232M ware uitgerust waren allemaal niet goed.
Zeer grote frequentie afwijkingen van het 32,768KHZ signaal en ze driften ook als de pest van wat er uit komt.
Duidelijk bagger printjes uit China!

Alle printjes die met de DS3231N IC waren uitgerust waren goed instelbaar.
Er zijn ongeveer 10 printjes de vuilnisbak in gegaan.

Wat ik in huis had (ruim 20stuks) zijn volgens mij ongeveer een jaar geleden aangeschaft bij verschillende leveranciers uit China.
Geen idee hoe de kwalitijd nu is, bij keuze zou ik voor de DS3231N printjes gaan, daar deze met een xtal werken in de chip.
De M versie van de chips bevatten een micromachien die op een hoge frequentie resoneerd en naar 32,768KHz wordt gedeeld.
Deze versie als je de "echte" chip hebt, heeft een betere lange termijn stabiliteit volgens de datasheet.

Gegroet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

Hi,

Omdat ik geïntrigeerd raakte i.v.m. de problemem met de klok chips van Maxim hieronder nog wat info hier over.
Ik ga morgen een e-mail aan Maxim sturen waarom de 32.768KHZ frequentie die aan pin-1 verschijnt zo veel afwijkt van het optimum.
Dat kan bij de "M" versie tientallen KHz zijn!
Ik heb geen idee of of ik iets fout doen, vele printjes zijn ondertussen al bij de vuilverbranding van Amsterdam beland :-)
Een paar printjes heb ik bewaaard om de samples die ik bij Maxim had besteld, op te solderen.
Ook heb ik een SO8 behuizing van de DS3232M op een verloop printje gesoldeerd om uit te sluiten dat er iets is met de China printjes.
Ik heb dus vreemde resultaten zowel met de China printjes waar de "M" versie op zit als ook de orginele Maxim samples...

De "M" staat dus voor de Micromachiene versie, hier zit geen xtal in maar een resonator in de chip.
Zie het maar als de zelfde techniek als waar ook de electronische compaasen mee worden gemaakt en de microfoon van Analog Devices.

OK wat plaatjes anders vinden jullie het aleen maar gelul in de ruimte *grin*
Als eerste echter een link naar de website van Maxim waar je kan uitrekenen met een online calculator wat de verwachte drift is van de DS32xx serie IC's.

https://www.maximintegrated.com/en/design/tools/calculators/product-de…

Bij de PPM cel, voer je de gemeten aantal PPM afwijking in, die je gemeten hebt.
Ook kan de een stukj er boven de omgevings temperatuur invullen, deze staat standaard op 25C.
Als je nu de Calculate knop indrukt naar je ingevoerde PPM afwijking berekend hij dieverse verwachte driften voor je.
De driften om steeds naar je sociale media te kijken kan hij niet berekenen voor je, maar ik kan je vertellen dat jullie daar veel tijd mee verdoen :-)

Hieronder een plaatje van één van de klok IC's die de "M" achter het type nummer hebben, dus geen xtal bevatten.
Dit is een mooi voorbeeld om iets meer uit te geven als je een functie generator koopt, hier betreft het de goedkoopste SDG 2041X van Siglent die ook een Counter ingang
heeft waarmee je statistieken kan weergeven.
Onderin het beeld zie je een blauw vlak, daar geeft je de frequentie in welke het optimum is, hier dus 32,768KHZ.
Hij berekend dus alle waarde voor je die je in het beeld ziet, helemaal bovenin is de daadwerkelijke gemeten frequentie.
En ja, de counter hangt aan mijn Miedema LAB 10MHz referentie.
Dit DS3232M IC zit er dus 26KHZ naast!!!, schiet mij maar lek...
http://www.bramcam.nl/Diversen/DS3232/DS3232-4.png

Dit is een getrimd printje met een IC dat een xtal heeft, staat rond de 14 uur aan.
Er is zichtbaar op de tweede regel dat in dit tijdsbestek, de gemiddelde drift 0,004PPM is of te wel 4PPB.
De temperatuur drift tijdens de meting (waaronder de nacht) zal rond de 4 a 5C zijn geweest.
http://www.bramcam.nl/Diversen/DS3232/DS3232-3.png

Ik denk dat Maxim de stapgrote goed heeft gekozen, daar het weinig zinvol is nog fijner de 32,768KHz te tunen,
de temperatuur correctie is natuurlijk niet perfect, en heeft een grotere afwijking.
In de datasheet is te lezen hoeveel de temperatuurdrift zal zijn per C.

Deze keer een orginele Arduino Uno en het China klok printje, de twee druktoetsjes dienen er voor om de 32,768KHz te trimmen,
dit gaat in ongeveer 0,1PPM stapjes.
http://www.bramcam.nl/Diversen/DS3232/DS3232-5.png

Als ik meer weet van Maxim i.v.m. de klok frequentie afwijkingen voor de M versie, zal ik dit hier laten weten.

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Afwijking is 26 Hz, niet 26kHz. Dus ongeveer 0.1 % (1000 ppm). Toch wel veel inderdaad voor een klok.

blackdog

Golden Member

Hi deKees,

Daar is geen speld tussen te krijgen!
Je gaat door voor de strijkplank ?

/OT
Gelukkig heb ik nu wat meer tijd en zal binnenkort met je encoder code gaan spelen.
OT/

Als ik weer thuis ben haal ik de fout er even uit en zal ook de afwijking van de andere "M" versies laten zien.

Groet
Bram.

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

Hi,

Ik heb nog even gekeken/gemeten wat de afwijkingen waren van de andere printjes met de "M" versie van de DS32xx chip.

Als eerste nog een plaatje van een versie met een xtal in de chip, net als de vorige chip waarvan ik de meetgegevens liet zien die goed was.
Het aantal metingen is veel minder, maar voldoende als referentie voor de metingen die hieronder staan met de "M" versie van de chips.
Deze is dus toppy.
http://www.bramcam.nl/Diversen/DS3232/DS3232-11d.png

Deze chip zit er 26Hz naast wat rond de 770 PPM is, dit komt uit op ruim 1 minuut per dag.
http://www.bramcam.nl/Diversen/DS3232/DS3232-10b.png

Deze maakt het nog bonter, 36Hz verschil en dat is ruim 97 seconde per dag!
http://www.bramcam.nl/Diversen/DS3232/DS3232-11g.png

Deze chip is erg lief, voor wie weet ik echter niet... 71Hz er naast en dat is ruim 3 minuten per dag.
http://www.bramcam.nl/Diversen/DS3232/DS3232-11c.png

Ik hoop echt dat Maxim met een goede verklarig komt waarom ik het verkeerd doe :-)

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Wilde gok: die Chinezen hebben zelf iets in elkaar geprutst wat volgens een multimeter wel ongeveer 32kHz is.

Heb je al eens gemeten aan een exemplaar van een betrouwbare bron (Farnell/RS/Mouser/Digikey)?

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
blackdog

Golden Member

Hi SparkyGSX,

Ik heb een aantal samples die direct van Maxim komen, zelfde gedrag.
Daarom stuur ik ze morgen een mailtje met wat vragen.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Ik heb even iets gedaan wat jij blijkbaar niet goed genoeg gedaan hebt: de datasheet gelezen!

Daarin staat namelijk dat die 32kHz referentie maar liefst 2.5% mag afwijken, en dat alleen de 1Hz uitgang gecompenseerd wordt!

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
blackdog

Golden Member

Hi SparkyGSX,

Ik heb het nog en keer doorgelezen en denk dat je gelijk hebt. :-)
Wat ik echter niet begrijp is, waarom ze die "ongeveer" 32KHz bij dit type naar buiten brengen, daar heb je als gebruiker van deze IC versies dus eigenlijk niets aan.
Ik denk dat Maxim deze "ongeveer" frequentie naar buiten brengen om tijdens de fabricatie het IC te kunnen trimmen.

Net onderzoek gedaan welke van mijn instrumentarium 1Hz netjes kan weergeven, dat is dus heel lastig!
Na flink wat knoppen drukken op de KeySight 34461A meters, kwam ik aan een stabiele uitlezing als ik het signaal wat ik aanbied goed instel. (tussne de 2 en 5VTT)
Bij de HP 3458A DMM ging het eigenlijk in 1x goed, met die DMM zijn er nog meer mogelijkheden maar die zal ik eerst goed moeten uitzoeken.
Het is nu eenmaal geen instrument van 2x A4 handleiding, en ik gebruik deze functie eigenlijk nooit :-)

DE 3458A zit er +8PPM naast als ik 1Hz aanbied
De eerste 34461A = +15PPM
De tweede is +25PPM
De twee TEK DMM4050 meters geven aan dat de frequentie te laag is om te meten.
Mijn Rigol DG4162 functie generator die ook een Counter functie heeft, eet geen frequenties beneden de 10Hz.
De Racal Dana Counter doet het ook niet goed stabiel meer onder de 5 Hz.

Dus als ik b.v. rekening houd met b.v. de +15PPM van een van mijn 34461A DMM's, dan is dit na wat rekenen waarschijnlijk bruikbaar.
Ik denk dat dit een klusje voor morgen word!

Goede score SparkyGSX,

Groet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Wat je daar als gebruiker mee moet is mij ook een beetje een raadsel. Je zou het als clock kunnen gebruiken voor een microcontroller die weinig te doen heeft en totaal niet kritisch is, maar dan zou een interne RC oscillator ook volstaan. Ik heb geen idee wanneer dit nou nuttig zou kunnen zijn.

Succes met meten!

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Maar... het feit dat ze specificeren dat je minstens 10 seconden moet meten betekent voor mij dat ze iets doen met een digitale dithering om gemiddeld op de juiste frequentie uit te komen.

Als je met een logic analyser de boel zou capturen, zou je volgens mij dus zien dat ie bijvoorbeeld 32768 en 32767 cycles afwisselt om gemiddeld op de juiste 1Hz uit te komen. Aangezien een cycle ongeveer 30ppm is, zou je met een gemeten 120ppm afwijking (die op deze manier helemaal weggecorrigeerd is) al moeten kunnen tellen dat ie structureel 4 cycles afwijkt, dus bijvoorbeeld de 32764 en 32765 afwisselt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/