Litar

Bagaimana Mengubah Bit Fuse AVR Atmega328p - 8bit Microcontroller Menggunakan Arduino: 7 Langkah

AVR Fuse & Lock bytes [ATMega328/P, Arduino]

AVR Fuse & Lock bytes [ATMega328/P, Arduino]

Isi kandungan:

Anonim

Dalam pengajaran ini, anda akan belajar bagaimana untuk mengubah bit sekering mikrocontroller Atmega328p. Saya menggunakan mega Arduino sebagai programmer untuk program Atmega328P-PU pada papan roti. Ia datang dengan frekuensi pengayun dalaman 1MHz lalai yang dikalibrasi. Saya akan menukar fius untuk bekerja dengan 8MHz Internal Oscillator yang ditentukur.

Bit fius memainkan peranan penting dalam kerja-kerja mikropengawal. Ini adalah seperti suis yang mempunyai dua nilai 0 (diprogramkan) dan 1 (unprogrammed). Kini terdapat dua jenis bait sekering: byte sekering rendah (atau lfuse) dan byte sekering tinggi (atau hfuse). Dalam sesetengah mikrokontroler terdapat satu byte fius tambahan yang dipanggil byte sekering diperluas (atau efuse). Bit bit pemrograman adalah seperti penalaan mikrokontroler anda. Saya tidak akan memaparkan banyak perkara tentang perkara ini. Sekiranya anda baru dalam pengaturcaraan mikropengawal, anda harus mempelajari perkara ini dengan lebih terperinci. Anda boleh mendapatkan banyak maklumat di internet mengenai perkara ini.

Amaran: Sebelum menukar sekering, harap perhatikan bahawa pemrograman bit palsu yang salah boleh menyebabkan kerosakan kekal pada cip mikrokontroler anda. Jika anda meneruskan pengajaran ini dan mengikuti setiap langkah dengan betul maka anda tidak akan mengalami sebarang masalah.

Bekalan:

Langkah 1: Bahan-bahan yang Anda Perlukan

Perkakasan:

  1. Mikrokontroler yang anda akan menukar fius. (boleh menjadi mikropengawal AVR Atmega-8bit.)
  2. 1 x Breadboard.
  3. Pelompat Breadboard yang sedikit.
  4. 1 x LED
  5. Rintangan 1 x 220 ohm
  6. Kapasitor 1 x 100nF
  7. USB A ke B kabel
  8. Dan PC dengan port USB yang tersedia (menjalankan windows OS sahaja Maaf saya tidak boleh membantu anda jika anda menggunakan Mac atau Linux)

Saya menggunakan mega Arduino sebagai pengaturcara. Anda tidak memerlukan kapasitor 100nF jika anda menggunakan pengaturcara lain.

Perisian:

  1. IDE Arduino. (Muat turun IDE Arduino di sini)
  2. avrdude
  3. Muat turun datasheet penuh mikrokontroler yang anda akan menukar fius.

Jika anda telah memasang arduino IDE maka anda sudah memilikinya. Anda boleh menyemak sama ada anda telah memasang atau tidak. Cuma pergi ke command prompt dan ketik avrdude dan tekan "enter". Lihat imej yang dilampirkan dalam langkah ini. Terdapat satu lagi imej yang menunjukkan mesej yang akan anda peroleh jika anda tidak memasang atau tidak berfungsi. Nah jika anda tidak mempunyai pemasangan tidak ada yang perlu dibimbangkan. Berikut adalah pautan untuk Muat turun WinAVR.

Langkah 2: Memahami Bit Fuse Dari Datasheet

Microcontrollers AVR AtmegaXXX dilengkapi dengan osilator dalaman lalai 1 MHz. Dalam pengajaran ini saya akan menunjukkan kepada anda bagaimana untuk mengubah sekering Atmega328P-PU untuk bekerja di 8MHz osilator dalaman. Lokasi bit fius tertentu berbeza di antara ketiga-tiga bait fius (fius rendah, tinggi dan lanjutan) bergantung pada cip AVR yang digunakan. Oleh itu pastikan anda menulisnya sebelum menetapkannya.

Sekeping kuantiti rendah

