Mikrokontrollerite taastamine. AVR kaitsme kinnitamine

_________________________________________________________________________________________________________

Kui töötasite sisseehitatud kellageneraatori kallal ja vilgutasite kogemata kaitsmed (näiteksvajutas nuppu, unustades märkeruudu eemaldada " programmi kaitsmed" Programmi kaitsme bitt(id) - mikrokontroller saab sisseehitatud kellageneraatori välja lülitada ja lülituda tööle välise kvartsiga (loomulikult lakkab töötamast).

Kui proovite kristalli välgutada, tekitab CodeVision selliseid vigu:


või niimoodi:

Kaitsmed on mikrokontrolleri sees olevad "lülitid", mis vastutavad sisseehitatud kellageneraatori ühendamise, välise kvartsi ühendamise, töörežiimi ühendamise eest välisest generaatorist jne. Te ei saa neid otse programmis konfigureerida, nagu ka registreid. Kaitsmeid reguleeritakse ainult püsivara vilkumise ajal.

Fuse inglise keeles tähendab "sulav hüppaja". Vanematel mikrokontrolleritel olid kaitsmed ühekordsed. See oli mikrokontrolleri kiibil juhtivate alade rühm. Kui juhtiv osa oli vaja programmeerida, rakendati see suure vooluga, hävis selles kohas kristallstruktuur ja lakkas voolu juhtivast. Kahjustatud mittejuhtivaks alaks loeti logi. null; kogu ala – eest logi. üksus.

Nüüd on kaitsmed korduvkasutatavad (see on lihtsalt lisamälurakk), kuid programmeeritud kaitsmete tähistusse jääb nende aegade relikt:
Programmeeritud
kaitsme tähistab auk (log.0, mittejuhtiv sektsioon);
Programmeerimata - linnuke (log.1, juhtiv osa);

Seega on kaitsmed programmeeritud pigem "aukudega", mitte puugidega.
__________________________________________________________________________________________________

Mikrokontrolleri funktsionaalsuse taastamiseks leidke aknast
ProgramFuseBit(id) bitid:
CKSEL0
CKSEL1
CKSEL2
CKSEL3
SUT0
SUT1
CKOPT
...ja võrrelge taldrikuga. Tehke kindlaks, millist töörežiimi te just vilgutasite
mikrokontroller :

Enamasti on kõik ülaltoodud bitid augud (vaikimisi CVAVR-is pole ühtegi linnukest), st kõik need bitid on programmeeritud. Mis vastab välise kvartsi ühendamisele sagedusega kolm kuni 8 MHz:



1. Ostke kvarts sagedusega kolm kuni 8 MHz või jootage see arvutijäägist lahti (kvartsi sagedus on selle korpusel kirjas). Ja kaks kondensaatorit vahemikus 12 kuni 36 pF.



2. Otsige mikrokontrollerilt üles tihvtid XTAL1 ja XTAL2, sisestage nende vahele kvarts. Samadest klemmidest visake kondensaatorid ühisele juhtmele (kuigi võite proovida ka ilma nendeta).


3. Muutke projekti konfiguratsioonis kiibi sageduseks 8 000 000 (või mõni muu, mille jaoks teie kvarts on mõeldud). Te ei pea seda muutma, kuid siis arvutab viivitusfunktsioon viivitused valesti (muidugi, kui kasutate seda).


4. Igaks juhuks ühendage kaitsmed uuesti (nüüd peaks CVAVR mikrokontrolleri normaalselt ära tundma):
Tööriistad >> Kiibi programmeerija >> Programm >> Kaitsmeotsik(id)

5. Puhastage kiip ja laadige programm uuesti üles (muidugi ärge unustage seda enne seda kompileerida).
Kui ilmnevad vead, proovige lihtsalt veaga aken sulgeda ja uuesti vilkuda. Protokollid programmeerijatele töötati välja juba Windows95 päevil ja vanemate arvutimudelite jaoks. Mõnel kaasaegsel eriti mitmetuumalised arvutid Windows XP-ga (Windows Vista, Windows 7) saab mõnikord ainult teist-kolmandat korda normaalselt vilkuma (vähemalt minul).

6. Kui saate mikrokontrolleri uuesti "toite", tehke nii, nagu soovite - saate selle tagasi lülitada sisseehitatud ostsillaatorile või jätkata tööd kvartsiga, kõrgel sagedusel.

PS. Saate lugeda CodeVisionAVR-ist kaitsmeväärtusi (ja kirjutada need üles enne, kui midagi mikrokontrolleriga teete, et saaksite need hiljem taastada) järgmiselt:Tööriistad >> Kiibiprogrammeerija >> Loe >> Kaitsmeotsik(id)



Mõnikord juhtub, et püsivara programm ei tuvasta enam töötavat, õigesti ühendatud mikrokontrollerit. See võib juhtuda mitmel põhjusel:

  1. Programmeerimine SPI kaudu on keelatud
  2. RESET-tihvtist on saanud tavaline pordi viik
  3. Valitud on vale kella allikas

Kui esimesel ja teisel juhul ei saa te ilma paralleelprogrammeerijata hakkama, siis kui kella allikas on valesti valitud, võite proovida selles väikeses juhendis kirjeldatud meetodeid. Selleks vajame:

  • Kvarts ~4 MHz
  • Kondensaatorid 12 pF kuni 22 pF (2 tk)
  • Takisti 10 kOhm
  • Kiip 74HC00
  • Sirged käed :-)

