Krystalový oscilátor u procesorů AVR

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Neniu
Příspěvky: 1151
Registrován: 01 kvě 2015, 02:00
Bydliště: Doupě kdesi v severních horách :-)

Krystalový oscilátor u procesorů AVR

#1 Příspěvek od Neniu »

Zkouším si něco s procesorem AT tiny 2313 a zkouším u něj nastavit přesnou frekvenci. To se vlastně hezky podařilo, ale přesto mám dotaz :)

Oscilátor je zapojený podle DS, krystal mezi nožičky XTAL1 a XTAL2, z každé z nich na zem malý kondenzátor. Když se jeden nebo druhý nahradí trimrem, dá se kmitočet krásně doladit.

No a teďka ty dotazy:

- Kam zapojit trimr? Je lépe jej zapojit na vstup nebo na výstup vnitřního invertoru? Funguje na obou nožičkách, ale možná je jedna z nich vhodnější. A pokud tomu tak je, proč?

- Kmitočet se dá trochu doladit i změnou napětí procesoru. Je správnější jej doladit trimrem a nebo napětím? Měření mi ukazuje, že pokud se napětí nemění, je kmitočet stabilní. Na čítači připojeném na oscilátor již několik hodin svítí 4000,000 kHz.
Přílohy
oscilator.gif
(13.08 KiB) Staženo 43 x
Jsem na cestě k šípku.

Uživatelský avatar
serviceman
Příspěvky: 4005
Registrován: 09 črc 2013, 02:00

#2 Příspěvek od serviceman »

Určitě neladit napětím procesoru. Pokud máš extrémní nároky na stabilitu oscilátoru, použij externí, možná termostatovaný. Nevím co od toho chceš.
Nebojte se skloňovat (i cizí slova).

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#3 Příspěvek od frpr666 »

Já bych dal trimr na vstup (XTAL1). Mrkni tu:
http://avrprogrammers.com/howto/crystal-accuracy
Žijeme ve světě, kde nic není ideální. Navíc kondenzátory a trimry mají svůj ppm/C. Takže to bude trochu chodit s teplotou...
Jinak na internetu najdeš trik, jak z libovolného krystalu dostat konstantní tik např. 1Hz.

Uživatelský avatar
Neniu
Příspěvky: 1151
Registrován: 01 kvě 2015, 02:00
Bydliště: Doupě kdesi v severních horách :-)

#4 Příspěvek od Neniu »

serviceman píše:Nevím co od toho chceš.
Je to do hodin, extrémní přesnost není nutná, ale pokud půjdou přesně, je to jen dobře.
serviceman píše:Určitě neladit napětím procesoru.
Proč?
Jsem na cestě k šípku.

Uživatelský avatar
Neniu
Příspěvky: 1151
Registrován: 01 kvě 2015, 02:00
Bydliště: Doupě kdesi v severních horách :-)

#5 Příspěvek od Neniu »

frpr666 píše:Já bych dal trimr na vstup (XTAL1). Mrkni tu:
http://avrprogrammers.com/howto/crystal-accuracy
Žijeme ve světě, kde nic není ideální. Navíc kondenzátory a trimry mají svůj ppm/C. Takže to bude trochu chodit s teplotou...
Toto všechno vím a počítám s tím. A také proto se ptám, kam je lepší dát trimr. Jistě, nebude to dokonalé, ale pokud je ze dvou možností jedna lepší, chci ji využít. Ale já nevím, která z možností zapojení trimru je lepší a proto se ptám.
frpr666 píše:Jinak na internetu najdeš trik, jak z libovolného krystalu dostat konstantní tik např. 1Hz.
Ten trik by mne zajímal, já to řeším asi primitivně pomocí čítače/časovače a přerušení v procesoru :-)
Jsem na cestě k šípku.

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#6 Příspěvek od frpr666 »


Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#7 Příspěvek od AB1 »

No a teďka ty dotazy:
- Kam zapojit trimr?
Nejlépe nikam.
U hodin je důležitější stabilita kmitočtu, než jeho přesná hodnota.
A stabilita se trimrem zhorší.

Odchylka kmitočtu oscilátoru se velmi snadno vykompenzuje v programu procesoru.

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#8 Příspěvek od termit256 »

Nebude rozumnejsi tam dat za par kacek RTC a nemusis se babrat s vypocty casu, datumu apod.? Treba maxim dela RTC s teplotne kompenzovanym oscilatorem s odchylkou +-2ppm coz je nahony vzdalene krystalum. Navic se da do obvodu jednoduse nahrat korekce.

Pokud cas chces opravdu zpracovavat v AVR, dej tam oscilator, za rozumnou cenu se daji koupit se stabilitou kolem +-0,5ppm

Jak psal AB1, na nejake doserizovani krystalem se vykasli, tady jde opravdu jen o to ulitavani s teplotou/dlouhodobou stabilitu. Doladeni si udelej softwarove.

Uživatelský avatar
Neniu
Příspěvky: 1151
Registrován: 01 kvě 2015, 02:00
Bydliště: Doupě kdesi v severních horách :-)

