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ą:
Net pasiėmiau loginį analizatorių ir peržiūrėjau, ar signalo forma atitinka datašytą:
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ą…
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.
Norėjau paklaust, kur užsakinėji tokias gražias PCB?
PCB daromos kinijoje. Ten daug gamintoju, aš naudoju Seeed.
Kaina ~9USD už 10 PCB (5x5cm), t.y. su atsiuntimu viena PCB kainuoja apie 1€.
Plačiau apie tai sename straipsnyje apie spausdintų plokščių užsakymą Kinijoje.
Nesupratau . Tipo datašyte XA0 nesikalatuoja o turi kalatuotis ?
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”