Oletame, et me ei tea, millise kella allika oleme valinud. On olemas järgmised kellaallikad:

  • Kvartsresonaator
  • Väline RC kett
  • Väline generaator

Olemas on ka sisemine RC generaator, kuid arusaadavatel põhjustel see meid ei huvita. Kontrolleri taaselustamiseks peate järjestikku läbima võimalikud valikud.

Kvartsresonaator

Kvartsresonaator on ühendatud jalgadega XTAL2 ja XTAL1. Iga kvartsist jalg on ühendatud kondensaatoriga, mis omakorda on ühendatud maandusega. Kõik kondensaatorid vahemikus 12 kuni 22 pf.

Kui kvartsi ühendamine ei aidanud, siis liigume edasi

Väline RC kett

Ma ei kasutaks seda kella tegemiseks, sest sagedus hõljub nagu teate mis augus. See ühendub kontrolleriga järgmiselt:

TÄHTIS: XTAL2 tihvt peab hõljuma õhus! Te ei pea seda kuhugi ühendama. Kui see ei aita, jääb viimane võimalus.

Väline generaator

Seda generaatorit saab teha peaaegu igast loogikast või näiteks 555 taimerist, mul juhtus käepärast olema 74HC00 kiip. Selle asemel võite kasutada meie k155la3. Skeem on äärmiselt lihtne ega vaja kohandamist:

Generaator töötab sagedusel umbes 1,3 MHz. Loomulikult saab seda reguleerida takisti ja kondensaatori väärtuste muutmisega, kuid see pole tõenäoliselt vajalik. Ma ei maksnud tema eest, sest... polnud mõtet. XTAL2 jalg tuleks jätta õhku rippuma. Kui pärast seda kontroller ei käivitu, tähendab see, et kontroller on surnud või SPI kaudu programmeerimine on keelatud või RESET on keelatud. Siin saab aidata ainult paralleelprogrammeerija.

Küsimused, ettepanekud, täpsustused postitatakse kommentaaridesse.

Tähelepanu! Seadme autor ei seisa paigal - ta täiustab pidevalt oma "arsti". Jälgin ka muudatusi ja täiendan artiklit.
Artiklis kirjeldatakse kõige rohkem stabiilne versioon Värskendus nr 9. kuupäevaga 13.03.2011.
Artikli lõpus on uusim versioon ja arhiiv kõigi "Doktori" vanade versioonidega.

Küsiksin minu blogi lugejatelt: mitu mikrokontrollerit on teile kogunenud valesti välkunud andmetega ja edaspidiseks kasutamiseks kõlbmatud? Ma arvan, et kui sa oled ilus kaua aega töötage mikrokontrolleritega, siis on teil juhtumeid olnud vale püsivara kaitsmed. Panin oma “kahjustatud” mikrokontrollerid spetsiaalsesse karpi lootusega, et kunagi tulevikus panen kõrgepinge paralleelprogrammeerija kokku ja äratan need uuesti ellu. Kuid millegipärast ei tahtnud ma eriti kõrgepinge programmeerijat kokku panna. Ahel on üsna keerukas ja sellise programmeerija kasutamine on ühekordne - ekslikult vilkunud mikrokontrolleri taaselustamiseks. Ühesõnaga, uue mikrokontrolleri ostmine oli alati lihtsam (ja odavam). Nii et "surnud" mikrokontrollereid oleks edasi hoitud, kui kummalist asja poleks juhtunud - uue seadme valmistamise ajal (postitan selle varsti) lakkasid nad elumärkide näitamisest, kaks pisikest2313 korraga ilma erilise põhjuseta . Kahtlus langes sellele, et kaitsmed olid püsivara ajal valesti seadistatud. SOIC paketti polnud võimalik kiiresti uusi hankida ja käed sügelesid ringi lõpetama. Kuna ma kavatsen nagunii teha kõrgepinge programmeerija, otsustasin, et on aeg seda teha. Kuid ma ei teinud kunagi kõrgepinge programmeerijat, vaid tegin seadme, mis on spetsiaalselt ette nähtud valesti paigaldatud kaitsmete parandamiseks.

