Pemulihan mikropengawal. Pembetulan fius AVR

_________________________________________________________________________________________________________

Jika anda sedang mengusahakan penjana jam terbina dalam dan secara tidak sengaja memancarkan fius (contohnyamenekan butang , sambil terlupa untuk menyahtanda " fius program" Bit Fius Program - mikropengawal boleh mematikan penjana jam terbina dalam dan beralih untuk berfungsi dengan kuarza luaran (sudah tentu, ia berhenti berfungsi pada masa yang sama).

Apabila cuba memancarkan kristal, CodeVision memberikan ralat seperti ini:


atau seperti ini:

Fius ialah "suis" di dalam mikropengawal yang bertanggungjawab untuk menyambungkan penjana jam terbina dalam, untuk menyambungkan kuarza luaran, untuk menyambungkan mod pengendalian daripada penjana luaran, dsb. Anda tidak boleh mengkonfigurasinya secara langsung dalam program, sama seperti daftar. Fius dikonfigurasikan hanya dengan perisian tegar.

Fius dalam bahasa Inggeris "fusible jumper". Pada mikropengawal lama, fius boleh guna. Ia adalah sekumpulan bahagian konduktif pada cip mikropengawal. Jika kawasan konduktif perlu diprogramkan, ia telah diberikan arus yang tinggi, struktur kristal di tempat ini telah musnah dan tidak lagi mengalirkan arus. Kawasan tidak konduktif yang rosak dianggap sebagai log. sifar; seluruh kawasan log. unit.

Kini fius boleh digunakan semula (ia hanya sel memori tambahan), tetapi peninggalan masa itu kekal dalam penetapan fius yang diprogramkan:
Diprogramkan
fius menandakan lubang (log.0, bahagian bukan konduktif);
Tidak diprogramkan - ditanda (log.1, bahagian konduktif);

Oleh itu, fius diprogramkan dengan "lubang", bukan tanda semak.
__________________________________________________________________________________________________

Untuk memulihkan mikropengawal, cari dalam tetingkap
ProgramFuseBit bit:
CKSEL0
CKSEL1
CKSEL2
CKSEL3
SUT0
SUT1
CKOPT
...dan bandingkan dengan pinggan. Tentukan mod pengendalian mana yang baru anda pancarkan
pengawal mikro :

Selalunya, semua bit di atas adalah lubang (secara lalai, tidak ada satu tanda semak dalam CVAVR), iaitu semua bit ini diprogramkan. Yang sepadan dengan menyambungkan kuarza luaran dengan frekuensi 3 hingga 8 MHz:



1. Beli kuarza untuk frekuensi tiga hingga 8 MHz atau paterinya daripada sekerap komputer (kekerapan kuarza ditulis pada bekasnya). Dan dua kapasitor dari 12 hingga 36 pF.



2. Cari pin XTAL1 dan XTAL2 pada mikropengawal, pasangkan kuarza di antaranya. Daripada kesimpulan yang sama, buang kapasitor pada wayar biasa (walaupun anda boleh mencuba tanpa mereka).


3. Dalam konfigurasi projek, tukar kekerapan cip kepada 8000000 (atau satu lagi yang kuarza anda direka bentuk). Anda tidak boleh mengubahnya, tetapi kemudian fungsi kelewatan akan mengira kelewatan secara tidak betul (jika anda menggunakannya, sudah tentu).


4. Untuk berjaga-jaga, pasang semula fius (kini CVAVR biasanya akan mengenali mikropengawal):
Alat >> Pengaturcara Cip >> Program >> Bit Fius

5. Bersihkan cip dan muat naik program sekali lagi (sudah tentu, jangan lupa untuk menyusunnya sebelum itu).
Jika ralat keluar, cuba tutup tetingkap dengan ralat dan kilatkannya semula. Protokol untuk pengaturcara telah dibangunkan pada zaman Windows95 dan untuk model komputer lama. Pada beberapa moden, terutamanya komputer berbilang teras dengan Windows XP (Windows Vista, Windows 7) ia kadang-kadang berlaku hanya dari kali kedua atau ketiga ia biasanya dipancarkan (sekurang-kurangnya untuk saya).

6. Apabila anda mendapat "kuasa" ke atas mikropengawal sekali lagi, maka mengikut kehendak anda - anda boleh menukarnya kembali kepada penjana terbina dalam, atau anda boleh terus bekerja pada kuarza, pada frekuensi tinggi.

PS. Anda boleh membaca nilai fius dari CodeVisionAVR (dan tuliskannya sebelum melakukan apa-apa dengan mikropengawal supaya anda boleh memulihkannya kemudian) seperti ini:Alat >> Pengaturcara Cip >> Baca >> Bit Fius



Kadang-kadang ia berlaku bahawa mikropengawal yang boleh diservis, disambungkan dengan betul tidak lagi dikesan oleh program perisian tegar. Ini boleh berlaku kerana beberapa sebab:

  1. Pengaturcaraan melalui SPI adalah dilarang
  2. Pin RESET telah menjadi pin port biasa
  3. Sumber jam yang salah dipilih

Jika dalam kes pertama dan kedua anda tidak boleh melakukannya tanpa pengaturcara selari, maka dengan sumber jam yang salah dipilih, anda boleh mencuba kaedah yang diterangkan dalam panduan ringkas ini. Untuk ini kita perlukan:

  • Kuarza ~4 MHz
  • Kapasitor dari 12 pF hingga 22 pF (2 pcs)
  • Perintang 10 kΩ
  • Cip 74HC00
  • Lengan lurus :-)

