ATMEGA8535 i zegar na rezonatorze 32,768kHz

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

ATMEGA8535 i zegar na rezonatorze 32,768kHz

Post autor: Tranzystor » 30 wrz 2007, 11:14

Witam,
posiadam ATMEGA8535, potrzebuję zliczać czas rzeczywisty poprzez kwarc 32,768kHz podłączony do nóżek PC.7 oraz PC.6. Czy trzeba zmieniać coś w Fuse Bitach :?: Nigdy nie próbowałem uruchomić tego na ATMEGA8535. Nie chciałbym coś zmajstrować w Fuse Bitach, bo wiadomo czy to się kończy :lol:

Pozdrawiam ;)

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 30 wrz 2007, 11:22

Dlaczego boisz sie "fusów"? Przecież to proste. W specyfikacji procesora \są wyszczególnione sposoby taktowania i jak nalezy ustawić fuse bity. Trzeba znaleść i ustawić opcje wolnego rezonatora czyli low frequency oscillator. Coś takiego w każdym razie.
PS: pozdrowienia Tranzystorze.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 30 wrz 2007, 11:26

Problem w tym, że racji nie masz. To nie jest takie proste. Popatrz na mikroprocesor ATMEGA8535, można go równocześnie taktować zewnętrznym oscylatorem kwarcowym o częstotliwości np. 8MHz oraz rezonatorem kwarcowym 32,768kHz, tylko że ten drugi kwarc będzie taktował Timer2, a nie cały mikroprocesor. W Fuse Bitach powinno być gdzieś ustawienie czy nóżka PC.7 i P.C6 mają być protami czy końcówkami pod kwarc.

Ogólnie to nie boję się fuse bitów, bo to proste - masz rację. No, ale akurat nie jest to proste z tego typu sprawą :neutral: Dlatego wolałem zadać pytanie na forum.

Pozdrawiam ;)

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 30 wrz 2007, 11:30

Racja...niedopatrzylem. Wiec nie pozostaje nic innego jak przestudiowanie noty. Powinien byc odnośnik przy alternatywnych funkcjach koncówek.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 30 wrz 2007, 11:47

U mnie w ATMEGA8535 na razie ustawiłem fuse bity tak jak poniżej. W fusach gdzie ustawia się typ rezonatora jest opcja "Ceramic resonator/Ext clock, slowly rising power", może jak to bym dał to by zaczął chodzić, jednak boję się tego zmnieniać ze względu na to, że tam pisze Ceramic, a ja nie mam ceramicznego rezonatora :neutral:

Pozdrawiam ;)
Załączniki
Image1.jpg
Moje Fuse Bity
Ostatnio zmieniony 30 wrz 2007, 12:53 przez Tranzystor, łącznie zmieniany 1 raz.

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 30 wrz 2007, 12:35

Według noty katalogowej, aby TC2 asynchronicznie zliczał impulsy z osobnego generatora, trzeba zmienić ustawienia rejestru ASSR. Bit AS2 (ASSR.3) decyduje z jakiego źródła będą one zliczane. Domyśnie bit ten jest wyzerowany, więc trzeba wpisać do niego jedynkę.
W fusebitach natomiast wypadało by wtedy ustawić wewnętrzny oscylator RC (bity CKSEL.3...0 odpowiadające za częstotliwość taktowania oraz SUT.1...0 w zależności od szybkości narastania napięcia zasilającego; ewentualnie można włączyć BOD). Mikrokontroler też musi być czymś taktowany. Szczegółów należy szukać w kartach katalogowych procesora.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 30 wrz 2007, 12:39

