CKSEL Atmega162


Witam, chciałem by układ pracował na zewnętrznym rezonatorze 11.0592MHz, więc ustawiłem CKSEL3..0 = "1111". Innych fusów nie modyfikowałem, więc pozostały wartości domyślne. Układ po tej modyfikacji przestał odpowiadać na programator ISP.

Moje teorie:
1. Dzielenie częstotliwości zegara powoduje problem( jak pisałem wcześniej, inne fusy zostały tak jak fabryka dała)?
2. Rezonator jest uszkodzony, da się to jakoś sprawdzić?

Co robić?




Portret użytkownika mirley

Re: ATMEGA162

Ustawienia opisałem tutaj. Twoje wyglądają na poprawne. Ustawienie CKSEL3..0 = "1111" napewno daje rezonator zewnętrzny i jescze musisz ustawić SUT1..0 = "11" i napewno jest dobrze (pamiętaj że 0 to bit zaprogramowany a 1 nie, jest to ważne jeśli masz program gdzie fusebity ustawia się "ptaszkami", wtedy zaznaczenie bitu daje 0 czyli jego zaprogramowanie). Prawdopodobnie kwarc jest do bani więc go wyrzuć i kup nowy, nie ma co kombinować

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kuna

Dziękuje za odpowiedź.

Dziękuje za odpowiedź. Właśnie kupiłem 3 rezonatory, 2x8MHz i 1x16MHz, wszystkie sprawdziłem i nadal nie działa:

AVRDUDE.EXE: Device signature = 0x000000
AVRDUDE.EXE: Yikes! Invalid device signature.

Połączenia są dobre, bo drugi kontroler jak wsadzę, łączy się bez problemu z programatorem.awić,

SUT1..0 = "11" niestety nie mogę ustawić, bo programator nie chce się połączyć z uC, prawdopodobnie ustawione jest "10".

Portret użytkownika mirley

Re; Fusebity

A może ustawiłeś CKSEL3..0 = "0000" zamiast 1111, to wtedy układ przechodzi na zewnętrzny zegar i na kwarcu nie pójdzie :(. Jak korzystasz z AVRDUDE to zainstaluj sobie BURN-O-Mat, tam wygodnie fusebity ustawisz w tym uC co Ci jeszcze działa. Ustawiałeś bezpośrednio w avrdude za pomocą wartość szestnastkowych?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kuna

Ustawiałem za pomocą Burn

Ustawiałem za pomocą Burn O-Mat, rzeczywiście wygodny program. Wydaje mi się że odznaczyłem te bity, czyli powinno być 1111. Aha układ jest zasilany z USB, może to ma jakieś znaczenie.

Portret użytkownika mirley

Re: Mega162

Nie ma znaczenia ja też zasilam przeważnie z USB i to całą płytkę testową :) Jeżeli odznaczyłeś to dobrze, nie ma innej możliwości musi być problem gdzie indziej. Jakie masz kondensatory przy kwarcu?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kuna

Próbowałem 12pF jak i 22pF,

Próbowałem 12pF jak i 22pF, może problemem jest to, że robię to na uniwersalnej płytce stykowej i powstają jakieś zakłócenia?

Portret użytkownika mirley

Re: Fusebity

Nie ma szans ja niekiedy miałem kabel po 3m podłączony do kupy kabli na stole i programował bez problemu

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kuna

A dało by się zrobić coś

A dało by się zrobić coś takiego, że w ten działający UC, jakoś przekazywał by sygnał zegarowy do tego, który być może oczekuje na zew sygnał(0000)?

Portret użytkownika mirley

Re: uC

Da sie tak zrobić ale nigdy nie podłączałem tak w praktyce. Możesz wygenerować programowo przebieg prostokątny i podłączyć go na wejście drugiego uC. Myslę że prostszym rozwiązaniem jest zastosowanie generatora kwarcowego.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kuna

Bingo! Okazało się, że dobrze

Bingo! Okazało się, że dobrze rozumiałem ustawianie fusów w Burn Macie, a zaznaczyłem je źle, czyli było tak jak mówiłeś "0000".

Oto program "Rezurektor", który zasilił krwiobiek mego procesorka:

DDRD = 0x02;
while(1){
PORTD = 0x02;
PORTD = 0x00;
}

Oczywiście program działa na taktowaniu 8MHz. Pin D1, popiołem pod XTAL1 nieprzytomnego procesora i się obudził :)

Dzięki za całodniową pomoc :) Kurcze, ale takie ożywienie procka daje satysfakcje.