Mida huvitavat pakub Atmega fusebit doctor?
Nagu aru saate, pole see just kõrgepinge programmeerija. See seade on mõeldud ainult üheks otstarbeks – valesti õmmeldud filamentidega mikrokontrolleri taaselustamiseks.

Sellised kaitsmed võivad olla:
—CKSEL kaitse põhiostsillaatori valimiseks (välisostsillaator valitakse selle puudumisel või valitakse sisemise ostsillaatori väga madal sagedus);
— SPIEN järjestikuse programmeerimise keeld;
-RSTDISBL lähtestustihvti kasutamine täiendava I/O liinina;
- paigaldatud LUKKU bitid;
— muud, mis segavad järjestikust programmeerimist.

SEADME TÖÖPÕHIMÕTE

- väga lihtne - pange plaadile 12 volti, sisestage "kahjustatud" mikrokontroller pistikupessa, vajutage nuppu " START"ja sekundi murdosaga saame uhiuue töötava mikrokontrolleri. See on väga lihtne, te ei vaja isegi arvutit (nad panevad alati pahaks pseudokellade ja vilede peale, nagu näiteks juhtimine eriprogramm arvutis, kus seda põhimõtteliselt vaja pole). Ja kui seade tundub väljast lihtne, on seest kõik palju keerulisem. Kui vajutate nuppu “START”, loeb seade patsiendi mikrokontrolleri signatuuri ja kui seda ei loeta, tehakse mitu katset lugeda. erinevatel viisidel. Pärast allkirja lugemist andmebaasist määratakse mikrokontrolleri tüüp ja taastatakse tehaseseaded sellest mikrokontrollerist, kaitsmeotsiku seaded. Kui signatuur on tundmatu või mikrokontroller tekitab selle valesti, seab seade kaitsmebitid olekusse, kus on võimalik järjestikune programmeerimine. Kaitsmebiti taastamisel jääb mikrokontrolleri püsivara puutumatuks. Laual on ka hüppaja " LUBA KUSTUTAMINE“, kui seade on suletud, nullib seade mikrokontrolleri täielikult. See on vajalik, kui patsient on “sulus”, s.t. on paigaldatud turvabitid, mis takistavad mikrokontrolleri lugemist/kirjutamist.

Seadmel on kaks LED-i, mis näitavad selle toimimist- punane ja roheline :). Minimalistlik? Aga sellest täiesti piisab!
Kui tuli on roheline– patsient paranes edukalt, kaitsmeotsikud taastati tehaseseadetele. Kui mikrokontroller on “lukus” (LockBits on lubatud), siis lihtsalt kontrollitakse kaitsmeotsi ja kui need ühtivad tehase omadega, süttib roheline LED.
Kui tuli on punane– probleeme kiibi allkirjaga, ei ole võimalik välja lugeda, kas pesas pole mikrokontrollerit või pole sellist signatuuri andmebaasis.
Kui roheline vilgub- signatuur on korras, kaitsmebitid on vigased, kuid neid pole võimalik parandada, kuna mikrokontroller on "lukus" (LockBits on lubatud), on vajalik täielik kustutamine mikrokontroller (peate kustutamiseks määrama hüppaja - "ALOW ERASE").
Kui vilgub punaselt- signatuur on korras, mikrokontroller pole lukus, kuid kaitsmebitte pole mingil põhjusel võimalik taastada.

Kui soovite saada rohkem detailne info tahvlil on info “ravi” protsessi kohta UART väljund. Saada see signaal terminali ja saada tehtust "väljatrükk".

Terminali seaded:
baudikiirus: 4800
pariteet: mitte ühtegi
andmebitid: 8
peatuskohad: 1
käepigistus: mitte ühtegi

Tahvlil on kolm paneeli "patsientide" jaoks 20 (Attiny2313...), 28 (Atmega48/88/168, Atmega8...), 40 (Atmega16, Atmega8535...) jalad. Kui otsustate "ravida" teist "patsienti", on juhatusel eriline adapteri pistik pistikupesadega mis tahes vajaliku mikrokontrolleri jaoks. Seade toetab sama palju 106 AVR mikrokontrollerite tüübid.
Siin on täielik nimekiri:
1 kB:
AT90s1200, Attiny11, Attiny12, Attiny13/A, Attiny15
2 kB:
Attiny2313/A, Attiny24/A, Attiny26, Attiny261/A, Attiny28, AT90s2333, Attiny22, Attiny25, AT90s2313, AT90s2323, AT90s2343
4 kB:
Atmega48/A, Atmega48P/PA, Attiny461/A, Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8 kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85, Attiny84, Attiny85, Attiny861,8,8,8 AT90s8535
16 kB:
Atmega16/A, Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega10,6p8P, Atmega16/6p wm216, AT90pwm316, AT90usb162
32 kB:
Atmega32/A, Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA, Atmega325, Atmega3250, Atmega3250,/2 ga328P , Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/ PA, AT90can32
64 kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA, Atmega645, Atmega645, Atmega645A/P0,6ATme,6ATme 90usb647, AT90can64
128 kB:
Atmega103, Atmega128/A, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256 kB:
Atmega2560, Atmega2561