Sekeping kecil byte berkaitan dengan sumber jam, berapa cepat cip akan berjalan, dan berapa lama ia menunggu pada permulaan. 1 byte sama dengan 8 bit. Oleh itu, terdapat 8 bit dalam bit sekering rendah. Ini 8 bit dijelaskan di sini:

  • Bit-7: CKDIV8: Apabila menetapkan membahagikan kelajuan jam dengan 8
  • Bit-6: CKOUT: Apabila menetapkan denyutan jam adalah output pada PB0 (Pin 14)
  • Bit-5: SUT1: Kelewatan masa permulaan
  • Bit-4: SUT0: Kelewatan masa permulaan
  • Bit-3: CKSEL3: Tetapkan sumber jam
  • Bit-2: CKSEL2: Tetapkan sumber jam
  • Bit-1: CKSEL1: Tetapkan sumber jam
  • Bit-0: CKSEL0: Tetapkan sumber jam

Cip ATmega boleh dijalankan pada kelajuan atau frekuensi yang berlainan dan kekerapan ditentukan oleh sumber jam yang digunakan. Sumber jam ditetapkan dengan menggunakan bit bit CKSEL3 … 0. Untuk bekerja dengan sumber Jam dalaman, kita perlu menetapkan CLSEL3 = 0, CKSEL2 = 0, CKSEL1 = 1 dan CKSEL0 = 0. Anda perlu mencari nilai ini dalam datasheet pengawal mikrokontroler. Dalam lembaran data terdapat bab "Jam sistem dan pilihan jam". Terdapat sub-topik dalam bab "Sumber Jam". Di sana anda akan dapati jadual di mana nilai CKSEL3 … 0 boleh menjadi titik. Saya telah melampirkan tangkapan skrin pada datasheet.

Untuk Masa Permulaan terdapat sub-topik lain "Pengayuh RC dalaman yang dikalibrasi". Di sana anda akan mencari jadual lain untuk SUT0 … 1. Saya akan menggunakan pilihan kuasa yang semakin meningkat. Jadi SUT1 = 1 dan SUT0 = 0.

Sekarang kita dibiarkan dengan dua bit lagi untuk menetapkan: CKOUT dan CKDIV8. Saya tidak memerlukan output nadi jam pada PB0. Jadi saya akan menetapkan ini kepada 1 (tidak diprogram).

Kekerapan maksimum pengayun RC dalaman untuk Atmega328P-PU adalah 8 MHz. Ini dicapai apabila CKDIV8 adalah 1 (atau tidak diprogramkan). Jika anda menetapkan ini kepada 0 (atau diprogramkan) maka cip anda akan runtuh pada 1 MHz. Oleh itu untuk menjalankan cip pada 8 MHz kita perlu menetapkan CKDIV8 = 1.

Sekarang menggabungkan semua 8 bit, kamidiperlukan byte fius rendah ialah 11100010.

Fuse byte tinggi

Flop bait tinggi dijelaskan di bawah. Anda hanya boleh melangkau bahagian ini. Di sini saya hanya menjelaskan bit sekering tinggi. Kita tidak perlu menukar bit sekering tinggi untuk menukar sumber jam dan kekerapan operasi. Tetapi jika anda berminat untuk mengetahui mengenai sekumpulan bait yang tinggi maka pergi melalui perenggan di bawah.

Terdapat 8 bit dalam fius byte tinggi juga. Ini adalah:

  • Bit-7: RSTDISBL: Set semula Luar melumpuhkan
  • Bit-6: DWEN: Wayar Debug membolehkan
  • Bit-5: SPIEN: Dayakan pengaturcaraan bersiri dan muat turun data
  • Bit-4: WDTON: Pemasa pengawas sentiasa dihidupkan
  • Bit-3: EESAVE: Memelihara memori EEPROM melalui penghapusan cip
  • Bit-2: BOOTSZ1: Menetapkan saiz memori pemuat but
  • Bit-1: BOOTSZ0: Menetapkan saiz momen bootloader
  • Bit-0: BOOTRST: Pilih vektor set semula

Sekarang saya akan menerangkan setiap bit:

RSTDISBL (melumpuhkan semula luaran)

