RC oscilator u AVR procesorů
Moderátor: Moderátoři
RC oscilator u AVR procesorů
Zdravím vševchny . Pracuji s procesorem ATTINY 13A ,později bych chtěl přejít i na procesor ATTINY 4313 . Oba dva mají interní RC oscilátor .
Program ladím na simulátoru a následně testuju na reálném kitu s procesorem . Program píši v assembleru . Nedaři se mi provozovat interní RC oscilátor na vyššim kmitočtu než 128KHz tzn. 4,8MHz a 9,6MHz.
Programátor mám Avrdude GUI .
Děkuji předem za assemblerickou rutinu na nastaveni vnitřního oscilátoru
RC na kmitočet 4,8Mhz nebo 9,6Mhz .
Nastavení z programátoru Avrdude gui pomocí HFuse , IFuse a EFuse
mi taky není jasné .
Program ladím na simulátoru a následně testuju na reálném kitu s procesorem . Program píši v assembleru . Nedaři se mi provozovat interní RC oscilátor na vyššim kmitočtu než 128KHz tzn. 4,8MHz a 9,6MHz.
Programátor mám Avrdude GUI .
Děkuji předem za assemblerickou rutinu na nastaveni vnitřního oscilátoru
RC na kmitočet 4,8Mhz nebo 9,6Mhz .
Nastavení z programátoru Avrdude gui pomocí HFuse , IFuse a EFuse
mi taky není jasné .
To není na tebe, je to heslo, které si každý může zvolit a ukazuje se v každé poště pod čarou.DÉKUJU ZA URÁźku
Jestli jsi ještě nehýbal s fuse bitama, tak tento kód nastaví 9,6 MHz
Kód: Vybrat vše
ldi r16, 0x80
out CLKPR, r16
ldi r16, 0
out CLKPR, r16
DĚKUJU ti -- AB1
UŽ to fachá.....
ldi r16, 0X80
out CLKPR, r16 ;NUTNO NASTAVIT NEJPRVE
ldi r16, 0X00
out CLKPR, r16 ;NASTAVENI OSCILATORU Clock Prescale Register –CLKPR / Clock Division Factor
ldi r16, 0X7F
out OSCCAL, r16 ;Oscillator Calibration Register– OSCCAL
Ještě nevím jak uzamknouti procesor ....ať nastavím LOCK BIT jakkoliv
při následném čteni pameti flasch se mi precte stale celej soubor =neuzamčenej -:)
-------------------------------
Nechci nikoho rozčilit ale poradit jak uzamknouti program v ATTINY 13
přes avrdude guy aby nešel čist a nevypadnul .
![Shocked 8O](./images/smilies/icon_eek.gif)
UŽ to fachá.....
ldi r16, 0X80
out CLKPR, r16 ;NUTNO NASTAVIT NEJPRVE
ldi r16, 0X00
out CLKPR, r16 ;NASTAVENI OSCILATORU Clock Prescale Register –CLKPR / Clock Division Factor
ldi r16, 0X7F
out OSCCAL, r16 ;Oscillator Calibration Register– OSCCAL
Ještě nevím jak uzamknouti procesor ....ať nastavím LOCK BIT jakkoliv
při následném čteni pameti flasch se mi precte stale celej soubor =neuzamčenej -:)
-------------------------------
Nechci nikoho rozčilit ale poradit jak uzamknouti program v ATTINY 13
přes avrdude guy aby nešel čist a nevypadnul .
![Shocked 8O](./images/smilies/icon_eek.gif)
Tady je další kalkulačka na fuse a lock bity.
http://eleccelerator.com/fusecalc/fusec ... LOCKBIT=FF
http://eleccelerator.com/fusecalc/fusec ... LOCKBIT=FF
Zdravím,
potřebuji přepnout ATTINY85 do minikmitočtu co nejníže (ideál pod 300microA v chodu), (128kHz a méně) v očekávání minimální spotřeby. MPU také nesmí NIKDY odebírat více než 1 mA. Z důvodu slabých znalostí v tomto oboru bych rád zůstal u prostředí ARDUINO 1.8.5 a jednoduchého programátoru:
http://www.ispshop.cz/index.php?main_pa ... d=ATTINY44
samozřejmě pokud vyhoví HW požadavkům, jinak koupím jinou.
Úkol pro MPU je velmi jednoduchý: po zapnutí mini spotřeba, čekat cca 10 sec., pak jeden výstup na 1 sec. do 1, potom neusnout, čekat na 1 na druhém pinu.
V IDE 1.8.5 s podporou TINY jsem použil volbu 128kHz, kompilace i upload OK. Jestli se to přeplo na 128kHz nevím, problém působí delay() na 10 sec. Na tomto řádku se to při běhu programu sekne a je konec. Evidentně na tomto kmitočtu delay() působí problémy. Uspávat CPU nechci.
Podařilo se někomu ATMEL, nejlépe ATTINY85 přepnout na 128kHz s funkčním delay()? Jaká byla spotřeba 5V nebo 3V?
Děkuji za případnou radu.
mpcz, 03.oct.2017
potřebuji přepnout ATTINY85 do minikmitočtu co nejníže (ideál pod 300microA v chodu), (128kHz a méně) v očekávání minimální spotřeby. MPU také nesmí NIKDY odebírat více než 1 mA. Z důvodu slabých znalostí v tomto oboru bych rád zůstal u prostředí ARDUINO 1.8.5 a jednoduchého programátoru:
http://www.ispshop.cz/index.php?main_pa ... d=ATTINY44
samozřejmě pokud vyhoví HW požadavkům, jinak koupím jinou.
Úkol pro MPU je velmi jednoduchý: po zapnutí mini spotřeba, čekat cca 10 sec., pak jeden výstup na 1 sec. do 1, potom neusnout, čekat na 1 na druhém pinu.
V IDE 1.8.5 s podporou TINY jsem použil volbu 128kHz, kompilace i upload OK. Jestli se to přeplo na 128kHz nevím, problém působí delay() na 10 sec. Na tomto řádku se to při běhu programu sekne a je konec. Evidentně na tomto kmitočtu delay() působí problémy. Uspávat CPU nechci.
Podařilo se někomu ATMEL, nejlépe ATTINY85 přepnout na 128kHz s funkčním delay()? Jaká byla spotřeba 5V nebo 3V?
Děkuji za případnou radu.
mpcz, 03.oct.2017
Na nejnižší kmitočet přepneš Tiny85 tak, že se použije jako zdroj hodin Watchdog oscilátor (CKSEL = 0100) a ještě se zapne interní dělička 8 (CKDIV8=0). Tím se dostaneš na 16kHz. Má to řadu nevýhod, hlavně WD oscilátor je silně napěťově a teplotně závislý, takže musíš zapomenout na nějaké přesné měření času. Výhodnější je použít nízkofrekvenční krystal (spotřeba vzroste v řádech jednotek µA), CKSEL = 0110. Pro "jemnější" nastavení se podívej na registr CLKPR.
Pro změření taktu je asi nejjednodušší nastavit CKOUT=0 a na PB4 takt změřit.
S Arduinem se bude snižovat spotřeba obtížně, pro tak jednoduchou úlohu je i zbytečné Arduino použít. Lepší je mít vše pod kontrolou.
Začni tím že odstavíš vše nepotřebné (A/D převodník, komparator, Brown-out detektor, ...). Podívej se také na registr PRR.
Podrobně je vše popsáno v datasheetu v kapitolách Power Management and Sleep Modes a System Clock and Clock Options.
Pro změření taktu je asi nejjednodušší nastavit CKOUT=0 a na PB4 takt změřit.
S Arduinem se bude snižovat spotřeba obtížně, pro tak jednoduchou úlohu je i zbytečné Arduino použít. Lepší je mít vše pod kontrolou.
Začni tím že odstavíš vše nepotřebné (A/D převodník, komparator, Brown-out detektor, ...). Podívej se také na registr PRR.
Podrobně je vše popsáno v datasheetu v kapitolách Power Management and Sleep Modes a System Clock and Clock Options.
Dík za reakci. Toto vše jsem již vyčet a pročetl. Potíž je v tom, JAK to všechno udělat. Ideální by bylo *.ino, které zkompiluji v 1.8.5 a pošlu programátorem do TINY85. Netušil jsem, že přepnutí do LOW Power bude tak nejednoduché. Asi to vidím moc jednoduše, ale na PIC jsem dostal napsaný kód, poslal programátorem do MPU a jede to vše OK, to vše za pár minut. Možná také existuje jiný ATMEL, který hned po startu běží v low power módu, což by věc značně zjednodušilo.
mpcz, 03.oct.2017
mpcz, 03.oct.2017