Mari kita anggap bahawa kita tidak tahu sumber jam mana yang telah kita pilih. Terdapat sumber jam berikut:

  • Resonator kuarza
  • Rantai RC luaran
  • Penjana luaran

Terdapat juga penjana RC dalaman, tetapi atas sebab yang jelas, kami tidak berminat dengannya. Untuk menghidupkan semula pengawal, anda perlu melalui pilihan yang mungkin secara berurutan.

Resonator kuarza

Resonator kuarza disambungkan ke kaki XTAL2 dan XTAL1. Setiap kaki kuarza disambungkan kepada kapasitor yang seterusnya disambungkan ke tanah. Kapasitor mana-mana dari 12 hingga 22 pf.

Jika menyambungkan kuarza tidak membantu, maka mari kita teruskan

Rantai RC luaran

Saya tidak akan menggunakannya untuk mencatat masa, kerana kekerapan akan terapung seperti yang anda tahu apa yang ada di dalam lubang. Ia menyambung kepada pengawal seperti ini:

PENTING: Pin XTAL2 mesti terapung di udara! Anda tidak perlu menyambungkannya ke mana-mana sahaja. Jika itu tidak berfungsi, maka pilihan terakhir kekal.

Penjana luaran

Penjana ini boleh dibuat daripada hampir mana-mana logik atau, sebagai contoh, daripada pemasa 555. Cip 74HC00 sudah ada. Sebaliknya, anda boleh menggunakan k155la3 kami. Skim ini sangat mudah dan tidak memerlukan pelarasan:

Penjana beroperasi pada frekuensi kira-kira 1.3 MHz. Sememangnya, ia boleh diselaraskan dengan menukar nilai perintang dan kapasitor, tetapi ini tidak mungkin diperlukan. Saya tidak membuat bayaran untuknya. tidak ada gunanya. Kaki XTAL2 harus dibiarkan tergantung di udara. Jika selepas itu pengawal tidak bermula, maka ini bermakna pengawal telah mati atau pengaturcaraan melalui SPI dilarang atau RESET dinyahdayakan. Hanya pengaturcara selari boleh membantu di sini.

Soalan, cadangan, penjelasan dilontarkan dalam komen.

Perhatian! Pengarang peranti itu tidak berdiam diri - dia sentiasa memperbaiki "Doktor"nya. Saya juga mengikuti perubahan, membuat kemas kini pada artikel.
Artikel itu menerangkan yang paling banyak versi stabil Kemas kini #9. dari 13.03.2011.
Pada penghujung artikel terdapat versi terkini dan arkib dengan semua versi lama Doktor.

Saya ingin bertanya kepada mereka yang membaca blog saya - berapa banyak mikropengawal yang telah anda kumpulkan dengan fius yang tidak menyala dan tidak sesuai untuk kegunaan selanjutnya? Saya rasa jika awak cantik masa yang lama bekerja dengan mikropengawal, maka anda telah mempunyai kes firmware yang salah fius. Saya meletakkan mikropengawal "rosak" saya di dalam kotak khas dengan harapan suatu hari nanti, pada masa hadapan, saya akan memasang pengaturcara selari voltan tinggi dan menghidupkannya semula. Tetapi entah bagaimana saya tidak benar-benar mahu memasang pengaturcara voltan tinggi. Litar ini agak mewah, dan penggunaan pengaturcara sedemikian adalah sekali sahaja - untuk menghidupkan semula mikropengawal yang menyala secara salah. Pendek kata, ia sentiasa lebih mudah (dan lebih murah) untuk membeli mikropengawal baharu. Jadi mikropengawal "mati" akan disimpan lebih jauh jika perkara pelik tidak berlaku - apabila peranti baru sedang dihasilkan (saya akan menyiarkannya tidak lama lagi), mereka berhenti menunjukkan tanda-tanda kehidupan, dua tini2313 sekaligus tanpa sebab tertentu . Kecurigaan jatuh pada fakta bahawa fius telah ditetapkan secara salah semasa firmware. Yang baru, dalam pakej SOIC, tidak dapat diperoleh dengan cepat, dan tangan saya gatal untuk menyelesaikan skema. Oleh kerana, bagaimanapun, saya akan membuat pengaturcara voltan tinggi suatu masa, saya memutuskan bahawa sudah tiba masanya untuk melakukannya. Tetapi saya tidak pernah membuat pengaturcara voltan tinggi, tetapi membuat peranti yang direka khusus untuk membetulkan fius yang dipasang secara salah.