PC6 dari Atmega328 adalah pin reset, tahannya rendah (ke tanah) dan cip akan ditetapkan semula. Inilah cara kerja suis Arduino. Apabila anda menekan butang set semula ia menghubungkan PC6 ke tanah dan mengesetkan cip. PC6 juga boleh digunakan sebagai pin IO biasa tetapi ini bermakna melumpuhkan fungsi semula yang pada gilirannya bermakna cip itu tidak lagi boleh diprogramkan secara inline (pengaturcaraan line memerlukan reset). Ini adalah salah satu pilihan yang lebih baik untuk tidak berubah. Saya bayangkan RSTDISBL dilaksanakan untuk sebab-sebab keselamatan untuk menghentikan cip yang diprogramkan semula atau firmware yang dimuat turun. Apabila RSTDISBL diprogramkan permulaan masa (SUT1 SUT0) dinaikkan kepada 14CK + 4.1ms untuk memastikan mod pengaturcaraan boleh dimasukkan.
Secara lalai, tetapannya adalah RSTDISBL = 1 (tidak diprogramkan).

DWEN (debug WIRE membolehkan)

Cip ATmega telah terbina dalam alat debugging yang secara lalai dimatikan. DWEN fius digunakan untuk menghidupkannya. DWEN menggunakan pin yang sama seperti set semula (PC6) dan apabila DWEN diaktifkan (dan bit kunci tidak ditetapkan) pin reset menjadi pin komunikasi dan tetapan semula tidak berfungsi lagi. Sebagai contoh, jika anda mendayakan DWEN pada Arduino, butang reset tidak berfungsi lagi. Untuk menggunakan debugging cip yang anda perlukan seorang programmer yang serasi seperti Dragon AVR. Oleh kerana saya tidak mempunyai programmer yang sesuai saya tidak pernah menggunakan dan tidak tahu bagaimana menggunakan debugging. Sekiranya anda ingin mengetahui lebih lanjut, maka ada artikel yang baik untuk memulakan anda.

Ini adalah salah satu fius yang perlu anda berhati-hati. Jika anda mendayakan DWEN dan juga membolehkan bit kunci anda tidak boleh lagi mempercepatkan cip dengan cara biasa.

Sekiranya anda baru bermula maka meninggalkan DWEN hingga 1 (tidak diprogram). Lagipun, tetapan semula sangat berguna.

SPIEN (Dayakan pengaturcaraan Serial dan Pengemudian Data)

Cip ATmega boleh diprogramkan menggunakan pengaturcaraan bersiri. Pengaturcaraan serial digunakan untuk pengaturcaraan papan menggunakan protokol bersiri melalui ISP (programer bersiri inline) atau UART (penerima asynchronous universal / pemancar). Cara pengaturcaraan normal cip ATmega adalah melalui antara muka SPI menggunakan SCK (jam), MOSI (input) dan pin MISO (output). Sekiranya anda mematikan pengaturcaraan siri maka anda tidak boleh lagi menggunakan SPI untuk memprogramkan cip tersebut. Anda juga boleh mematikan pengaturcaraan bersiri menggunakan bit kunci. Untuk kegunaan biasa dan cuti pembangunan SPIEN didayakan, bagaimanapun, jika anda mempunyai peranti yang muktamad dan tiada pengaturcaraan lagi diperlukan maka anda boleh menggunakan pilihan ini untuk menghentikan orang mengakses cip melalui komunikasi bersiri.

Tetapan lalai SPIEN didayakan, SPIEN = 0 (diprogramkan).

WDTON (Pemantau Pengawas Pemantau Sentiasa Bersambung)

Pengawas pada dasarnya adalah pemasa yang akan menyebabkan cip itu diset semula jika ia tidak menerima isyarat OK pada waktu tertentu. Ini berguna jika anda mempunyai kod yang tidak stabil atau mempunyai sistem yang tidak boleh dibenarkan untuk mengunci secara kekal. Apabila pemantau pengawas diaktifkan, sekiranya lakaran kemalangan atau membekukan maka pemasa akan menghabiskan masa dan menetapkan semula cip yang menyebabkan restart sama dengan menekan butang reset yang berjalan Arduino. Pemasa Watchdog boleh diaktifkan dalam perisian supaya tetapan sekering tidak semestinya perlu digunakan. Secara lalai, pengawas pemantau dimatikan, WDTON = 1 (tidak diprogramkan).

