M8 śpi po zmianie fusów

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!
daniel93
Użytkownik
Posty: 147
Rejestracja: 20 wrz 2005, 16:32
Lokalizacja: Wujskie city
Kontakt:

M8 śpi po zmianie fusów

Post autor: daniel93 » 25 gru 2006, 17:12

Ustawiłem fus A987 na 1010:1010, po czym przy próbie wykrycia dostaje FFFFFF Sad
Jeśli dobrze odczytałem z noty, to ustawiłem na kwarc 0,4-0,9Mhz.
Kupiłem rezonator kwarcowy 500Khz, połączyłem z kondami 33pF i nic Sad

Co mam teraz zrobić aby ją obudzić?

ZbeeGin

Post autor: ZbeeGin » 25 gru 2006, 17:31

daniel93 pisze:Kupiłem rezonator kwarcowy 500Khz
Kwarcowy czy ceramiczny? Bo na kwarcowym w tym zakresie to Mega8 nie wystartuje.

Spróbuj jeszcze bez kondensatorów lub zwiększ pojemność do 56pF.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 25 gru 2006, 18:57

z tego co się orientuję to nie można programowac przez spi przy niskich częstotliwościach. Ja zapiąłem do mojego atmegi8 kwarc zegarkowy, zmieniłem bity fuse i... stop. Na tym się skończyło. Tylko nie miałem okazji sprawdzic wtedy czy kwarc wogóle pracował, więc niczego niewiem na pewno.

ZbeeGin

Post autor: ZbeeGin » 25 gru 2006, 19:05

No właśnie Aro - nie wziąłem tego pod uwagę! Myślę, że jeśli kolega daniel93 znajdzie rezonator czeramiczny o częstotliwości 900kHz to są szanse na przeprogramowanie.

Choć z drugiej strony to programowanie na zewnętrznym sygnale takującym da się przeprowadzić nawet gdy ten ma ok. 100kHz.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 25 gru 2006, 19:17

Mnie programuje przy wewnętrznym 1MHz więc to prawie to samo. ja próbowałem przy 32768Hz i w bascomie można nawet ustawic taką częstotliwośc, ale słyszałem że jeśli chodzi o niskie to częstotliwości to przydaje się programator równoległy. A tak wogóle to czym się różni kwarcowy od ceramicznego?

ZbeeGin

Post autor: ZbeeGin » 25 gru 2006, 19:49

Aro pisze:A tak wogóle to czym się różni kwarcowy od ceramicznego?
Innym materiałem drgającym, odpornością na zmiany temperatury, dokładnością...
http://www.oscilent.com/catalog/Categor ... onator.htm

Przy ceramicznym należy stosować kondensatory o pojemności zalecanej przez producenta - zwykle są to relatywnie dość duże pojemności. Niektóre z rezonatorów mają je już wbudowane (zwykle te które mają 3 końcówki)

daniel93
Użytkownik
Posty: 147
Rejestracja: 20 wrz 2005, 16:32
Lokalizacja: Wujskie city
Kontakt:

Post autor: daniel93 » 25 gru 2006, 21:24

Hmmm
Powiedziałem, że chce kwarc, gość powiedział, że ma tylko to. Mówił, że to jest to samo tylko mniej odporne na zmiany temperatury itd.
Jest to pomarańczowy kwadracik - coś innego niż kwarc.
Więc pewnie ceramiczny.