Ddevil pisze:Według noty katalogowej, aby TC2 asynchronicznie zliczał impulsy z osobnego generatora, trzeba zmienić ustawienia rejestru ASSR. Bit AS2 (ASSR.3) decyduje z jakiego źródła będą one zliczane. Domyśnie bit ten jest wyzerowany, więc trzeba wpisać do niego jedynkę.
W fusebitach natomiast wypadało by wtedy ustawić wewnętrzny oscylator RC (bity CKSEL.3...0 odpowiadające za częstotliwość taktowania oraz SUT.1...0 w zależności od szybkości narastania napięcia zasilającego; ewentualnie można włączyć BOD). Mikrokontroler też musi być czymś taktowany. Szczegółów należy szukać w kartach katalogowych procesora.
Mikroprocesor może być taktowany, albo z zewnętrznego albo z wewnętrznego, w ATMEGA8535 nie ma to znaczenia. Już zresztą sobie poradziłem z tym problemem. Nic nie chciało mi odliczać, ponieważ źle napisałem jedną procedurę, bardzo ważną zresztą, która odpowiadała właśnie za zegar. Teraz ja poprawiłem i wszystko działa, Fuse Bitów nie ruszałem. Zostały takie jak pokazane na obrazku powyżej.

Dzięki za pomoc :!:
Życzę miłego dnia,
Pozdrawiam ;)

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 30 wrz 2007, 12:44

Tranzystor pisze:Fuse Bitów nie ruszałem. Zostały takie jak pokazane na obrazku powyżej.
Skoro nie używasz ceramicznego rezonatora, proponował bym zmienić ustawienia.

Jeszcze jedno:
"Ceramic resonator, BOD enabled" to ustawienie nie ma sensu; przecież BOD masz wyłączony "BODEN disabled".

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 30 wrz 2007, 12:55

Ddevil pisze:
Tranzystor pisze:Fuse Bitów nie ruszałem. Zostały takie jak pokazane na obrazku powyżej.
Skoro nie używasz ceramicznego rezonatora, proponował bym zmienić ustawienia.

Jeszcze jedno:
"Ceramic resonator, BOD enabled" to ustawienie nie ma sensu; przecież BOD masz wyłączony "BODEN disabled".
Przepraszam bardzo, pomyliłem sobie pliki. Nie mam ustawionego ceramicznego oscylatora. Mam jednak włączonego BODa, ale nie wiem czy jest jakiś sens go wyłączać :?:

Pozdrawiam ;)

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 30 wrz 2007, 19:02

Tranzystor pisze:Przepraszam bardzo, pomyliłem sobie pliki. Nie mam ustawionego ceramicznego oscylatora. Mam jednak włączonego BODa, ale nie wiem czy jest jakiś sens go wyłączać :?:
Jeżeli napięcie zasilające podczas włączania(wyłączania) wzrasta(maleje) stosunkowo powoli to zalecam włączenie tej pożytecznej opcji.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 30 wrz 2007, 19:11

Ddevil pisze:
Tranzystor pisze:Przepraszam bardzo, pomyliłem sobie pliki. Nie mam ustawionego ceramicznego oscylatora. Mam jednak włączonego BODa, ale nie wiem czy jest jakiś sens go wyłączać :?:
Jeżeli napięcie zasilające podczas włączania(wyłączania) wzrasta(maleje) stosunkowo powoli to zalecam włączenie tej pożytecznej opcji.
Ale mi to nie jest potrzebne... Układ zasilany ma być normalnie z transformatora, także...

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 30 wrz 2007, 19:15

Tak, ale transformator trzeba uprzednio "wyprostować" graetzem i "odfiltrować" jakimś kondensatorem ceramicznym i elektrolitycznym W przypadku dużych pojemności elektrolita sprawa może różnie wyglądać, ale to już sam zdecyduj :)

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 30 wrz 2007, 19:19

Ddevil pisze:Tak, ale transformator trzeba uprzednio "wyprostować" graetzem i "odfiltrować" jakimś kondensatorem ceramicznym i elektrolitycznym W przypadku dużych pojemności elektrolita sprawa może różnie wyglądać, ale to już sam zdecyduj :)
Najchętniej bym żadnego z tych układów manipulujących napięciem nie włączał, ale cóż jeden z nich trzeba wybrać :neutral:

ODPOWIEDZ