#9 Příspěvek od Neniu »

Jeden člověk říká, že SW korekce je nadraka a je lepší trimr, druhý (zde) říká, že HW je nadraka a je lepší korekce v SW. To si pak má člověk vybrat :D

Můžu poprosit o tip na typ RTC obvodu s tolerancí ±2ppm? A případně kde splašit oscilátor s přesností ±0,5ppm za rozumnou cenu? Do těch hodin je to asi zbytečné, ale hodil by se jinam. Já nacházím jen velmi drahé a nebo ty běžné, ale ty mají rozhodně horší přesnost.
Jsem na cestě k šípku.

Uživatelský avatar
rob_brno
Příspěvky: 209
Registrován: 12 říj 2012, 02:00

#10 Příspěvek od rob_brno »

Neniu píše:Můžu poprosit o tip na typ RTC obvodu s tolerancí ±2ppm? A případně kde splašit oscilátor s přesností ±0,5ppm za rozumnou cenu? Do těch hodin je to asi zbytečné, ale hodil by se jinam. Já nacházím jen velmi drahé a nebo ty běžné, ale ty mají rozhodně horší přesnost.
Do hodin jednoznačně RTC, např. http://www.santy.cz/moduly-c22/mini-rtc-pro-3231-i157/
Na ebayi ten stejný za 35kč.
Modul má výstup signálu 1Hz, ten když připojíš na interupt vstup a podle něj budeš přičítat vteřiny, tak se na ladění krystalu můžeš vykašlat. Na převod vteřin(od roku tuším 1980) na datum a čas lze pak použít knihovnu time.h

Uživatelský avatar
Neniu
Příspěvky: 1151
Registrován: 01 kvě 2015, 02:00
Bydliště: Doupě kdesi v severních horách :-)

#11 Příspěvek od Neniu »

Díky za tip, vypadá to docela zajímavě. Jen tedy přesnost toho teplotního čidla je úžasná :D

Každopádně si myslím, že pokud stavím hodiny s MCU tak tam dávat ještě RTC je plýtvání strojovým výkonem. Něco jiného je, když ten procesor řídí hromadu dalších věcí a potřebuji i hodiny, tam RTC obvod patří, ale pokud procesor má řídit jen hodiny, je to to prostě mrhání.

A uznávám, že se může najít někdo, kdo bude tvrdit, že používat na hodiny procesor je mrhání, protože na to stačí několik obvodů klasické logiky. Což je také pravda, ale procesor je jedno pouzdro.

Takže RTC by bylo Teďka ještě prosím ten kompenzovaný oscilátor s přesností 0,5 ppm za rozumnou cenu ;-)
Jsem na cestě k šípku.

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#12 Příspěvek od termit256 »


Uživatelský avatar
Neniu
Příspěvky: 1151
Registrován: 01 kvě 2015, 02:00
Bydliště: Doupě kdesi v severních horách :-)

#13 Příspěvek od Neniu »

Děkuju. A jen valím koukadla, protože ty ceny jsou skutečně velmi zajímavé a příznivé. Přiznám se, že vzdor očekávání.

Budu muset Mousera zkusit :)
Jsem na cestě k šípku.

petrfilipi
Příspěvky: 2551
Registrován: 13 zář 2005, 02:00

#14 Příspěvek od petrfilipi »

RTC má tu výhodu, že poskytuje kompletní čas i po připojení napájení. Protože to stejně nějak musíš vyřešit - buď jednou nastavíš externí RTC s baterií nebo musíš zálohovat uP a ten musí stále běžet, abys po připojení napájení měl aktuální čas.
Dalším řešením je použít GPS modul - teď to řeším pro přesné stopky. Buď poskytuje přímo výstup času v digitální podobě (to by bylo pro hodiny) nebo má výstup 1pps (1 puls za sekundu). On to nemusí být jen 1pps, ale 1-1000 pps podle typu. Pokud najdeš typ, který má 1pps opravdu z družice (všechny totiž mají 1pps, ale některé si to generují jen SW), tak získáš za pár korun "absolutně" přesný zdroj impulsu 1s. A pak Ti může být jedno, na jaké frekvenci běží procesor, 1pps přivedeš na vstup přerušení a už jen čítáš a "probubláváš" přechody sekund na minuty apod.
Když bys chtěl např. jako já přesné stopky 1/100s, tak je možné použít oscilátor, jehož frekvenci lze měnit (OCXO apod.) napětím 0-5V v rozmězí např. +/- 2ppm. No a není nic jednoduššího, než použít nějaký procesor, který sejme náběžnou hranu 1pps signálu z družice a začne čítat frekvenci OCXO. Když napočítá do další náběžné hrany třeba 9 999 990 impulzů, tak trochu přidá napětí pro OCXO. Tím lze získat "absolutně" přesnou frekvenci i mimo 1pps.
Něco o tom je např. tady: http://ok1uga.nagano.cz/gps_normal.htm

Petr

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#15 Příspěvek od rnbw »

A k hodinam antenu?

Odpovědět

Zpět na „Poradna“