Apa yang menarik dalam "Doktor Atmega fusebit"?
Seperti yang anda faham, ini bukanlah pengaturcara voltan tinggi. Peranti ini bertujuan untuk satu tujuan sahaja - untuk kembali "menghidupkan" mikropengawal dengan fius yang menyala dengan salah.

Fius sedemikian boleh:
- CKSEL fius untuk memilih pengayun induk (pengayun luaran dipilih jika tiada, atau frekuensi dalaman yang sangat kecil dipilih);
- SPIEN larangan pengaturcaraan berurutan;
— RSTDISBL menggunakan pin set semula sebagai talian I/O tambahan;
- ditubuhkan KUNCI bit;
- lain-lain yang mengganggu pengaturcaraan berurutan.

PRINSIP OPERASI PERANTI

- sangat mudah - kami membekalkan 12 volt ke papan, masukkan mikropengawal "rosak" ke dalam soket, tekan butang " MULAKAN“Dan dalam sepersekian saat kami mendapat mikropengawal yang berfungsi serba baharu. Ia sangat mudah, anda tidak memerlukan komputer pun (mereka sentiasa membuat loceng dan wisel palsu, dalam bentuk kawalan menggunakan program khas pada PC, di mana ia tidak diperlukan pada dasarnya). Dan jika secara luaran peranti kelihatan mudah, maka di dalamnya semuanya jauh lebih rumit. Apabila butang "MULA" ditekan, peranti membaca tandatangan pesakit mikropengawal, dan jika ia tidak boleh dibaca, beberapa percubaan dibuat untuk membaca cara yang berbeza. Selepas tandatangan dibaca daripada pangkalan data, jenis pengawal mikro ditentukan dan tetapan kilang dipulihkan, untuk mikropengawal ini, tetapan pukulan fius. Jika tandatangan tidak diketahui atau mikropengawal memberikannya secara salah, peranti akan menetapkan bit fius kepada keadaan sedemikian sehingga pengaturcaraan bersiri menjadi mungkin. Apabila memulihkan bit fius, perisian tegar mikropengawal kekal utuh. Terdapat juga pelompat di papan BENARKAN PADAM", apabila peranti ditutup, peranti akan "sifar" mikropengawal sepenuhnya. Ini adalah perlu jika pesakit "dikunci", i.e. bit keselamatan ditetapkan yang menghalang mikropengawal daripada membaca / menulis.

Peranti mempunyai dua LED untuk menunjukkan operasi.- merah dan hijau :). Minimalis? Tetapi ini sudah cukup!
Jika lampu hijau menyala– pesakit berjaya sembuh, bit fius dipulihkan ke tetapan kilang. Jika mikropengawal "dikunci" (LockBits didayakan), bit fius hanya diperiksa dan jika ia sepadan dengan kilang, LED hijau menyala.
Jika lampu merah menyala- masalah dengan tandatangan cip, mustahil untuk dibaca, tiada mikropengawal dalam soket atau tiada tandatangan sedemikian dalam pangkalan data.
Jika hijau berkelip- tandatangan adalah teratur, bit fius adalah dalam kesilapan, tetapi adalah mustahil untuk memperbaikinya, kerana mikropengawal "dikunci" (LockBits didayakan), adalah perlu pemadaman lengkap mikropengawal (anda perlu memasang pelompat untuk memadam - "BENARKAN PADAM").
Jika berkelip merah- tandatangan adalah teratur, mikropengawal "tidak dikunci", tetapi, atas sebab tertentu, adalah mustahil untuk memulihkan bit fius.

Jika anda ingin menerima lebih maklumat terperinci tentang proses "rawatan" di papan tulis ialah Keluaran UART. Hantar isyarat ini ke terminal dan dapatkan "cetakan" apa yang telah dilakukan.

Tetapan terminal:
kadar baud: 4800
pariti: tiada
bit data: 8
titik henti: 1
jabat tangan: tiada

Papan mempunyai tiga soket untuk "pesakit" dihidupkan 20 (Attiny2313...), 28 (Atmega48/88/168, Atmega8...), 40 (Atmega16, Atmega8535...) kaki. Jika anda membuat keputusan untuk "merawat" "pesakit" lain, maka bayaran itu menyediakan untuk yang istimewa penyambung untuk penyesuai dengan soket untuk sebarang mikropengawal yang anda perlukan. Peranti menyokong sehingga 106 jenis pengawal mikro AVR.
Berikut adalah senarai lengkapnya:
1kB:
AT90s1200 , Attiny11, Attiny12, Attiny13/A , Attiny15
2kB:
Attiny2313/A , Attiny24/A , Attiny26 , Attiny261/A , Attiny28 , AT90s2333 , Attiny22, Attiny25
4kB:
Atmega48/A , Atmega48P/PA, Attiny461/A , Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, ATMEGA88P/PA, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM81, AT90USB82, ATTINY84, ATTINY85,
16kB:
Atmega16/A , Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162 , Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega168/A, Atmega163A, Atmega164P/PA AT90pwm216, AT 90pwm316, AT90usb162
32kB:
Atmega32/A , Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA , Atmega325, Atmega/PA Atmega3250A, Atmega3250A 328, Atmega328P , Atmega3 29, Atmega3290, Atmega329A/PA, Atmega3290A / PA, AT90can32
64kb:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA , Atmega645, Atmega645/P645, Atmega645/P506 ​​, AT90usb646, AT9 0usb647, AT90can64
128kB:
Atmega103, Atmega128/A, Atmega1280 , Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561