EESAVE (Memelihara memori EEPROM)

Apabila cip ATmega diprogram, memori akan dipadamkan sebelum kod baru dimuat naik. Di bawah keadaan biasa, memori EEPROM dipadamkan serta ingatan program. Sekering EESAVE boleh digunakan untuk memberitahu cip untuk tidak menghapuskan EEPROM. Ini berguna apabila anda ingin menaik taraf kod tetapi menyimpan tetapan pengguna yang disimpan dalam EEPROM.
Saya mempunyai kebiasaan untuk menetapkan fius ini; EEPROM mempunyai kitaran hayat yang terhad supaya kurang anda menulis kepadanya lebih baik. Memadamkan eeprom tidak mempunyai kesan untuk memuat naik kod baru dan majoriti projek saya tidak menggunakan memori eeprom supaya tidak memadamkan ia tidak menjadi masalah. DropController menyimpan tetapan dan drop time di eeprom dan jadi saya menetapkan EESAVE untuk memelihara data apabila saya memuat naik versi baru kod.

Nilai lalai ialah EESAVE = 1 (unprogrammed), dan memori EEPROM dipadamkan semasa kitaran padam cip apabila pengaturcaraan.

BOOTSZ1 & BOOTSZ0 (Saiz pemuat boot)

Cip ATmega mempunyai keupayaan untuk menggunakan pemuat boot, ini adalah program kecil yang berjalan apabila cip pertama dimulakan atau ketika ia ditetapkan semula. Pemuat boot biasanya digunakan untuk memulakan peranti dan memeriksa komunikasi luaran. Arduino menggunakan pemuat boot untuk berbincang dengan komputer yang disambungkan untuk melihat apakah ada program baru untuk dimuat naik. Inilah sebabnya Arduino mengeset semula apabila anda memuat naik kod baru, reset menjalankan boot loader, cek pemuat boot untuk melihat jika anda mempunyai kod baru.
Loader boot disimpan dalam memori program, memori yang sama digunakan untuk aplikasi pengguna dan sejak loader boot dapat menjadi ukuran yang berbeda Anda dapat memberitahu chip ATmega berapa banyak ruang untuk cadangan. Pembuat boot arduino biasa (lebih tua) adalah 2 kilobytes (KB) tetapi Optiboot yang lebih baru (digunakan pada UNO) hanya 0.5KB (512 bait). Jika menggunakan Optiboot dan menetapkan saiz pemuat boot dengan sewajarnya, anda akan mendapat 1.5KB tambahan untuk program anda sendiri. 1.5KB boleh menjadi banyak ruang, kehabisan ruang program adalah mengapa saya memulakan pengaturcaraan berdiri sendiri cip ATmega di tempat pertama. Kod untuk Pengawal jatuh menjadi terlalu besar untuk Arduino biasa jadi saya mengeluarkan pemuat but.
Jika anda mempunyai pemuat boot maka BOOTSZ harus digunakan bersama dengan BOOTRST. BOOTRST memberitahu cip ATmega alamat ingatan di mana pemuat boot bermula.Sekiranya BOOTRST tidak ditetapkan maka aplikasi pengguna boleh menggunakan keseluruhan memori tanpa mengira tetapan BOOTSZ.

Lalai untuk cip baru adalah BOOTSZ1 = 0 (diprogramkan) dan BOOTSZ0 = 0 (diprogramkan) yang bermaksud mereka mempunyai memori maksimum yang dikhaskan untuk pemuat boot.

BOOTRST (Pilih vektor menetapkan semula)

Cip ATmega boleh menggunakan pemuat boot, ini adalah program kecil yang berjalan apabila cip itu ditetapkan semula. Jika anda mempunyai pemuat boot maka anda perlu memaklumkan kepada MCU dan ini dilakukan dengan menggunakan tetapan sekering BOOTRST. Apabila BOOTRST Fuse ditetapkan, pada penetapan semula peranti akan melompat ke alamat Bootloader. Jika tidak ditetapkan, cip akan melompat ke alamat permulaan program pada 0x0000.

Nilai lalai BOOTRST = 1 (unprogrammed).

Sekiranya BOOTRST tidak ditetapkan (tiada pemuat boot) maka sekumpulan BOOTSZ tidak digunakan tanpa mengira nilai itu.

