AVR76: unlock ir bambesiai

Iš kažkokio šroto pririnkau gal kokį pusę šimto ATMEGA162v procesoriukų. Buvo tiesiog gaila išmesti. Praėjo neskubant virš metų laiko, pasidarė testinė PCB ir buvo prilituoti keli. Pasirodė, kad jie užlokinti. Bent jau nuoseklus (serial) programavimas neveikė. Nėra didelė bėda ir ne pirmas kartas. Į rankas datašytą, biški programinimo ir … neveikia.

Dvidešimt tris kartus perpatikrinau schemą:
AVR fuse bit unlocking circuit and software

Net pasiėmiau loginį analizatorių ir peržiūrėjau, ar signalo forma atitinka datašytą:
AVR fuse bit unlocking waveforms

Viskas buvo gerai! Oscilogramos atitiko dokumentaciją. Ir kas įdomiausia, čipą ištrynė, low fuse baitą įrašė, o štai high niekaip (dėl extended net nežinau). Nes galėjau įjungti ar išjungti išorinį kristalą pagal bitus ir CKOUT taip pat valdėsi. Tačiau SPIEN niekaip! Pagalvojau, kad bloga mega, paėmiau kitą, tečią, visos vienodai. Kas įdomiausią, ATMEGA162 patvirtina rašymo komandą keisdama RDY/BUSY kojelę, ir taimingas atitinka datasheetą…
Perskaičiau kitų megų datašytus- nu lygtai viskas taip pat. Poto kilo įdėja pasižiūrėti kitų žmonių softą. Ir radau skirtumą…
AVR fuse bit unlocking waveforms
Atitinkamai pakeičiau savo softą- ir pyst, viskas susitvarkė. Pažiūrėkit į paveikslėlį iš datassheeto ir jau veikiančio “trintuko” signalo formą. Jaučiat subtilų skirtumą signale XA0 ?

Dabar aš jau nežinau kaip čia taip gavosi ir kur aš susimoviau?

Aišku Fuse atrakintojo source code ir sukompiliuotas failas. Beja, pagaliau prisiverčiau ir paleidau visą AVR sistema linuxiniam kompiuteryje. Nes tik tokį buvau nusivežęs į savo kaimą. Beja loginis analizatorius irgi veikė linux aplinkoje.
Softas supaprastintas ir nekontroliuoja RDY/BUSY kojelės, vietoje to išlaiko kiek didesnį laiką nei per kurį turi sveika mega perrašyti savo fuse ir ištrinti atmintį. Nes tų laidelių ir taip per daug…

A tiesa, iš papildomos hardwarės kurios reikia šiam “high voltage” programavimui- išorinis 12V maitblokis, ir vienas npn arba n-kanalo tranzistorius, kuris arba reset kojelę trumpina į žemę ar per 1K rezistorių pajungia iki +12V.

4 replies on “AVR76: unlock ir bambesiai”

  1. Su nesikalatuojančiu XA0 neįsirašo kažkodėl vienas “fjuzas”. Ir kažkodėl su kalatuojančiu įsirašo. Ir kažkodėl, svetimas softas “kalatuoja” tą koją. Todėl ir rašau: “aš jau nežinau kaip čia taip gavosi”

Leave a Reply

Your email address will not be published. Required fields are marked *