Problem z ATMega 8

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!
spark
Użytkownik
Posty: 412
Rejestracja: 25 lis 2004, 15:50
Lokalizacja: Wrocław

Post autor: spark » 04 lip 2008, 21:37

Kamil 1 pisze:Co do tych fusebitów ustawiłem je tak jak napisałeś Spark89. Jednak co najdziwniejsze po kliknięciu na READ SIGNATURE wyskakują losowo 3 rodzaje napisów: CHIP LOCKED, ATmega8 (czyli go widzi) i NOT KNOWN. Nie wiem o co tu chodzi raz go widzi a raz nie.
widzisz chyba takie proste programałki mają to do siebie, że tak działają,
ja posiadam podobną programałke z dosłownie garścią elementów i też nie zawsze
prawidłowo mi wykrywa podłączony uC, wtedy się pracuje starą sprawdzoną metodą prób i błędów,
tzn. dobrze sprawdzić wszystkie połączenia od portu komputera do programatora i z programatora do uC,
no i próbować, aż załapie...
Kamil 1 pisze:A czytałem gdzieś że jeśli jest mowa że np. CKSEL1 ma być ustawiony na 0 to trzeba w programatorze miejsce CKSEL1 ustawić na 1. Może tu robię błąd?
Widzisz zależy od programatora i zastosowanego w nich sposobu myślenia.
W fusach nieco irytujący jest fakt iż bit zaprogramowany to bit ustawiony na zero,
a bit zaprogramowany jedynką to bit niezaprogramowany.
zapewne niektórzy autorzy programatorów ułatwiają sobie sprawę pisząc kod programatora, żeby było na przekór bo do tego wszyscy przywykli że logiczna jedynka oznacza bit zaprogramowany a zero nie... ale to już kombinowanie i same kłopoty przez takie traktowanie sprawy, no i w szczególności - nie profesjonalne...

Jeśli stosujesz ISPprog to tam jest zastosowany taki sposób myślenia że 0 to bit zaprogramowany 1 - nie.

pzdr.

Kamil 1
-
Posty: 70
Rejestracja: 01 cze 2007, 15:20

Post autor: Kamil 1 » 05 lip 2008, 16:32

Czyli muszę zrobić inny programator :cry: ?

Sprawdzałem omomierzem rezystancję od portu komputera do uC i wszędzie wyszło mi 1.5Ω. Dodam że programuje go w ten sposób:
Do LPT przez kabel do drukarki podpięty jest programator. Do niego przez taśmę (10 przewodów) podpięty jest Atmega8 w płytce testowej (mojej roboty). Tam kabelki łączą linie programatora (SCK, MOSI...) z odpowiednimi pinami uC. Dodam że rezonator jest też podpięty do uC przez kabelki. Tam jest rezystancja 1.2Ω.

Mi się jednak wydaje że chodzi tu o rezonator, ponieważ ustawiając CKSEL3..1 na 111 czyli 8MHz po dołączeniu rezonatora zaczynają się problemy. Jeżeli zamiast dołączyć rezonator podepnę zewnętrzny generator (1MHz) to programator widzi uC i co więcej nawet można go programować i nie ma tego przypadku o którym pisałem na początku czyli wpisując komendę WAIT 1 uC czeka faktycznie 1 sek.

Próbowałem nawet programować uC tylko na zewnętrznym generatorze i potem podpiąć rezonator ale Atmega szaleje, tzn. program zakłada że dioda ma migać w odstępach 1sek. po podaniu VCC na pind.0 Atmegi, oczywiście przed podaniem napięcia dioda nie miga ale podpinając jeszcze głośniczek okazuje się że wydaje on dźwięk.

O co tu chodzi?

Proszę pomóżcie.

[ Dodano: 2008-07-06, 11:17 ]
No wreszcie udało mi się zaprogramować ATmege 8 przy użyciu zewnętrznego rezonatora :grin:

A teraz podsumuję:

Jeżeli macie taki problem że wasza Atmega po wpisaniu komendy WAIT 1 nie czeka 1sek. ale dłużej to musicie ustawić zewnętrzny rezonator w fuse bitach. W moim przypadku było to 8MHz więc ustawiamy
CKSEL3 na 1
CKSEL2 na 1
CKSEL1 na 1
CKSEL0 na 1

CKOPT na ... i tu UWAGA!!! CKOPT ustawione na 1 oznacza włączenie wewnętrznych kondensatorów na wejściach XTAL1 i XTAL2. Tak więc macie do wyboru dwa sposoby:
CKOPT na 1 (jeżeli przy rezonatorze nie macie wlutowanych kondensatorów)
CKOPT na 0 (jeśli przy rezonatorze macie wlutowane kondensatory)

To tak dla innych mających ten sam problem :wink: A jak coś to pisać na g-g 5170748 to pomogę z tymi fusebitami.

Dziękuje wszystkim za odpowiedzi

Pozdrawiam.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 07 lip 2008, 6:22

Kamil 1 pisze:Czyli muszę zrobić inny programator :cry: ?
Raczej inny program do obsługi programatora. Programator z filozofią ustalania wartości fusów nie ma nic wspólnego. Na tej stronie co ci PiotrekEl podał masz po prawej stronie układ fusów jaki ma być w Ponyprogu zaznaczony.

ODPOWIEDZ