atmega8 i 32768Hz

Nov 10, 2005 5 Replies

Wczoraj u¿ywa³em google do grup i mój post siê nie pokazuje w outlooku...wiêc skopiuje tutaj.:


Witam. Chcê by atmega8 pracowa³a na ma³ej czêstotliwo¶ci. W datasheet'cie jest napisane ¿e nale¿y ustawiæ CKSEL na 1001 i CKOPT zaprogramowaæ (czyli na 0 ?) by uruchomiæ wewnêtrzne kondensatory. Programowanie CKOPT jest mi potrzebne równie¿ do tego by daæ pe³ny sygna³ zegarowy na zewn±trz ... Pierwszego ATMEGA8 to zablokowa³em bo wydawa³o mi siê ¿e nic siê nie stanie jak zmienie jednego fusebita....no i chyba ustawilem na zewnetrzny RC- da siê go jako¶ odratowaæ ? Troche kiedys czytalem o tym ze ratunkiem moze byc programator rownolegly ale nie oplaca sie go dla jednej sztuki robic. No to wybralem sie do sklepu po druga atmege i ustawilem juz wg datasheeta CKSEL na 1001 i CKOPT na 0 . I BASCOM nie rozpoznaje kolejnego procesora(przed ustawieniem fusebitow bylo ok) i nic sie nie da zrobic. Mam podlaczony 32768Hz do uK bez ¿adnych kondensatorów-w datashet pisze ze nie sa potrzebne jak sie zaprogramuje CKOPT. Juz nawet moge isc do sklepu po kolejnego(troche wstyd)...,ale nie chce znowu go uwalic. JAk prawidlowo ustawic fusebity ? Czy da sie jakos odratowac tamte uK ?


pozdro


Znalaz³em ERRATE na koñcu datasheeta(pomó¿cie prawid³owo zinterpretowaæ,plizz):

******************************************************************************************
  1. CKOPT Does not Enable Internal Capacitors on XTALn/TOSCn Pins when
32 KHz Oscillator is Used to Clock the Asynchronous Timer/Counter2

When the internal RC Oscillator is used as the main clock source, it is possible to

run the Timer/Counter2 asynchronously by connecting a 32 KHz Oscillator between

XTAL1/TOSC1 and XTAL2/TOSC2. But when the internal RC Oscillator is selected

as the main clock source, the CKOPT Fuse does not control the internal capacitors

on XTAL1/TOSC1 and XTAL2/TOSC2. As long as there are no capacitors connected

to XTAL1/TOSC1 and XTAL2/TOSC2, safe operation of the Oscillator is not

guaranteed.

Problem fix/Workaround

Use external capacitors in the range of 20 - 36 pF on XTAL1/TOSC1 and

XTAL2/TOSC2. This will be fixed in ATmega8 Rev. G where the CKOPT Fuse will

control internal capacitors also when internal RC Oscillator is selected as main clock

source. For ATmega8 Rev. G, CKOPT = 0 (programmed) will enable the internal

capacitors on XTAL1 and XTAL2. Customers who want compatibility between Rev.

G and older revisions, must ensure that CKOPT is unprogrammed (CKOPT = 1).

************************************************************************************************************************************************

Czy to oznacza,¿e je¶li pod³±cze te kondensatory 20pF od XTAL1 i XTAL2 do masy to wszystko bêdzie dzia³aæ?

Czy aby obudziæ poprzedni± ATMEGE8 wystarczy pod³±czyæ prawid³owe ¼ród³o taktowania?(takie jak ustawiono fusebity)

pozdro

Użytkownik Michał T napisał:

Witam Też sobie przez nieuwagę "ubiłem" w ten sposób ATMega8. Nie jest to problem. Podłącz pod nogę XTAL1 sygnał zegarowy o poziomie TTL z jakiegoś zewnętrznego generatorka i da się przestawić CKSEL z programatora szeregowego.

Pozdrawiam Grzegorz

To sposób na zmartwychwstanie-dziêks. A jaki jest sposób na ¿±dane dzia³anie? :-/

Michał T napisał(a): >

JA potrzebowałem taktowanie 32k, ale użyłem zewnętrznego generatora. Po przestawieniu fuse na zewnętrzny oscylator procek również umarł. Powodem okazał się zbyt wysoki clock na magistrali SPI przy programowaniu - tutaj Atmel zaleca Fsck nie większą niż 1/4 clocka. PRzy wyższych po prostu nie działa interfejs ISP - bo z powodu niskiego taktowania nie nadąża za magistralą SPI. Warto zatem sprawdzić, czy nie da się zwolnić programatora, którego używasz, bo może się okazać, że zegar działa prawidłowo, a problem leży w zbyt szybkim programowaniu.

Pozdrawiam, Paweł.

Ja nie miałem problemów z przestawieniem już zaprogramowanego wcześniej atmega (na defaultowym RC) na 32768 przez odpowiednie fusebity.

Potem tylko pojawia się kłopot z programowaniem spod WinAVR, którego używam. Taktowanie ISP musi być nie szybsze niż jakaśtam wielokrotność zegara w procesorze. Taka zmiana (AFAIK) jest możliwa przy użyciu do programowania programu - uisp zamiast domyślnie używanego w WinAVR make program.

Używasz BASCOMA, musisz poszukać w nim stosownych programów czy opcji.

TP.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required