hijau kristal bertanda yang telah diuji dan berjaya dirawat oleh pengguna "doktor". Jika anda menyembuhkan kristal yang tidak bertanda hijau, sila maklumkan kepada pengarang peranti atau saya - saya akan meneruskannya.

Dengan ulasan yang menyanjung selesai, sekarang mari pasang peranti itu.

MEMASANG PERANTI.

Skim peranti agak mudah. Nilai perintang boleh diubah dalam had yang kecil

Versi perisian tegar ini masih tersedia untuk mikropengawal:
Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
Perisian tegar untuk mikropengawal dengan memori 16kB dan 32kB, di samping itu, memberikan nama mikropengawal boleh pulih.
Untuk perisian tegar dan fius untuk mikropengawal lain, lihat arkib versi lama Doktor pada akhir artikel.

PENYESUAIAN UNTUK PENGAWAL MIKRO.

Pengarang telah membangunkan dua penyesuai:
- untuk pengaturcaraan HVPP 20-pin Attiny26 suka dan 40-pin Atmega8515 seperti pengawal.
— untuk pengaturcaraan HVSP untuk mikropengawal 8-pin dan 14-pin dengan voltan tinggi dengan cara yang konsisten pengaturcaraan
- Penyesuai untuk pengaturcaraan mikropengawal 20 dan 40 pin dalam pakej DIP.
- Penyesuai untuk pengaturcaraan mikropengawal 8 dan 14 pin dalam pakej DIP.

Sedikit bonus dari saya– penyesuai untuk mikropengawal 8-pin (ATtiny13...) dan 20-pin (ATtiny2313...) dalam pakej SOIC.


- Penyesuai untuk pengaturcaraan mikropengawal 8 dan 20 pin dalam pakej SOIC

Menggunakan penyesuai untuk pakej SOIC adalah sangat mudah:

ARKIB SEMUA VERSI DOKTOR TERDAHULU.

Ini adalah arkib dengan semua versi sebelumnya"Para doktor". Selain itu, arkib mengandungi bahan tambahan, seperti pinout untuk pelbagai sarung AVR, papan penyesuai dan banyak lagi.

Arkib versi lama "Doktor"

YANG TERAKHIR, UNTUK MASA INI, VERSI "DOKTOR".

Seperti yang saya nyatakan di atas, kelebihan utama "Doktor" adalah autonominya. Untuk memulihkan fius, anda hanya memerlukan peranti itu sendiri. Ini sangat bagus!
Ya, "Doktor" memberikan maklumat tentang proses "rawatan" melalui UART. Mesej pada UART, menduplikasi LED, memberikan gambaran yang lebih lengkap tentang "rawatan", tetapi bagi kebanyakan orang ini tidak mencukupi. Saya mahukan lebih kawalan ke atas proses pemulihan. Dan dalam kemas kini baru, penulis memberikan ini kawalan penuh!

Sekarang mungkin:
- komunikasi dua hala dengan "Doktor" melalui UART;
- bekerja dengan kristal yang mempunyai tandatangan yang salah;
- tetapkan fusebit dan lockbit anda sendiri;
- baca tentang selebihnya dalam penerangan di dalam arkib ...
- Versi terbaru "Doktor"

PEMBACA BLOG DR YURAN.
Berikut ialah peranti yang dikumpul oleh pembaca - ada baiknya anda mempunyai pilihan.

Signet "Doktor" daripada Paul (dalam Splint)

Signet of the Doctor oleh Paul (dalam Splint)
zloynik mendapati beberapa ralat:
1. Perintang dengan 23 kaki mega tidak disambungkan ke soket.
2. Perintang dengan 4 kaki mega tidak disambungkan ke soket.
3. Perintang dengan 5 kaki mega tidak disambungkan ke soket.
4. Transistor BC547 (T2) dengan 13 kaki mega-tiada sentuhan dari pemancar ke "tanah".
Semua yang lain nampaknya teratur. Tinka terkunci terkumpul 2313-dipulihkan.
Sila ambil perhatian semasa membuat.

Varian "Doktor" dalam versi SMD dari webconn.

Varian "Doktor" dalam SMD oleh webconn
Saya ingin menyumbang dalam bentuk lembaga lain untuk "doktor" dalam versi SMD. Hanya 5 pelompat dan 3 SMD-"tidak peduli", dikuasakan oleh Power Jack 5mm (tetapi terdapat versi dengan blok dalam arkib) melalui 78L05 (ia menjadi panas, tetapi anda boleh bekerja selama beberapa minit tanpa membelok dimatikan kuasa, dan anda biasanya tidak memerlukan lebih) Salah satu transistor, tetapi juga secara sederhana (perkara kecil memerlukan pengorbanan). Walau bagaimanapun, papan itu boleh digunakan. Bersesuaian dengan versi terkini Dr. V2h (iaitu, UART tercabut sepenuhnya).

