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

[AVR] Jeśli nie działa Ci AVR - sprawdź dlaczego!

Balu 21 Kwi 2008 16:48 24337 2
  • #1 5061069
    Balu
    Poziom 38  
    Ostatnie czasy na Elce coraz więcej nie działających procesorów/Programatorów/za szybko wykonywujących się opóźnień... W związku z tym może warto by było zrobić coś w stylu "Kompedium" co zrobić, jeśli nie działa...Jeśli macie jakieś z życia przykłady piszcie, będę uzupełniał:)

    Nie działa procesor:
    1) sprawdź czy jest zasilanie na WSZYSTKICH Nóżkach na których być powinno (AVCC, VCC)
    2) Sprawdź czy masa jest tam gdzie być powinna (GND, AGND). (Nie przez procesor nie przepuszcza się gnd'a, trzeba podłączyć z ZEWNĄTRz do KAŻDEJ nóżki oznaczonej jako GND potencjał GND.
    3) Czy są kondensatory na liniach zasilania (100nF między VCC a GND BLISKO procesora).
    4) Czy napięcie VCC wynosi tyle ile powinno?
    5) Czy na resecie nie ma niskiego stanu?

    Nie mogę się skomunikować z programatorem:
    1) Sprawdź połączenia używając "piszczka" / "dzwonka" w multimetrze od nóżki w procesorze oznaczonej jako MISO/MOSI/SCK/RST do nóżki w buforze (jeśli to stk200).
    2) Czy są kondensatory 100nF?
    3) Czy zmieniałeś FuseBity? Jeśli tak, to czy masz dolutowany kwarc i kondensatory ~30pF do każdego wyprowadzenia kwarcu (i drugą stroną do masy)?
    4) Czy któraś z linii MISO/MOSI/SCK/RST nie jest przywarta do VCC/GND/czegokolwiek?
    5) Jeśli to M128/M2561 czy używasz lini PE0 i PE1 (zamiast PB... MISO/MOSI mają tutaj inną funkcję - są po prostu SPI)?
    6) Czy Programator USBasp jest przestawiony na mniejsza częstotliwość w przypadku zegara AVR ustawionego ponizej 1,5MHz (Zworka SLOWSCK)

    Jeśli procesor działa, ale zawiesza się / resetuje/ nie działa część pinów(portów):
    1) Czy są kondensatory 100nF?
    2) Czy nie masz włączonego watchdoga?
    3) Czy masz zasilanie na AVCC?
    4) Czy masz dobrze ustawione rejestry DDRxn?
    
    1- WYJŚCIE
    0- WEJŚCIE
    

    5) Jeśli to PORTC, czy masz wyłączony JTAG?
    6) Czy jest podciąganie na linii reset do VCC (przez rezystor ok. 1...20kOhm).


    Problemy z przerwaniami:
    1) W kółko wyzwala się przerwanie od INTx
    Jak masz skonfigurowane przerwanie (LOW LEVEL/FALLING/RISING). Jęsli LOW LEVEL, czy nie masz przypadkiem stanu niskiego na nóżce na stałe?
    2) Nie wyzwalają się przerwania?
    Czy masz globalne zezwolenie na przerwania (asm/c/bascom - sei/sei()/Enable interrupts).
    3) Nie wyzwala się przerwanie od X a od Y się wyzwala.
    Czy masz włączone zezwolenie na przerwanie od Y?

    Jeśli procesor robi coś za szybko / za wolno:
    1) Czy zmieniałeś FuseBity?
    2) Czy ustawiłeś w programie odpowiednio C/Bascom F_CPU/$crystal
    3) Czy na pewno to co masz zadeklarowane w $crystal odpowiada temu co masz wybrane fusebitami?

    Problemy z UARTem:
    1)Jeśli procesor wysyła śmieci...
    -Czy na pewno dobrze baud rate ustawiłeś?
    -Czy oba urządzenia mają ten sam baud?
    -Czy używasz wew. generatora RC (jeśli tak, rozważ zmianę na kwarc / kalibrację dla danych warunków pracy).
    -Zwolnij transmisję




    Pozdrawiam:)
  • #2 7869929
    rhn
    Poziom 11  
    Do problemów z działaniem attiny 2313:

    Upewnij się, czy piszesz do pamięci flash.

    Przed chwilą sam zmagałem się z tym problemem, omyłkowo pisząc do eeprom (nie mogłem nigdzie znaleźć, jak odbywa się start procesora po podłączeniu napięcia).
  • #3 8216484
    York
    Poziom 12  
    Ha,ha,
    czy wyłączyłeś JTAG?(bascom)
    czy przełączyłeś kwarc na zewnętrzny/wewnętrzny?
    podstawa

    sory Balu,nie doczytałem,pisałeś wcześniej o JTAG,sam się naciąłem kilka razy na to ,bezwiednie,bo to takie proste,juz nie mówię o moim podstawowym błędzie(bascom) pomylić input z output:
    pind.4....
    portd.4....
    pisząc z rozpędu to taka mała różnica.....,haha,i nic nie działa

    oczywiście pind to wejście
    portd to wyjście,eh.
REKLAMA