logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMEGA128 - Maksymalnie 4MHz

Krzemex 13 Maj 2009 14:19 1023 2
REKLAMA
  • #1 6524923
    Krzemex
    Poziom 11  
    Witam,
    Mam układ z ATMEGA128 taktowany kwarcem 16MHz. Wszystko od dawna już działało bardzo dobrze - do wczoraj. Rzec by można "samo się", ale wiele razy doświadczyłem już, że nigdy nic samo się nie robi...
    Wczoraj chciałem, żeby układ ten komunikował sie z innym (atmega8) po SPI. Napisałem prosty program dla obu procków, który miał wysyłać i odbierać jeden bajt. Wgrałem (programator zgodny z STK500V2) i nie działa. Stwierdziłem, że błąd w programie, coś tam zmieniłem i chciałem wgrać drugi raz do układu z ATMEGA128 i już sie nie dało. Tzn. AVR Studio stwierdziło, że proces zapisu i odczytu powiódł się, ale weryfikacja już nie... Dla sprawdzenia procka odczytałem sygnaturę i w odpowiedzi dostałem coś, co nie było sygnaturą tej atmegi. Kolejna próba: wyłączyłem zasilanie układu, odczytałem sygnaturę - ok, wgrałem program, weryfikacja - ok, włączam zasilanie i nic... Program jakby się nie wykonywał albo cały czas resetował. Próby programowania na włączonym zasilaniu dawały taki sam efekt jak wcześniej. Zmieniłem program na taki, który steruje dwiema diodami, jedna świeci ciągle, a druga miga i wgrałem na wyłączonym zasilaniu. I teraz po włączeniu, diody zapalają się losowo, świecą jaśniej/ciemniej lub w ogóle.
    Na początku pomyślałem, że to wina zasilania i procek się resetuje, no ale wcześniej było wszystko w porządku, więc szukałem dalej. Z ciekawości przeprogramowałem fusebity na oscylator wewnętrzny 1MHz i nagle układ ożył. Na 4MHz też działa, ale na 8MHz już nie, dzieje się to samo, co przy zewnętrznym 16MHz.
    Czy ktoś domyśla się co może być przyczyną? (Czy to dobrze, jak słychać "bzyczenie" kwarcu 16MHz? :))
  • REKLAMA
  • #2 6524991
    skynet_2
    Poziom 26  
    Krzemex napisał:
    (Czy to dobrze, jak słychać "bzyczenie" kwarcu 16MHz? :))

    "bzyczenie" kwarcu przy 16MHz to masz niezły słuch ;) Jeżeli kwarc buczy to go wymień, raczej już nie drga na 16MHz.
    A teraz co do pytania to spróbuj zwiększyć czas startu[DS str 40].
    Na wewnętrznym 8MHz nie działa, może ruszałeś rejestr XDIV?
  • #3 6525527
    Krzemex
    Poziom 11  
    Na słuch nie narzekam, ale też mi się wydawało, że tego słyszeć nie powinienem :) Zmieniłem kwarc i już nic nie "bzyczy", ale niestety to nie pomogło...
    Co do rejestru XDIV, to go w programie nie ruszam. A z tego co wyczytałem odpowiada on za ustawienie dzielnika zegara, ale nie ma możliwości, żeby go zatrzymał.
    Sprawdziłem również wszystkie rodzaje startów z róznymi opoźnieniami i cały czas to samo :|

    No cóż, po dwóch dniach męczenia się procek od biedy rusza już tylko na 2MHz, a po jakiejś chwili wiesza się. Czasami nawet zdarza mu się uruchomić z jakąś inną częstotliwością, a jak w programie są wykorzystywane timery albo przerwania, to cuda na kiju się dzieją. Dochodzę do wniosku, że to uszkodzenie procka, ale niestety nie widzę możliwości wylutowania go, więc nie sprawdzę.
REKLAMA