AMARAN: Fiat RSTDISBL, SPIEN dan DWEN mempunyai potensi untuk membuat bata cip ATmega, atau sekurang-kurangnya membuat cip itu sangat sukar untuk digunakan lagi. Untuk penggunaan umum, dan terutamanya jika anda baru saja memulakan dengan cip kendiri pengaturcaraan, anda tidak boleh menukar tetapan fius ini. Anda juga perlu menyemak semula bahawa anda tidak mengubahnya apabila anda menulis semula tetapan fius yang lain.

Oleh itu, byte sekering kami yang diperlukan adalah 11011011.

Bit bit diperluas

Sekering diperluas hanya digunakan untuk menetapkan tahap pengesanan coklat (BOD). Cip ATmega boleh menjadi tidak stabil atau tidak boleh dipercayai apabila digunakan dengan voltan yang tidak mencukupi. Sebagai contoh, Atmega328 / 328P boleh berjalan dengan selamat pada 16 MHz jika ia mempunyai sekurang-kurangnya 4 V bekalan. Apa-apa pun di bawah 4V bermakna cip mungkin tidak berfungsi. Ini akan menjadi masalah jika peranti itu digunakan dengan sensor untuk mengambil pengukuran atau bergantung pada pemasaan tepat.

Untuk memastikan cip mempunyai voltan masukan yang mencukupi, tahap voltan minimum boleh ditetapkan. Jika voltan jatuh di bawah tahap ini maka cip akan menetapkan semula dirinya. Ini dipanggil tahap pengesan coklat keluar. Pada dasarnya, jika voltan yang dibekalkan adalah di bawah BOD, cip itu tetap rendah semula.

Saya tidak akan melepasi setiap potongan bit berlanjutan. Secara lalai semua bit dalam bait ini ditetapkan sebagai 1 (tidak diprogramkan).

Dan di sini adalah byte usang diperluas ialah 11111111.

Langkah 3: Mengira Bit Fius

Baiklah sekarang kita kenal dengan fius dan sudah mengira bit sekering.
Sekurang-kurangnya byte fius (lfuse): 0b11100010
Fiat byte tinggi (hfuse): 0b11011001
Sekering diperluas (efuse): 0b11111111

Sekarang anda boleh menulis ini dalam binari atau anda boleh menukarnya ke Hexadecimal. Saya akan menukar ini ke hex kerana saya biasanya membuat kesilapan dalam menaip 0 dan 1 berulang kali apa sahaja yang anda tahu betapa pentingnya ini. Sekiranya anda menetapkan bit fius yang salah maka mungkin anda boleh menyebarkan cip itu.

Jadi, inilah nilai hex:

lfuse: 0xE2
hfuse: 0xD9
efuse: 0xFF

Jika anda menghadapi masalah dalam mengira perduaan kepada hex maka di sini adalah kalkulator.

Jika anda mendapati bahawa mengira fius dari lembaran kerja adalah sukar maka di sini adalah kalkulator sekering. Walau bagaimanapun, menukar sekering tanpa pengetahuan dalam subjek ini tidak digalakkan.

Langkah 4: Sediakan Litar di Breadboard

Dalam pengajaran ini saya akan menggunakan mega Arduino sebagai programmer ISP. Sambungkan pin seperti yang ditunjukkan

Nama-----------Arduino mega Pin-------------------Atmega328P Pin

MISO -------------- Pin digital - 50 ------------------------------- 18

MOSI -------------- Pin digital - 51 ------------------------------- 17

SCK --------------- Pin digital - 52 ------------------------------ -19

Hamba Pilih ----- Pin digital - 53 -------------------------------- 1

VCC -------------------- 5 V --------------------------- ------------ 7 & 20

GND ------------------- GND ----------------------------- --------- 8 & 22

Sambung anod LED ke pin 14 dari Atmega328p (pin digital 8) dan katod kepada rintangan 220 ohm. Letakkan ujung rintangan yang lain.

Catatan : Jangan sambung kapasitor antara 5V dan RESET dalam langkah ini. Selepas memuat naik lakaran arduinoISP kami akan menyambung kapasitor.

Langkah 5: Muatkan Arduino Sebagai Lakaran ISP