Varian "The Doctor" oleh Machineman.

Susun atur "Doktor" dari Machiman


Papan dalam pecut, dibiakkan untuk bahagian-bahagian yang ada, jadi terdapat simbiosis SMD dengan unsur-unsur keluaran, ia tidak mungkin untuk melepaskan diri dari pelompat, tidak kira bagaimana saya memutarnya. Transistor T3 berpusing ke arah yang betul (pada mulanya ia keliru dengan pengumpul pemancar). Ya, saya tidak peduli dengan bekalan kuasa dan membawa segala-galanya ke penyambung molex. Dan sudah tentu, akses kepada papan pengembangan. Semoga berjaya!

Varian "Doktor" oleh TaseG (pendawaian dalam splint).

Varian "Doktor" oleh TaseG.



Pembetulan pendawaian dari Maxim Nosyrev.
Saya seorang pemula, jadi tolong jangan menilai dengan tegas jika saya salah.
Jika kita membandingkan pendawaian dengan asal dari artikel, maka terdapat trek tambahan yang menutup 9 dan 5 volt, seperti yang saya faham, 9 volt akan datang untuk kuasa mega. Mungkin saya salah, sudah tentu, tetapi mungkin tidak sepatutnya seperti itu...

Varian "Doktor" oleh Sailanser (pendawaian dalam Eagle 5.10)

Pendawaian daripada Sailanser (Eagle 5.10)


Semua orang yang mula bekerja dengan Pengawal mikro AVR tahu itu pemasangan yang salah"kabur", anda boleh mengalami akibat yang menyedihkan.
Kes biasa tersalah mematikan pin Reset mikropengawal (Fuse-bit RSTDISBL, untuk dapat menggunakannya sebagai talian I / O) atau mematikan mod Pengaturcaraan ISP(Fuse-bit SPIEN) - dalam kes ini, pengaturcaraan dalam litar akan menjadi mustahil.
Hanya pengaturcara selari boleh memulihkan prestasi mereka dan menghidupkannya semula.

Skim pengaturcara sedemikian agak mewah, dan penggunaan pengaturcara sedemikian dalam kehidupan seharian adalah sekali sahaja - untuk menghidupkan semula mikropengawal yang menyala secara salah. Oleh itu, bukan semua orang, dan secara praktikalnya tiada siapa yang mahu memasangnya, sentiasa lebih mudah dan lebih murah untuk membeli mikropengawal baru. Dan mikropengawal "mati" sama ada dibuang atau dikumpulkan dalam kotak untuk masa yang lebih baik, mungkin suatu hari nanti ia akan menjadi mungkin untuk sampai ke pengaturcara selari.

Saya baru-baru ini terjumpa di internet peranti yang menarik, bertajuk "Doktor Atmega fusebit" yang saya ingin perkenalkan kepada pembaca kami.
Pengarang perkembangan ini adalah Kutub Pawel Kisielewski. Litar peranti ini agak mudah dan ia bertujuan untuk satu tujuan sahaja - untuk kembali ke "hidup" mikropengawal dengan fius yang menyala dengan salah.

Fius sedemikian boleh:
- CKSEL fius untuk memilih pengayun induk (pengayun luaran dipilih jika tiada, atau frekuensi dalaman yang sangat kecil dipilih);
- SPIEN larangan pengaturcaraan berurutan;
-RSTDISBL menggunakan pin set semula sebagai talian I/O tambahan;
- dipasang KUNCI bit;
- lain-lain yang mengganggu pengaturcaraan berurutan.

Menggunakan peranti ini sangat mudah - kami membekalkan 12 volt dari bekalan kuasa yang stabil ke papan, masukkan mikropengawal "mati" ke dalam soket, tekan butang " MULAKAN"dan dalam beberapa saat kita mendapat mikropengawal yang berfungsi "baru". Dan "Doktor Atmega fusebit" tidak menjejaskan program yang dikawatkan ke dalam mikropengawal, dia secara amnya "tidak peduli" apa yang dikawatkan di sana, dia hanya memeriksa "fius". Lihat, ia sangat mudah dan anda tidak memerlukan komputer pun.

Prinsip operasi "Doktor Atmega fusebit".

Dengan menekan butang "MULA", "Doktor Atmega fusebit" membaca tandatangan mikropengawal "mati", jika ia tidak boleh dibaca, maka beberapa percubaan dibuat untuk membacanya dalam pelbagai cara. Selepas tandatangan dibaca, jenis pengawal mikro ditentukan dari pangkalan dan tetapan kilang bit fius dipulihkan.
Jika tandatangan tidak diketahui atau mikropengawal memberikannya secara salah, peranti akan menetapkan bit fius kepada keadaan sedemikian sehingga pengaturcaraan bersiri menjadi mungkin.
Apabila memulihkan bit fius, perisian tegar mikropengawal, seperti yang dinyatakan di atas, kekal tidak disentuh. Terdapat juga pelompat di papan BENARKAN PADAM", apabila ditutup, peranti akan "sifar" mikropengawal sepenuhnya. Ini adalah perlu jika mikropengawal "dikunci", i.e. bit keselamatan ditetapkan yang menghalang mikropengawal daripada membaca / menulis.

