RC oscilator u AVR procesorů

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

RC oscilator u AVR procesorů

#1 Příspěvek od franta22 »

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é .

Wolfik
Příspěvky: 1076
Registrován: 28 črc 2009, 02:00

#2 Příspěvek od Wolfik »


Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#3 Příspěvek od franta22 »

DÉKUJU ZA URÁźku ale problém to neŘEŠI ......JSEM CHTĚL POMOCT = HELFNOUIT A NE´URAŽEJÍCI ODPOvěď ...asi to je dnešní dobou podmíněné ????

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#4 Příspěvek od Ruprecht »

Myslím, že longin má tu větu v uvozovkách jako automatický podpis... :)
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

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

#5 Příspěvek od AB1 »

DÉKUJU ZA URÁźku
To není na tebe, je to heslo, které si každý může zvolit a ukazuje se v každé poště pod čarou.

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

Uživatelský avatar
Hydrawerk
Příspěvky: 7678
Registrován: 13 pro 2011, 01:00
Bydliště: Earth

#6 Příspěvek od Hydrawerk »

Taky mám poznámku pod čarou, a hezkou.

Uživatelský avatar
nekmil
Příspěvky: 780
Registrován: 06 bře 2005, 01:00
Bydliště: Havířov

#7 Příspěvek od nekmil »

Pokud si přineseš ATtiny13A domů, tak je z výroby nastaven RC oscilátor na 9,6 MHz. S těma "pojistkama L-fuse, H-fuse" to není tak strašné. Viz "Longin"

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

#8 Příspěvek od AB1 »

nekmil:
Ale CKDIV8 je zapnutý, takže f=1,2 MHz.

Uživatelský avatar
nekmil
Příspěvky: 780
Registrován: 06 bře 2005, 01:00
Bydliště: Havířov

#9 Příspěvek od nekmil »

AB1: jasně na to jsem zapoměl :D

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#10 Příspěvek od franta22 »

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 .
8O

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

#11 Příspěvek od AB1 »

při následném čteni pameti flasch se mi precte stale celej soubor
Soubor načteš vždycky.
Ale pokud je procesor zamklý, tak načtený soubor je jiný než zapsaný.

Uživatelský avatar
nekmil
Příspěvky: 780
Registrován: 06 bře 2005, 01:00
Bydliště: Havířov

#12 Příspěvek od nekmil »

Tady je další kalkulačka na fuse a lock bity.

http://eleccelerator.com/fusecalc/fusec ... LOCKBIT=FF

Uživatelský avatar
mpcz
Příspěvky: 32
Registrován: 03 říj 2017, 02:00

#13 Příspěvek od mpcz »

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

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#14 Příspěvek od FHonza »

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.

Uživatelský avatar
mpcz
Příspěvky: 32
Registrován: 03 říj 2017, 02:00

#15 Příspěvek od mpcz »

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

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“