HighVoltageSerialProgrammer a właściwie FuseReseter, czyli jak uratować zablokowane AVR ATtiny

HighVoltageSerialProgrammer a właściwie FuseReseter, czyli jak uratować zablokowane AVR ATtiny

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Cześć, dzisiaj dokonamy „cudu” i ożywimy to co umarło, ale od początku…
Jak to bywa przy AVRach czasem (albo nawet często) należy ustawić fusebity, niby proste, niby oczywiste, ale… co zrobić, gdy popełni się błąd ? To zależy, czasem układ uda się ponownie zaprogramować, ale czasem wyrywamy włosy z głowy, bo układ umarł. Co zrobić ? To zależy. Przedstawiam wam koło ratunkowe dla najmniejszych układów Atmela, które posiadają interfejs wysokonapięciowego programowania szeregowego (w skrócie HVSP). W sieci można znaleźć kilka podobnych, a może i lepszych układów, ale ten powstał na szybko, z tego co było pod ręką, i co najważniejsze dostosowałem go tak, by obsługiwał wszystkie procesory z tym interfejsem.

Ale o co w tym wszystkim chodzi ? Już tłumaczę. Wyobraź sobie, że twój układ nie daje znaków życia, programator szeregowy wyrzuca błąd, że układ nie odpowiada, a Ty uświadomiłeś sobie, że to twój ostatni procesor tego typu. Czego potrzebujesz ? Cudu tj. czegoś co ożywi twój układ i tu z pomocą przychodzi ten post. Potrzebujesz płytki stykowej, źródła 12V, garści rezystorów i kondensatorów o wartościach zbliżonych do tych ze schematu, jakiegokolwiek tranzystora npn, jakiegokolwiek procesora AVR (bo kod jest łatwy do modyfikacji) , opcjonalnie diody LED i przycisku. Myślę, że jesteś w stanie złożyć to z byle czego a i tak zadziała ;)

Schemat ideowy układu
Schemat ideowy układu

Opis działania: Układ realizuje programowanie mikrokontrolera według opisu z dokumentacji ATtiny 13A, a konkretnie zapis fusebitów w trybie programowania wysokonapięciowego. Obecnie układ nie wspiera układów zabezpieczonych lockbitami, ale w łatwy sposób można go do tego dostosować. Wspierane ATtiny : 11, 12, 13, 15, 24, 25, 44, 45, 80, 84, 85, 441, 840, 841. Po naciśnięciu przycisku układ odczytuje sygnaturę mikrokontrolera, a następnie porównuje aktualne fusebity, z domyślnymi. Jeśli wystąpi różnica, programuje domyślne wartości zapisane w programie. Jeśli wszystko przebiegło pomyślnie zapalona zostaje dioda led, jeśli nie, dioda miga.

Jedna mała niedoróbka: program głupio czeka na niski poziom sygnału SDO – ryzyko zapętlenia programu, ale we wszystkich przypadkach testowanych na żywym pacjencie program działał.

Cóż więcej mówić – choć układ robiony na szybko, spełnił swoje zadanie, może i komuś z was pomoże, program w języku C, komentarze po angielsku ;)

Chętnie odpowiem na pytania i ewentualne wątpliwości.

Pliki załączone do artykułu:

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 3.44/5 (głosów: 9)

Podobne posty

Jeden komentarz

  • Nie wiem, dlaczego “ktosik” dał tak mało punkcików. Przecież wielu miało problem z zablokowanymi ATtiny, a tu wszystko w jednym miejscu i przyzwoicie wyjaśnione. Pozdrawiam.

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?