Roheline kristallid, mida on testinud ja edukalt ravinud "arstide" kasutajad, on märgistatud. Kui olete kuivatanud kristalli, mis pole roheliselt märgistatud, siis andke sellest palun teada seadme autorile või mulle - annan edasi.

Oleme meelitavate arvustustega lõpetanud, nüüd paneme seadme kokku.

SEADME KOOSTAMINE.

Seadme skeem on üsna lihtne. Takisti väärtusi saab väikestes piirides muuta

See püsivara versioon on saadaval ka mikrokontrolleritele:
Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
16kB ja 32kB mäluga mikrokontrollerite püsivara kuvab ka taastatavate mikrokontrollerite nimesid.
Teiste mikrokontrollerite püsivara ja kaitsmed leiate Doctori vanade versioonide arhiivist artikli lõpus.

ADAPTERID MIKROKONTROLLERILE.

Autor on välja töötanud kaks adapterit:
— 20 kontaktiga Attiny26 ja 40 kontaktiga Atmega8515 sarnaste kontrollerite HVPP programmeerimiseks.
- HVSP programmeerimiseks kõrgepingega 8- ja 14p-kontaktiliste mikrokontrollerite jaoks järjekindlal viisil programmeerimine
- Adapterid 20 ja 40 kontaktiga mikrokontrollerite programmeerimiseks DIP-pakettides.
- Adapter 8 ja 14 kontaktiga mikrokontrollerite programmeerimiseks DIP-pakettides.

Väike boonus minu poolt– adapterid 8-pin (ATtiny13...) ja 20-pin (ATtiny2313...) mikrokontrolleritele SOIC pakettides.


- Adapterid 8 ja 20 kontaktiga mikrokontrollerite programmeerimiseks SOIC pakettides

Adapterite kasutamine SOIC-pakettide jaoks on väga lihtne:

KÕIGI EELMISTE ARSTI VERSIOONITE ARHIIV.

See on arhiiv kõigiga varasemad versioonid"Arstid". Lisaks sisaldab arhiiv täiendavaid materjale, nagu pistikupesad erinevatele AVR-korpustele, adapterplaadid ja palju muud.

"Doktori" vanade versioonide arhiiv

PRAEGU HETKEL VIIMASEM VERSIOON “ARST”.

Nagu eespool mainisin, on "Doktori" peamine eelis selle autonoomia. Kaitsmete taastamiseks vajate ainult seadet ennast. See on väga hea!
Jah, "arst" andis UART-i kaudu teavet "ravi" protsessi kohta. UART-i kaudu saadud teated, mis dubleerivad LED-e, andsid "ravist" täielikuma pildi, kuid paljude jaoks sellest ei piisanud. Sooviksin täielikumat kontrolli taastumisprotsessi üle. Ja uues värskenduses annab autor selle täielik kontroll!

Nüüd on see võimalik:
— kahesuunaline side "arstiga" UART-i kaudu;
— töötamine vale allkirjaga kristallidega;
— seadke oma kaitsmed ja lukustuskilbid;
— ülejäänu kohta loe arhiivi sees olevast kirjeldusest...
- "Doktori" uusim versioon

ARSTI BLOGIDE LUGIJATE TASUD.
Siin on lugejate kogutud seadmed – hea, kui on valik.

Signet "Doktor" Paulilt (lahases)

Pauli arsti signett (lahases)
zloynik leidsin mõned vead:
1. 23 mega jalaga takisti pole pesadesse ühendatud.
2. 4 mega jala takisti pole pistikupesadega ühendatud.
3. 5. mega jala takisti pole pesadesse ühendatud.
4.Transistor BC547(T2) 13 mega jalgadega - emitteri ja maanduse vahel puudub kontakt.
Muidu tundub kõik korras olevat. Kogus kokku ja lukustas Tinka 2313 ning restaureeris.
Palun arvestage sellega tootmise ajal.

Valik “Doctor” SMD versioonis alates webconn.

"Arst" valik SMD-s alates webconn
Tahaksin anda oma panuse teise tahvli näol "arsti" jaoks SMD versioonis. Seal on ainult 5 džemprit ja 3 SMD "ei hooli" seadet, mida toidab Power Jack 5 mm (aga arhiivis on ka pistikuga versioon) 78L05 kaudu (see läheb kuumaks, kuid saate töötada paar minutit ilma toite välja lülitamata ja tavaliselt polegi rohkem vaja) Samuti üks transistoridest, aga ka mõõdukalt (väikesed asjad nõuavad ohvreid). Küll aga on plaat kasutatav. Ühildub Uusim versioon Arstid V2h (see tähendab, et UART on täielikult hävinud).

