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

Problemy z AVR i Debug Wire przy użyciu Dragona - nieudane przejścia do DW

30 Sty 2018 13:17 1659 5
  • #1 16999650
    Konto nie istnieje
    Konto nie istnieje  
  • #2 16999900
    tronics
    Poziom 38  
    Czy kolega widział te instruktaże?
    https://www.youtube.com/watch?v=Bo0spmIKCy4
    https://www.youtube.com/watch?v=xJKoc_TI2sw

    Objaw jest dziwny gdyż po przywróceniu fabrycznych ustawień (wyczyszczeniu pamięci i fuse) powinno się normalnie przez SPI podłączyć i zapisywać. Dodatkowo ważne jest by nie kombinować z SPIEN, patrz:
    https://www.microchip.com/webdoc/GUID-DDB0017...tml?GUID-48C68221-FA0C-4CAB-9C7F-605F8B5D0000
    Dokument co prawda dla Atmel-ICE, ale obejmuje też omówienie użytkowania debugWire.
  • #3 16999946
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #4 17000004
    tronics
    Poziom 38  
    Tiny88 to seria którą Microchip wypuścił jako mocne tiny, a zubożone względem Atmega88 o rzeczy, które opisuje dokument AVR515:
    http://ww1.microchip.com/downloads/en/AppNotes/doc8089.pdf
    Jest to zatem inny produkt choć "prawie" pin compatible. Może być tak, że właśnie z tym jest problem. Mogę zobaczyć jak sprawa wygląda z attiny48, atmega48 i atmel-ice, bo akurat takie układy posiadam.
  • #5 17000055
    Konto nie istnieje
    Konto nie istnieje  
  • #6 19608594
    waldi_8601
    Poziom 13  
    Trafiłem do tego wątku po tym jak "ubiłem" przypadkiem płytkę arduino mini z atmega328P, satysfakcjonującej odpowiedzi nie znalazłem tutaj, ale drążąc dalej problem znalazłem rozwiązanie, może komuś się przyda.
    DebugWIRE można wyłączyć programatorami wymienionymi w tym wątku jednak cena kilkuset złotych dla uratowania jednej płytki nie bardzo mi się kalkulowała, a przejściówkę USB-UART zapewne każdy znajdzie w szufladzie.

    PROBLEM:
    Po zaprogramowaniu płytka wydaje się być martwa, to znaczy nie wykonuje się program, brak możliwości komunikacji z USBASP.

    PRZYCZYNA:
    Inwestygacja wykazała że z pośpiechu zostały błędnie ustawione fusebity.
    - Ustawiony zewnętrzny zegar
    - DWEN - interfejs debugowania został włączony

    ROZWIĄZANIE:
    1. Podłączenie zewnętrznego sygnału zegarowego
    Zaprogramowałem inna płytkę arduino mini z bitem CKOUT, powoduje to że na wyjściu pinu PB0 jest sygnał zegarowy procesora, który podłączyłem do wejścia sygnału zegarowego "ubitej" płytki.

    2. Wyłączenie debugWIRE
    Pobrałem i skompilowałem program do obsługi debugWIRE https://github.com/dcwbrown/dwire-debug
    Podłączyłem do "ubitej" płytki:
    - programator USBASP
    - port szeregowy(FT232RL + dioda) do wejścia RESET
    - połączyłem się z "ubitą" płytką i wprowadziłem w tryb który umożliwia komunikację z programatorem USBASP
    ./dwdebug f0,qi
    - przeprogramowałem fuse bity programatorem USBASP
REKLAMA