Selepas anda telah melakukan sambungan pada papan tanda dua kali ganda, anda telah membuat sambungan betul. Kemudian sambungkan mega Arduino anda dengan PC menggunakan kabel USB. Buka Arduino IDE. Dalam contoh> ArduinoISP. Sekarang klik pada alat> papan> Arduino mega atau mega 2560. Lagi klik pada alat> Prosesor> ATmega2560 (Mega 2560). Sekali lagi klik pada alat> Port> COMX (Bagi saya yang COM3).

Sekarang menyusun lakaran dan muat naik ke papan.

Apabila muat naik selesai menyambung kapasitor 100nF antara pin 5V dan pin RESET arduino mega. Anda akan mendapat mesej ralat jika anda tidak melakukannya.

Langkah 6: Tukar Sekering Menggunakan Avrdude

Pergi ke tetingkap command prompt anda dan ketik "avrdude" dan lihat apakah avrdude anda sedang bekerja.

Sekarang taip arahan "avrdude -c arduino -p m328p -P COM3 -b 19200 -v" untuk melihat butiran mengenai mikrokontroler.

Okay saya hanya akan menukar fius byte rendah. Kerana kita telah mengira fius dan menukar kekerapan CPU hanya fius byte fius yang rendah perlu diubah. Fiat byte yang tinggi dan voltan lenturan tidak berkaitan dengan kekerapan pengayun dan sumber jam.

Taip arahan "avrdude -c arduino -p m328p -P COM3 -b 19200 -U lfuse: w: 0xe2: m" untuk menulis bait fius rendah.

Sekali lagi taipkan arahan "avrdude -c arduino -p m328p -P COM3 -b 19200 -v" dan periksa jika anda telah berjaya mengubah fius.

Langkah 7: Muatkan Skrin LED Blink

Anda boleh memuat turun lakaran LED berkelip.

Sebelum memuat naik lakaran, kita perlu membuat beberapa perubahan. Sekarang kita tidak mempunyai papan yang beroperasi pada 8 MHz osilator dalaman. Arduino standard UNO menggunakan mikrokontroler atmega328p tetapi ia beroperasi pada pengayun kristal luar 16 MHz. Jadi, kita perlu menambah papan baru ke menu alat.

Pergi ke C: program files Arduino hardware arduino avr variants

Tambah folder baru dan namakannya sebagai " Atmega328p '.

Pergi ke C: program files Arduino hardware arduino avr variants standard dan salin fail " pins_arduino "dan tampalnya di lokasi C: program files Arduino hardware arduino avr variants Atmega328p

Pergi ke lokasi C: program files Arduino hardware arduino avr. Terdapat fail teks dengan nama " boards.txt ". salin fail ini di tempat lain dan buka untuk mengedit.

Tatal ke bawah ke akhir kod dan tambahkan beberapa baris ini:

##############################################################
ATmega328p-8.name = ATmega328p-Internal 8Mhz ATmega328p-8.upload.tool = avrdude ATmega328p-8.build.mcu = atmega328p ATmega328p-8.build.f_cpu = 8000000L ATmega328p-8.build.core = arduino: arduino ATmega328p- 8.build.variant = ATmega328p ATmega328p-8.upload.maximum_size = 32000 ################################## ############################

Simpan fail dan salin yang diedit " boards.txt " ke lokasi "C: program files Arduino hardware arduino avr". Anda mungkin diminta kebenaran pentadbir. (Anda boleh memuat turun " boards.txt "dari halaman ini dan tampal ke lokasi" C: fail program Arduino hardware arduino avr ").

Sekarang buka arduino IDE dan pergi ke menu alat "alat> papan> Atmega328p". Lagi pergi ke pilihan alat dan pilih port COM yang betul dan periksa pengaturcara Arduino sebagai ISP (alat> programmer> Arduino sebagai ISP).

Muat turun fail blinkled.ino dari ini boleh diajarkan dan muat naik. Anda perlu melihat LED berkelip pada selang 1 sec.

2 Orang Membuat Projek Ini!

  • douglaslps berjaya!

  • plug5741 berjaya!

Adakah anda membuat projek ini? Kongsi dengan kami!

