Używam Dragona, więc na klon raczej nie trafiłem. Przyznam, że przejście do DW do istna loteria, często sie nie udaje. Co gorsza, bywa, że gdy taki "padnięty" procek chcę ożywić w trybie HV to nie zawsze sie to udaje. Objaw jest taki, że fuses można modyfikować i wyłączyć tryb DW ale programu nie da sie zapisać, nawet w trybie HV.
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.
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:
Na razie odniosę się do tego, bo wcześniejszych linków nie obejrzałem dokłanie.
Wiem, że jak ustawię DW to SPIEN musi byc aktywny, ale ja mam problem gdy programuje w trybie HV. Ustawienie tych bitów (ustawiam SPIEN DW wyłączam) nie powinno mieć znaczenia.
Z Tiny85, jak czasem wejście w DW nie powiodło się nie miałem kłopotów, dało się go "ożywić". Kłopoty mam z Mega88 teraz widzę na niektórych napis Tiny88. Może tu jest jakiś problem?
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.
Tiny88 to seria którą Microchip wypuścił jako mocne tiny, a zubożone względem Atmega88 o rzeczy, które opisuje dokument AVR515:
Poczytam, bo zamówione były scalaki Mega88, a część z nich ma napis Tiny88. Jakoś do głowy mi nie przyszło aby sprawdzać oznaczenie każdego scalaa, który dostaję zwłaszcza jak są w listwie.
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