[ Dodano: 2006-12-25, 21:32 ]
Dałem 47pF i nic :(
Dodam że próbowałem coś takiego: Zgrywam fusy z attiny2313 podpinam ATmege, zmieniam fusa A987 i programowanie fusów. Ale to nic nie dało :(

ZbeeGin

Post autor: ZbeeGin » 25 gru 2006, 22:23

Spróbuj zatem z innej beczki. Poskładaj jakiś generator 1MHz (na bramkach CMOS) i wyjście podłącz do XTAL1. XTAL2 pozostaw otwarty. Teraz podłącz programator i spróbuj ponowić identyfikację i odczyt fuse-bitów.

daniel93
Użytkownik
Posty: 147
Rejestracja: 20 wrz 2005, 16:32
Lokalizacja: Wujskie city
Kontakt:

Post autor: daniel93 » 25 gru 2006, 23:13

A można z drugiego procka wygenerować taki przebieg, czy koniecznie trzeba coś macić z CMOS'ami?
Jeśli z CMOS'ów to prosił bym jakiś schemat

[ Dodano: 2006-12-25, 23:34 ]
Generowałem sygnał, za pomocą takiego programu, wykorzystując ATTiny2313 i kwarc 16Mhz

Kod: Zaznacz cały

Config Portd = &B1111111
     Portd = &B0000000
Config Timer0 = Timer , Prescale = 1
Enable Interrupts
Enable Timer0
On Timer0 Zmien
Do
Loop
End
Zmien:
Timer0 = 246
Toggle Portd.6
Return
I nic :sad:

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 26 gru 2006, 10:47

Nie uważasz że 16MHz jak na procek 2313 to trochę za duzo? W kartach katalogowych jest 10MHz dla wersji AT2313-10 (AT2313=TINY2313). Druga rzecz: napewno na wyjściu nie pojawi się sygnał o częstotliwości 1MHz nawet przy kwarcu 10MHz. Powód- długi czas obsługi przerwania, ładowanie wartosci do timera i polecenie toggle, czyli kilkanaście, a może więcej taktów zegara. Wykorzystaj do tego opcje porównania timera, co chodzi już dośc szybko(robiłem kiedyś taki generator).

Kod: Zaznacz cały

Config Pind.3 = Output
Config Timer1 = Timer , Prescale = 1, Clear Timer = 1 , Compare A = Toggle
pwm1a=5
do
loop
end

daniel93
Użytkownik
Posty: 147
Rejestracja: 20 wrz 2005, 16:32
Lokalizacja: Wujskie city
Kontakt:

Post autor: daniel93 » 26 gru 2006, 16:01

– ATtiny2313: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
Czyli procek ma lecieć na 20Mhz...
Zaraz przetestuje Twój program...

[ Dodano: 2006-12-26, 14:21 ]
Załadowałem ten program i dalej nic :(
Dziwi mnie dlaczego na końcówce PORTD.3 nie ma 2,5v tylko 0v....

[ Dodano: 2006-12-26, 14:36 ]
Już znalazłem błąd.
program zmieniał stany na wejściu - PD.3, a powinno być na wyjściu - PB.3...
Zobaczymy czy to coś da

[ Dodano: 2006-12-26, 14:38 ]
Niestety nadal FFFFFF :sad:

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 26 gru 2006, 16:09

faktycznie mały błędzik , powinno byc

Kod: Zaznacz cały

Config Pinb.1 = Output 
Config Timer1 = Timer , Prescale = 1, Clear Timer = 1 , Compare A = Toggle 
pwm1a=5 
do 
loop 
end 

daniel93
Użytkownik
Posty: 147
Rejestracja: 20 wrz 2005, 16:32
Lokalizacja: Wujskie city
Kontakt:

Post autor: daniel93 » 26 gru 2006, 16:10

Zmieniłem i puściłem na XTAL1 w ATmedze i dalej śpi :(

Może na gg pogadamy?

[ Dodano: 2006-12-26, 16:13 ]

Kod: Zaznacz cały

Config Pinb.1 = Output 
powinno być

Kod: Zaznacz cały

Config Pinb.3 = Output 
I tak też dałem...

[ Dodano: 2006-12-26, 16:14 ]
Obawiam się, że częstotliwość jest nieprawidłowa...
Używam kwarca 16Mhz

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 26 gru 2006, 20:27

Ja wiem tylko że TINY2313 to jest odpowiednik AT2313 więc myślałem że max kwarc to 10MHz. Nie wiem gdzie wyczytałeś że 20MHz, bo to może była pomyłka. Na takich kwarcach pracują najszybsze mikrokontrolery z architekturą RISC, a TINY to są pdstawowe.

ZbeeGin

Post autor: ZbeeGin » 26 gru 2006, 20:33

:arrow: Aro: Atmel poszedł sporo naprzód. Tiny2313 może być taktowany 20MHz ale tylko w wersji ATtiny2313-20XX. :cool:

Co do zablokowanego Mega8; po prostu wypróbuj wszystkie możliwości zewnętrznego taktowania (kwarc, sygnał, układ RC). Może przy którymś zaskoczy...

ODPOWIEDZ