Cadangan

  • Sampel Kod Mash Up Arduino

  • Prototaip Ornithopter Opensource. Arduino Powered and Remote Controlled.

  • Internet Kelas Perkara

  • Peraduan Fandom

  • Cabaran IoT

  • Peraduan Kerja Kayu

10 Perbincangan

0

MartinP77

5 bulan yang lalu

Halaman ini adalah
sangat berguna dan jelas, tetapi saya fikir mungkin terdapat ralat yang boleh
menyebabkan sesetengah orang mengalami masalah.
Saya fikir dengannya
Fius Tinggi. Tetapan standard ialah 0xDE pada Atmega328P yang menjadikan
bit tinggi 5 hingga 7 1,0,0 tidak 0,1,1. Saya percaya tetapan anda dapat disable
pin reset dan pengaturcaraan siri. Ini boleh menyebabkan pengguna menjadi
tidak dapat memprogram atau menetapkan semula perkakasan mereka.
Saya mungkin salah
ini, tetapi jika anda mendapat sedikit masa, anda boleh melihat halaman anda dan periksa

0

kilofeenix

7 bulan yang lalu

Terima kasih kerana sangat teratur, saya tidak dapat melakukannya tanpa bantuan anda. Waktu yang sibuk cuba lakukan ini kemudian tersandung pada pengajaran anda.

0

miked2001

9 bulan lalu

Terima kasih.

Saya pasti maklumat ini tersedia di tempat lain; Walau bagaimanapun,
anda telah berlari untuk kami dan memunggah maklumat itu menjadi sangat bagus
tutorial. Ini adalah ringkas dan langsung dan membantu saya untuk memahami
bermakna di sebalik penetapan atau pembakaran sekering di cip ATmega.

Saya bukan baru untuk elektronik tetapi saya baru untuk tahap ini
pengawal mikro. Pembelajaran / tutorial anda adalah apa yang saya boleh
telah mengharapkan tanpa mengambil kelas.

Saya mungkin kembali untuk mendapatkan lebih banyak soalan tetapi ini memberi saya banyak
untuk mengunyah.

Terima kasih sekali lagi,

Mike D.

0

ReedN2

1 tahun yang lalu

Tuan Yang Terutama,

Bolehkah awak membantu saya.

Saya sekerat sekurang-kurangnya Atmega2560 pada Arduino Mega, Ini bermakna saya mahu menggunakan Atmega2560 pada Arduino Mega dengan pinout, osc, capa, res …

Oleh itu, apabila saya memuatkan lakaran skrip Blink.ino ke .hex, ia tidak berjalan.

Reed.

0

travelserve

1 tahun yang lalu

Terima kasih atas konsep yang terperinci dan berguna itu. Saya sedang mencari program salah satu cip Atmega328P-PU saya sebagai ArduinoISP (untuk program MCU lain) dan membuatnya hanya baca jadi saya tidak sengaja menulis gantinya dengan mengklik Upload sebaliknya Muat naik menggunakan programmer.
Saya mempunyai dua soalan untuk anda:
1) Bolehkah bit fius tinggi diubah secara luaran seperti RSTDISBL adalah bit sekering tinggi, yang boleh ditetapkan dengan menggunakan pin reset?
2) MCU datang dengan RSTDISBL ditetapkan pada 1 secara lalai untuk menghentikan muat naik firmware. Tetapi kita boleh memprogramkan cip dengan menetapkan pin reset ke rendah, kan? Jadi, apa yang berlaku pada nilai pratetap ketika menekan butang reset dan selepas itu?
Maaf jika soalan itu terdengar bodoh.

0

Princegautam

1 tahun yang lalu

saya mahu menukar Hfuse untuk atmega328 tidak 328p, bagaimana saya perlu meneruskan.

0

ChenSoonK

1 tahun yang lalu

Terima kasih banyak-banyak !

Penjelasan anda membuat saya terasa lebih baik!

0

ShahariarH

3 tahun yang lalu di Pengenalan

Awesome! Anda menjelaskan lebih baik daripada datasheet! Atmel perlu menyewa anda untuk menulis datasheet!

0

rbusch

3 tahun yang lalu di Pengenalan

tutorial yang sangat baik! langkah terperinci dengan langkah! :)

0

tomatoskins

3 tahun yang lalu di Pengenalan

Ini bagus! Terima kasih kerana berkongsi!