Masinamehe "Doktori" variant.

"Doktori" juhtmestik firmalt Machiman


Plaat oli sprindis, saadaval olevate osade jaoks juhtmega, nii et tekkis SMD sümbioos väljaviigu elementidega, kui palju ma seda ka ei väänanud. Transistor T3 keerati õiget pidi (algul läks emitter-kollektoriga segamini). Jah, ma ei vaevanud liiga palju toiteallikaga ja ühendasin kõik molexi pistikuga. Ja loomulikult on juurdepääs laienduskaartidele. Edu!

TaseG-i valik “Doctor” (lahasjuhtmestik).

"Arst" variant firmalt TaseG.



Juhtmete korrigeerimine Maxim Nosyrevilt.
Olen algaja, nii et palun ärge mõistke mind karmilt kohut, kui ma eksin.
Kui võrrelda juhtmestikku artikli originaaliga, siis on olemas lisarada, mis ühendab 9 ja 5 volti, nagu ma aru saan, antakse megale 9 volti. Võib-olla ma muidugi eksin, aga ilmselt ei tohiks see nii olla...

Variant filmist "Doktor" Sailanserist (küljendus Eagle'is 5.10)

Juhtmed Sailanserist (Eagle 5.10)


Igaüks, kes hakkab koostööd tegema AVR mikrokontrollerid teab seda vale paigaldus"kaitsmed", võite jõuda kurbade tagajärgedeni.
Levinud juhtumite hulka kuuluvad mikrokontrolleri lähtestusviigu ekslik väljalülitamine (kaitsmebitt RSTDISBL, et seda saaks kasutada I/O liinina) või režiimi keelamine. ISP programmeerimine(Fuse bit SPIEN) - sellistel juhtudel muutub vooluahelasisene programmeerimine võimatuks.
Vaid paralleelprogrammeerija suudab nende funktsionaalsust taastada ja ellu äratada.

Sellise programmeerija vooluring on üsna keerukas ja sellise programmeerija kasutamine igapäevaelus on ühekordne - ekslikult vilkunud mikrokontrolleri taaselustamiseks. Sel põhjusel ei taha kõik ja praktiliselt mitte keegi seda kokku panna, uue mikrokontrolleri ostmine on alati lihtsam ja odavam. Ja “surnud” mikrokontrollerid kas visatakse välja või pannakse paremateks aegadeks kasti, ehk kunagi õnnestub ka paralleelprogrammeerija juurde saada.

Sattusin hiljuti Internetis huvitav seade, õigus "Atmega fusebit doktor", mida tahan meie lugejatele tutvustada.
Selle arenduse autor on poolakas Pawel Kisielewski. Selle seadme vooluahel on suhteliselt lihtne ja mõeldud ainult ühele eesmärgile - valesti õmmeldud kaitsmetega mikrokontrolleri ellu äratamiseks.

Sellised kaitsmed võivad olla:
-CKSEL kaitse põhiostsillaatori valimiseks (välisostsillaator valitakse selle puudumisel või valitakse sisemise ostsillaatori väga madal sagedus);
- SPIEN järjestikuse programmeerimise keeld;
-RSTDISBL lähtestustihvti kasutamine täiendava I/O liinina;
- paigaldatud LUKKU bitid;
- muud, mis segavad järjestikust programmeerimist.

Selle seadme kasutamine on väga lihtne - toideme plaadile stabiliseeritud toiteallikast 12 volti, sisestame pistikupessa “surnud” mikrokontrolleri, vajutame nuppu “ START"ja sekunditega saame "uhiuue" töötava mikrokontrolleri. enamgi veel "Atmega fusebit doktor" ei mõjuta mikrokontrollerisse ühendatud programmi, see ei huvita tegelikult, mis seal on ühendatud, kontrollib ainult "kaitsmeid". Näete, kõik on väga lihtne ja teil pole isegi arvutit vaja.

Toimimispõhimõte "Atmega fusebit doktor".

Kui vajutate nuppu "START", "Atmega fusebit doktor" loeb “surnud” mikrokontrolleri signatuuri, kui see pole loetav, siis üritatakse seda mitmel erineval viisil lugeda. Pärast signatuuri lugemist määratakse andmebaasist mikrokontrolleri tüüp ja taastatakse kaitsmebiti tehaseseaded.
Kui signatuur on tundmatu või mikrokontroller toodab selle valesti, seab seade kaitsmebitid olekusse, mis võimaldab jadaprogrammeerimist.
Kaitsmebiti taastamisel jääb mikrokontrolleri püsivara, nagu eespool mainitud, puutumata. Laual on ka hüppaja " LUBA KUSTUTAMINE“, kui seade on suletud, nullib seade mikrokontrolleri täielikult. See on vajalik, kui mikrokontroller on “lukus”, st. on paigaldatud turvabitid, mis takistavad mikrokontrolleri lugemist/kirjutamist.

Toimingu näitamiseks "Atmega fusebit doktor" on kaks LED-i - punane ja roheline.

Kui tuli on roheline- see tähendab, et mikrokontroller on edukalt desinfitseeritud, kaitsmeotsikud on taastatud tehaseseadetele. Kui mikrokontroller on “lukus” (LockBits on sisse lülitatud), siis lihtsalt kontrollitakse kaitsmeotsi ja kui need ühtivad tehase omadega, süttib roheline LED.
Kui tuli on punane- probleemid kiibi allkirjaga, ei ole võimalik välja lugeda, kas pesas pole mikrokontrollerit või pole sellist signatuuri andmebaasis.
Kui roheline vilgub- signatuur on korras, kaitsmebitid on vigased, kuid neid on võimatu parandada, kuna mikrokontroller on "lukus" (LockBits on lubatud), mikrokontroller tuleb täielikult kustutada (peate seadistama kustutamise hüppaja - "LUBA KUSTUTAMINE").
Kui vilgub punaselt- signatuur on ok, mikrokontroller “pole lukus”, aga kaitsmebitte pole mingil põhjusel võimalik taastada.

Kui soovite saada üksikasjalikumat teavet mikrokontrolleri "kuumenemise" protsessi kohta, on selle jaoks midagi laual UART väljund. Saatke see signaal terminali ja saate "väljatrüki" raviprotsessi käigus tehtust.

Terminali seaded on järgmised:
baudikiirus: 4800
pariteet: mitte ühtegi
andmebitid: 8
peatuskohad: 1
käepigistus: mitte ühtegi

Disain "Atmega fusebit doctor"

Trükkplaadil on kolm pesa mikrokontrollerite jaoks - "patsiendid". 20 (Attiny2313...), 28 (Atmega48/88/168, Atmega8...), 40 (Atmega16, Atmega8535...) jalad. Kui otsustate "ravida" teist "patsienti", on juhatusel eriline adapteri pistik pistikupesadega mis tahes vajaliku mikrokontrolleri jaoks.
"Atmega fusebit doktor" toetab enam kui sadat tüüpi AVR mikrokontrollereid.

Siin on nende täielik nimekiri:

Testitud ja edukalt taastatud mikrokontrollerid on tähistatud rohelisega.

1 kB:
AT90s1200, Attiny11, Attiny12, Attiny13/A, Attiny15
2 kB:
Attiny2313/A, Attiny24/A, Attiny26, Attiny261/A, Attiny28, AT90s2333, Attiny22, Attiny25, AT90s2313, AT90s2323, AT90s2343
4 kB:
Atmega48/A, Atmega48P/PA, Attiny461/A, Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8 kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85, Attiny84, Attiny85, Attiny861,8,8,8 AT90s8535
16 kB:
Atmega16/A, Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega10,6p8P, Atmega16/6p wm216, AT90pwm316, AT90usb162
32 kB:
Atmega32/A, Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA, Atmega325, Atmega3250, Atmega3250,/2 ga328P , Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/ PA, AT90can32
64 kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA, Atmega645, Atmega/640,649 AT90usb647, AT90can64
128 kB:
Atmega103, Atmega128/A, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256 kB:
Atmega2560, Atmega2561

Seadme kokkupanek.

Seadme skeem on üsna lihtne. Takisti väärtusi saab väikestes piirides muuta. Seade saab toite välisest stabiliseeritud toiteallikast pingega 12 volti. Toiteallikas on ühendatud trükkplaadi vastava 2-kontaktilise pistikuga.


059-atmega_fusebit_doctor_V2e_schematic.pdf – skeem "ATmega FuseBit Doctor"

Seadme kokkupanemisel on üks nüanss, mida on oluline mitte unustada.
Plaadile pistikupesade paigaldamisel tuleb 40-kontaktilise pesa, 29-37, jalad ära hammustada või veel parem, mitte puurida nende jalgade jaoks plaati üldse auke. Alloleval pildil on see koht punase-roosa värviga ümbritsetud.

Arhiivis on koos signetiga ka pilt tahvlile kandmiseks osade poolelt (paigalduspilt). Sellise “maskiga” toimetamine muutub lihtne protseduur raadiokomponentide paigaldamine piltide abil (“mask”). Sellist kujundust saab plaadile kanda ka LUT-meetodil, misjärel tuleb see lakkida, vastasel juhul kustutatakse see kiiresti.
059-atmega_doctor_plate_v2d_Sprint.rar – Signet "ATmega FuseBit Doctori" jaoks Sprint Layout 6-s.
059-atmega_fusebit_doctor_V2e_PCB.zip – "ATmega FuseBit Doctori" signet ja mask "PDF-is".
Järgmisena paigaldame plaadile džemprid ja raadiokomponendid, paigaldame pistikupesad ja lõpuks saame selle täieliku seadme:

Nüüd jääb üle vaid mikrokontroller vilkuma ATmega8 ja seade on valmis!
059-atmega_fusebit_doctor_2.09.hex – püsivara "ATmega FuseBit Doctor".

Jah, nagu peamine mikrokontroller, välja arvatud ATmega8, saab rakendada Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
Mikrokontrolleri kaitsmete paigaldamine on näidatud alloleval joonisel.

Fuse bytes: Lukustusotsad = 0x3F; Kõrge kaitsme = 0x D1; Madal kaitsme = 0xE1; Ext. Kaitse = 0x00

Kuidas kontrollida, kas olete need programmeerijas õigesti seadistanud? Erinevates programmeerijates on need seadistatud erinevalt. Mõnel on see nagu pildil, mõnel peegelpilt. Et teada saada, mida teha, peate programmeerijasse panema puhta kaitsmete tehaseseadetega MK ja lugema ainult kaitsme seadeid. Järgmisena võrrelge kaitsme peksmist "SPIEN". Kui teie programmeerija seda ei kontrolli, on kaitsmed seatud nagu pildil. Kui aga ruut on märgitud, on kõik kaitsmed peegelpildis seatud. See tähendab, et seal, kus pildil pole linnukesi, asetatakse need ja vastupidi.

See püsivara versioon on arhiivis ja saadaval ka mikrokontrolleritele:
Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
16kB ja 32kB mäluga mikrokontrollerite püsivara kuvab ka taastatavate mikrokontrollerite nimesid.

Adapterid mikrokontrollerite jaoks.

Autor on välja töötanud kaks adapterit:
- 20 kontaktiga Attiny26 ja 40 kontaktiga Atmega8515 sarnaste kontrollerite HVPP programmeerimiseks.
- HVSP programmeerimiseks 8- ja 14p-kontaktiga mikrokontrolleritele kõrgepinge jadaprogrammeerimismeetodiga.
059-adapter_dip20-dip40 – Adapterid 20 ja 40 kontaktiga mikrokontrollerite programmeerimiseks DIP-pakettides.
059-adapter_dip8-dip14 – Adapter 8- ja 14-kontaktiliste mikrokontrollerite programmeerimiseks DIP-pakettides.


Kui olete mikrokontrolleritega juba mõnda aega töötanud, on teil tõenäoliselt esinenud vale fusebiti püsivara juhtumeid. Kavandatav seade võimaldab teil lukustatud mikrokontrolleri kaitsmed lähtestada tehaseseadetele. Muidugi võite nendel eesmärkidel kasutada paralleelprogrammeerijat, kuid oletame, et mul seda pole ja paar blokeeritud kontrollerit lebavad.

Just täna hommikul töö juures avasime chipprogi programmeerijas kaks mega 8-t. Näis, et võiksime sellega peatuda, aga kallist programmeerijat ei ole alati käepärast ja te ei taha sellise juhtumi jaoks paralleelset programmeerijat kokku panna. Seejärel otsustasin otsida lihtsa seadme, mis suudaks mikrokontrolleri elustada vale kaitsme püsivara korral.
Nii sattusin ma seadmele nimega “Atmega fusebit doctor”. Autor on poolakas Pawel Kisielewski.

Kaitsmed, mis võivad kontrollerit blokeerida:
- CKSEL kaitse põhiostsillaatori valimiseks (välisostsillaator valitakse selle puudumisel või valitakse sisemise ostsillaatori väga madal sagedus);
- SPIEN järjestikuse programmeerimise keeld;
- RSTDISBL lähtestustihvti kasutamine täiendava I/O liinina;
– seadke LOCK bitid;
– muud, mis segavad järjestikust programmeerimist.

Seadme tööpõhimõte:

Toome plaadile 12 volti, sisestame patsiendi pistikupessa, vajutame nuppu “START” ja sekundi murdosaga saamegi töötava mikrokontrolleri. Seadme töötamiseks ei pea seda arvutiga ühendama ehk mikroskeemi saab lahti lukustada kasvõi põllul (kui 12V on olemas).

Kui vajutate nuppu START, proovib seade parimal viisil lugeda patsiendi mikrokontrolleri signatuuri. Pärast signatuuri edukat lugemist määratakse andmebaasist mikrokontrolleri tüüp ja taastatakse selle mikrokontrolleri tehase bitiseaded. Kui signatuur on tundmatu või mikrokontroller toodab selle valesti, seab seade bitid olekusse, mis võimaldab jadaprogrammeerimist. Kaitsmebiti taastamisel jääb mikrokontrolleri püsivara puutumatuks.
Juhul, kui on seatud kaitsebitid, mis takistavad mikrokontrolleri lugemist/kirjutamist, on tahvlil ALOW ERASE hüppaja, mille sulgemisel nullib seade mikrokontrolleri täielikult.

Näidustus:
Seadme töö näitamiseks kasutatakse kahte LED-i:
Roheline – patsient on edukalt ravitud, kaitsmeotsikud on taastatud tehaseseadetele. Kui mikrokontroller on “lukus” (LockBits on lubatud), siis lihtsalt kontrollitakse kaitsmeotsi ja kui need ühtivad tehase omadega, süttib roheline LED.
Punane – probleemid kiibi signatuuriga, ei saa lugeda, kas pesas pole mikrokontrollerit või pole sellist signatuuri andmebaasis.
Roheline vilkumine - signatuur on korras, kaitsmebitid on vigased, kuid neid ei saa parandada, kuna mikrokontroller on "lukus" (LockBits on sisse lülitatud), tuleb mikrokontroller täielikult kustutada (peate seadistama kustutamise hüppaja - "LUBA KUSTUTAMINE").
Punane vilgub - signatuur on korras, mikrokontroller pole lukus, kuid kaitsmebitte pole mingil põhjusel võimalik taastada.

Kui soovite saada täpsemat teavet "ravi" protsessi kohta, on tahvlil UART-väljund. Saada see signaal terminali ja saada tehtust "väljatrükk".

Terminali seaded:
edastuskiirus: 4800
pariteet: puudub
andmebitid: 8
peatused: 1
käepigistus: pole

Tahvlil on kolm pistikupesa 20-, 28- ja 40-jalgsetele “patsientidele” kastmiskastides. Kui teil on vaja teist "patsienti" ravida, on plaadil pistik adapterite ühendamiseks pistikupesadega mis tahes vajaliku mikrokontrolleri jaoks. Seade toetab 106 erinevat tüüpi AVR mikrokontrollerid.

Toetatud kontrollerite loend (kiibid, mille "arst" edukalt ravis, on tähistatud rohelisega):
1 kB:
AT90s1200, Attiny11, Attiny12, Attiny13/A, Attiny15
2 kB:
Attiny2313/A, Attiny24/A, Attiny26, Attiny261/A, Attiny28, AT90s2333, Attiny22, Attiny25, AT90s2313, AT90s2323, AT90s2343
4 kB:
Atmega48/A, Atmega48P/PA, Attiny461/A, Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8 kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pw,8b,8pw,8,8pwm A, Attiny87, Attiny88, AT90s8515, AT90s8535
16 kB:
Atmega16/A, Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega10,6p8P, Atmega16/6p wm216, AT90pwm316, AT90usb162
32 kB:
Atmega32/A, Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA, Atmega325, Atmega3250, Atmega3250,/2 ga328P , Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/ PA, AT90can32
64 kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A , Atmega644P/PA , Atmega645, 64AT645A,64P0,645 6, AT90usb647, AT90can64
128 kB:
Atmega103, Atmega128/A, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256 kB:
Atmega2560, Atmega2561
Kui oled nimekirjast taastanud kontrolleri, mis pole rohelisega märgitud, siis kirjuta sellest kommentaaridesse ja ma märgin ära.

Seadme skeem:


Seade on üsna lihtne. Takisti väärtusi saab muuta (väikestes piirides, ilma fanatismita)

Seadme trükkplaadil on üks oluline nüanss, millega tuleb seadme kokkupanemisel arvestada.
40k tihvti pesa jalgu 29 kuni 37 (fotol on punasega märgitud) pole vaja paigaldada ja parem on nende jalgade jaoks mitte trükkplaadile auke puurida.


Paneme kokku tahvli, välgutame kontrollerit ja hakkame taaselustama, reanimeerima ja uuesti...

"Doktori" peamine eelis on selle autonoomia. Kaitsmete taastamiseks vajate ainult seadet ennast. Ja koos viimane värskendus Seadme autor lisas ka täieliku kontrolli UART-terminali kaudu toimuva avamisprotsessi üle.

Failid:
Laadige alla projektifailid v2.11: (allalaadimisi: 3172)
Arhiivis: püsivara Atmega8, Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P, kirjeldus, trükkplaadid seadmed ja adapterid.
Laadige alla SMD adapterplaadid: (allalaadimisi: 2062)(Tiny2313, Mega8, Mega16, Mega128)
Laadige alla SMD adapterplaat saidilt GetChip.net: (allalaadimisi: 1654)(Tiny2313, Tiny13)

Peaaegu unustasin kõige tähtsama - kaitsmed