Stránka 1 z 2

Hodiny s AVR

Napsal: 06 pro 2013, 23:27
od 1N4148
Chtěl bych realizovat digitální hodiny řízené mikrokontrolérem ATmega, nicméně nemůžu použít krystal 32,768kHz, protože kromě řízení hodin bude procesor dělat ještě další věci, takže bude potřeba mít frekvenci co nejvyšší. Existuje nějaký krystal s vyšší frekvencí, vhodný pro použití v hodinách?

Napsal: 07 pro 2013, 08:21
od mira2830
Ideální řešení na hodiny by bylo asi použít přímo RTC obvod. Ale nejspíš by šlo taky jako krystal připojit klasicky 16MHz a hodinovým signálem (viz třeba odkaz nebo ještě s děličkou) vyvolávat přerušení a v něm inkrementovat hodiny. :)

Napsal: 07 pro 2013, 09:56
od monterjirka
Prakticky každý krystal nějaké vyšší frekvence je možné použít pro hodiny, přerušením od interního čítače spustíš "přičtení časové jednotky" a nějakou vloženou instrukcí NOP se dá co nejvíce přiblížit správné "rychlosti" a něco málo se ve finále dá dorovnat "popoladěním" krystalu.

Napsal: 07 pro 2013, 17:50
od Jenda_KL
vždyť můžeš použít i krystal 32k.
Ten se připojí na piny kam krystal patří a T2 se nastaví do async_mode.
Procesor se nechá běžet na interní RC (8MHz) a T2 běží z připojeného krystalu.
Pokud je to napájené ze záložní baterky, nechá se MCU po vykonaném T2OVF uspat a téměř nic to nežere.

Jinak platí výše uvedené, jen je potřeba si to spočítat.

Napsal: 07 pro 2013, 17:58
od Hydrawerk
Přimlouvám se za ten RTC obvod. http://www.youtube.com/watch?v=Gb1ErRRsZPQ

Napsal: 07 pro 2013, 18:52
od nekmil
Sám bych sice použil RTC ale "Jenda_KL" to popsal zcela přesně. Není třeba žádný další obvod, procesor běží na vnitřní RC oscilátor. A pokud by 8 MHz bylo málo tak použijemě krystal.
"Jenda_KL" :potlesk:

Napsal: 07 pro 2013, 19:35
od Jenda_KL
Dík, že ty dva dny koumání někdo ocenil ))
taky jsem netušil že to jde.

Napsal: 07 pro 2013, 20:01
od 1N4148
nekmil píše:... A pokud by 8 MHz bylo málo tak použijemě krystal.
Dají se k mikrokontroléru připojit 2 krystaly?

Napsal: 07 pro 2013, 20:12
od Jenda_KL
Nedají, druhý není potřeba.
Interní RC 8MHz stačí pomalu na všechno.
externí XT 32kHz časuje jen RTC které běží jako T2 nezávisle.

Napsal: 07 pro 2013, 23:03
od ross4435897
a precetl si nekdo jakou ma tento "kalibrovany" vnitrini oscilator toleranci? :D
ja hlasuji pro RTC modul ...

Napsal: 07 pro 2013, 23:25
od sewerman_cz
Vnitřní oscilátor nemusí být přesný, hodiny řídí 32 kHz krystal. Přesně takhle jsem si dělal taky hodiny tady je odkaz i s kódem.
http://elektro.akceasouteze.cz/avr/led- ... ve-hodiny/
Hodiny jsou napájené ze sítě a zálohované při výpadku (při výpadku nesvítí sedmisegmentovky)

Napsal: 08 pro 2013, 10:55
od nekmil
Samozřejmě, že lze připojit 2 krystaly. Jeden taktuje procesor a druhý (32 768 Hz) timer/counter 2. A vnitřní RC oscilátor v drtivé vetšině případů zcela postačuje, pokud není potřeba nějaké přesné odměřování času. Např. nějaké PWM pro řízení LED nebo ss motorku, tam krystalu skutečně netřeba.

Napsal: 08 pro 2013, 11:38
od Jenda_KL
XTAL1/XTAL2/TOSC1/TOSC2:
If the Internal Calibrated RC Oscillator is used as chip clock source, PB7..6 is used as TOSC2..1 input for the Asynchronous Timer/Counter2 if the AS2 bit in ASSR is set.
kam se připojí ten druhý krystal?

Napsal: 08 pro 2013, 12:04
od nekmil
Ano v případě "malých" procesorů (ATMEGA8) máš pravdu, tam to nejde. :D
Já si spíše hraju s těmi většími (ATMEGA32, 64, 644, 8535) a tam jsou TOSC1 a TOSC2 na pinech PC.6 a PC.7.

P.S. původce tohoto vlákna nám neprozradil typ procesoru :D

Napsal: 08 pro 2013, 15:14
od 1N4148
Jo je to 40-pinová ATmega32.