Untuk petunjuk operasi "Doktor Atmega fusebit" Ia mempunyai dua LED - merah dan hijau.

Jika lampu hijau menyala- ini bermakna mikropengawal telah berjaya disembuhkan, bit fius telah dipulihkan kepada tetapan kilang. Jika mikropengawal "dikunci" (LockBits didayakan), bit fius hanya diperiksa dan jika ia sepadan dengan kilang, LED hijau menyala.
Jika lampu merah menyala- masalah dengan tandatangan cip, mustahil untuk dibaca, tiada mikropengawal dalam soket atau tiada tandatangan sedemikian dalam pangkalan data.
Jika hijau berkelip- tandatangan adalah teratur, bit fius adalah dalam kesilapan, tetapi adalah mustahil untuk membetulkannya, kerana mikropengawal "dikunci" (LockBits didayakan), mikropengawal mesti dipadamkan sepenuhnya (anda perlu menetapkan pelompat padam - “BENARKAN PADAM”).
Jika berkelip merah- tandatangan OK, mikropengawal "tidak dikunci", tetapi, atas sebab tertentu, adalah mustahil untuk memulihkan bit fius.

Jika anda ingin mendapatkan maklumat yang lebih terperinci tentang proses "rawatan" mikropengawal, di papan itu terdapat Keluaran UART. Hantar isyarat ini ke terminal dan anda akan menerima "cetakan" apa yang telah dilakukan semasa rawatan.

Tetapan untuk terminal adalah seperti berikut:
kadar baud: 4800
pariti: tiada
bit data: 8
titik henti: 1
jabat tangan: tiada

Reka bentuk doktor atmega fusebit

Pada papan litar bercetak terdapat tiga soket untuk mikropengawal - "pesakit" dihidupkan 20 (Attiny2313...), 28 (Atmega48/88/168, Atmega8...), 40 (Atmega16, Atmega8535...) kaki. Jika anda membuat keputusan untuk "merawat" "pesakit" lain, maka bayaran itu menyediakan untuk yang istimewa penyambung untuk penyesuai dengan soket untuk sebarang mikropengawal yang anda perlukan.
"Doktor Atmega fusebit" menyokong lebih daripada seratus jenis mikropengawal AVR.

Berikut adalah senarai lengkap mereka:

Pengawal mikro yang telah diuji dan berjaya dipulihkan ditandakan dengan warna hijau.

1kB:
AT90s1200 , Attiny11, Attiny12, Attiny13/A , Attiny15
2kB:
Attiny2313/A , Attiny24/A , Attiny26 , Attiny261/A , Attiny28 , AT90s2333 , Attiny22, Attiny25
4kB:
Atmega48/A , Atmega48P/PA, Attiny461/A , Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, ATMEGA88P/PA, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM81, AT90USB82, ATTINY84, ATTINY85,
16kB:
Atmega16/A , Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162 , Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega168/A, Atmega163A, Atmega164P/PA AT90pwm216, AT 90pwm316, AT90usb162
32kB:
Atmega32/A , Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA , Atmega325, Atmega/PA Atmega3250A, Atmega3250A 328, Atmega328P , Atmega3 29, Atmega3290, Atmega329A/PA, Atmega3290A / PA, AT90can32
64kb:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA , Atmega645, Atmega645/P645, Atmega645/P506 ​​, AT90usb646, AT9 0usb647, AT90can64
128kB:
Atmega103, Atmega128/A, Atmega1280 , Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561

Pemasangan peranti.

Skim peranti agak mudah. Nilai perintang boleh diubah dalam had yang kecil. Peranti ini dikuasakan oleh bekalan kuasa luar yang stabil dengan voltan 12 volt. PSU disambungkan kepada penyambung 2-pin yang sepadan pada papan litar bercetak.


059-atmega_fusebit_doctor_V2e_schematic.pdf - Skema "Doktor ATmega FuseBit"

Apabila memasang peranti, terdapat satu nuansa yang penting untuk tidak dilupakan.
Apabila memasang panel pada papan, kaki soket 40-pin, dari 29 hingga 37, anda perlu menggigit, atau lebih baik lagi, jangan menggerudi lubang untuk kaki ini di papan sama sekali. Di bawah rajah, tempat ini dilingkari merah jambu.

Dalam arkib, bersama-sama dengan tanda, terdapat juga gambar untuk digunakan pada papan dari sisi bahagian (gambar pemasangan). Mengedit dengan "topeng" sedemikian bertukar menjadi prosedur mudah pemasangan komponen radio mengikut gambar ("topeng"). Corak sedemikian pada papan juga boleh digunakan menggunakan kaedah LUT, selepas itu ia perlu dipernis, jika tidak, ia akan dipadamkan dengan cepat.
059-atmega_doctor_plate_v2d_Sprint.rar - Signet untuk "ATmega FuseBit Doctor" dalam Sprint Layout 6.
059-atmega_fusebit_doctor_V2e_PCB.zip - Signet dan topeng untuk "ATmega FuseBit Doctor" dalam "PDF".
Seterusnya, kami memasang pelompat, komponen radio di papan, meletakkan panel, dan sebagai hasilnya kami mendapat peranti siap seperti itu:

Kini ia kekal hanya untuk menyalakan mikropengawal ATmega8 dan peranti sudah sedia!
059-atmega_fusebit_doctor_2.09.hex - Perisian Tegar "ATmega FuseBit Doctor".

Ya, sebagai pengawal mikro utama kecuali ATmega8, boleh digunakan Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
Pemasangan fius untuk mikropengawal ditunjukkan dalam rajah di bawah.

Bait fius: Bit Kunci = 0x3F; Fius Tinggi = 0xD1; Fius Rendah = 0xE1; Ext. fius= 0x00

Bagaimana untuk menyemak sama ada anda menetapkannya dengan betul dalam pengaturcara? Dalam pengaturcara yang berbeza, mereka ditetapkan secara berbeza. Ada yang seperti gambar, ada yang bercermin. Untuk mengetahui apa yang perlu dilakukan, anda perlu meletakkan MK bersih dengan tetapan fius kilang dalam pengaturcara, dan hanya membaca tetapan fius sahaja. Seterusnya, bandingkan fius-bit "SPIEN". Jika ia tidak diperiksa pada pengaturcara anda, maka fius ditetapkan seperti dalam gambar. Tetapi jika kotak semak ditandakan, maka semua fius dicerminkan. Iaitu, di mana tidak ada tanda semak dalam gambar, ia diletakkan dan sebaliknya.

Versi perisian tegar dalam arkib ini juga tersedia untuk mikropengawal:
Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
Perisian tegar untuk mikropengawal dengan memori 16kB dan 32kB, di samping itu, memberikan nama mikropengawal boleh pulih.

Penyesuai untuk mikropengawal.

Pengarang telah membangunkan dua penyesuai:
- untuk pengaturcaraan HVPP 20 pin Attiny26 suka dan 40 pin Atmega8515 seperti pengawal.
- untuk pengaturcaraan HVSP untuk mikropengawal 8-pin dan 14-pin dengan pengaturcaraan bersiri voltan tinggi.
059-adapter_dip20-dip40 - Penyesuai untuk pengaturcaraan mikropengawal 20 dan 40 pin dalam pakej DIP.
059-adapter_dip8-dip14 - Penyesuai untuk pengaturcaraan mikropengawal 8 dan 14 pin dalam pakej DIP.


Jika anda telah bekerja dengan mikropengawal untuk masa yang agak lama, maka anda mungkin mengalami kes perisian tegar fius yang tidak betul (fusebit). Peranti yang dicadangkan membolehkan anda menetapkan semula fius mikropengawal terkunci kepada tetapan kilang. Sudah tentu, anda boleh menggunakan pengaturcara selari untuk tujuan ini, tetapi katakan saya tidak mempunyai satu, dan beberapa pengawal yang disekat terletak di sekeliling.

Baru pagi ini, di tempat kerja, kami membuka kunci dua mega 8 dalam pengaturcara chipprog. Nampaknya mungkin untuk berhenti di sana, tetapi selepas semua, pengaturcara yang mahal tidak selalu ada, dan anda tidak mahu memasang yang selari untuk satu kes sedemikian. Kemudian saya memutuskan untuk mencari peranti mudah yang boleh menghidupkan semula mikropengawal sekiranya firmware fius tidak betul.
Jadi saya terjumpa peranti yang dipanggil "Doktor Atmega fusebit". Pengarangnya ialah Pole Pawel Kisielewski.

Fius yang boleh menghalang pengawal:
- CKSEL fius untuk memilih pengayun induk (pengayun luaran dipilih jika tiada, atau frekuensi dalaman yang sangat kecil dipilih);
- SPIEN larangan pengaturcaraan berurutan;
- RSTDISBL menggunakan pin set semula sebagai talian I/O tambahan;
– tetapkan bit KUNCI;
- lain-lain yang mengganggu pengaturcaraan berurutan.

Cara peranti berfungsi:

Kami membekalkan 12 volt ke papan, masukkan pesakit ke dalam soket, tekan butang "MULA" dan dalam sekelip mata kami mendapat mikropengawal yang berfungsi. Untuk peranti berfungsi, tidak perlu menyambungkannya ke komputer, iaitu, litar mikro boleh dibuka kunci walaupun dalam medan (jika 12V tersedia).

Apabila anda menekan butang "MULA", peranti cuba sedaya upaya untuk membaca tandatangan pesakit mikropengawal. Selepas kejayaan membaca tandatangan, jenis mikropengawal ditentukan dari pangkalan dan tetapan kilang bit dipulihkan untuk mikropengawal ini. Jika tandatangan tidak diketahui atau mikropengawal memberikannya secara salah, maka peranti akan menetapkan bit kepada keadaan yang membolehkan pengaturcaraan bersiri. Apabila memulihkan bit fius, perisian tegar mikropengawal kekal utuh.
Untuk kes apabila bit keselamatan ditetapkan yang menghalang mikropengawal daripada membaca / menulis, terdapat pelompat "BENARKAN PADAM" pada papan, apabila ditutup, peranti akan "sifar" mikropengawal sepenuhnya.

Petunjuk:
Dua LED digunakan untuk menunjukkan operasi peranti:
Hijau - pesakit telah berjaya dirawat, bit fius telah dipulihkan kepada lalai kilang. Jika mikropengawal "dikunci" (LockBits didayakan), bit fius hanya diperiksa dan jika ia sepadan dengan kilang, LED hijau menyala.
Merah - masalah dengan tandatangan cip, mustahil untuk dibaca, tiada mikropengawal dalam soket atau tiada tandatangan sedemikian dalam pangkalan data.
Berkelip hijau - tandatangan adalah teratur, bit fius adalah salah, tetapi mustahil untuk memperbaikinya, kerana mikropengawal "dikunci" (LockBits didayakan), mikropengawal mesti dipadamkan sepenuhnya (anda perlu menetapkan pemadaman pelompat - "BENARKAN PADAM").
Berkelip merah - tandatangan adalah teratur, mikropengawal "tidak dikunci", tetapi, atas sebab tertentu, adalah mustahil untuk memulihkan bit fius.

Jika anda ingin mendapatkan maklumat yang lebih terperinci tentang proses "rawatan", terdapat output UART pada papan. Hantar isyarat ini ke terminal dan dapatkan "cetakan" apa yang telah dilakukan.

Tetapan terminal:
baudrate: 4800
pariti: tiada
bit data: 8
titik henti: 1
jabat tangan: tiada

Papan ini mempunyai tiga soket untuk 20, 28 dan 40 "pesakit" dalam kes celup. Jika anda perlu "menyembuhkan" "pesakit" lain, maka papan menyediakan penyambung untuk menyambungkan penyesuai dengan soket untuk mana-mana mikropengawal yang anda perlukan. Peranti menyokong 106 pelbagai jenis Pengawal mikro AVR.

Senarai pengawal yang disokong (Hijau menandakan cip yang berjaya disembuhkan oleh "doktor"):
1kB:
AT90s1200 , Attiny11, Attiny12, Attiny13/A , Attiny15
2kB:
Attiny2313/A , Attiny24/A , Attiny26 , Attiny261/A , Attiny28 , AT90s2333
4kB:
Atmega48/A , Atmega48P/PA, Attiny461/A , Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515 , Atmega8535 , Atmega8/A , Atmega88/A , Atmega88P/PA, AT90pwm1 , AT90pwm2 61/A, Attiny87, Attiny88, AT90s8515 , AT90s8535
16kB:
Atmega16/A , Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162 , Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A , Atmega168/A , P16PAti AT90pwm216, AT 90pwm316, AT90usb162
32kB:
Atmega32/A , Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA , Atmega325, Atmega/PA Atmega3250A, Atmega3250A 328, Atmega328P , Atmega3 29, Atmega3290, Atmega329A/PA, Atmega3290A / PA, AT90can32
64kb:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A , Atmega644P/PA , Atmega645, Atmega645/Atmega645, Atmega645/A/P P, AT90usb646, AT 90usb647, AT90can64
128kB:
Atmega103, Atmega128/A , Atmega1280 , Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561
Jika anda telah memulihkan pengawal daripada senarai yang tidak ditandakan dengan warna hijau, tulis mengenainya dalam ulasan dan saya akan menandakannya.

Rajah Peranti:


Peranti ini agak mudah. Nilai perintang boleh diubah (dalam had yang kecil, tanpa fanatik)

Papan litar bercetak peranti mempunyai satu nuansa penting, yang mesti diambil kira semasa memasang peranti.
Kaki soket 40-pin dari 29 hingga 37 (ia ditandakan dengan warna merah dalam foto) tidak perlu dipasang, dan lebih baik tidak menggerudi lubang untuk kaki ini pada papan litar bercetak.


Kami mengumpul papan, menyalakan pengawal dan mula menghidupkan semula, menghidupkan semula dan sekali lagi ...

Kelebihan utama "Doktor" adalah autonominya. Untuk memulihkan fius, anda hanya memerlukan peranti itu sendiri. A dengan maklumat terkini peranti, pengarang juga menambah kawalan penuh ke atas proses membuka kunci, yang dijalankan melalui terminal UART.

Fail:
Muat turun fail projek v2.11: (muat turun: 3172)
Dalam arkib: perisian tegar Atmega8, Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P, keterangan, papan litar bercetak peranti dan penyesuai.
Muat turun papan penyesuai SMD: (muat turun: 2062)(Tiny2313, Mega8, Mega16, Mega128)
Muat turun papan penyesuai SMD dari GetChip.net: (muat turun: 1654)(Tiny2313, Tiny13)

Saya hampir terlupa perkara yang paling penting - fius