Saya ingin menggunakan semua enam pin I / O dari ATtiny85, itu berarti juga menggunakan pin reset sebagai I / O pin, namun, saya menemukan bahwa jika saya menonaktifkan pin RESET, saya tidak bisa lagi memprogram ATtiny menggunakan Programmer ISP.
Namun, saya menemukan bahwa ada bootloader untuk ATtiny yang, sejauh yang saya mengerti, memungkinkan saya untuk memprogram ATtiny melalui USB, tanpa perlu pin RESET.
Pertanyaan saya adalah : Bagaimana cara saya membakar bootloader (seperti misalnya mikronukleus ) ke ATtiny85? Dan bagaimana saya harus menghubungkan ATtiny ke USB setelah itu (seperti ini? )? Bagaimana saya memprogramnya setelah itu? Perlu diingat bahwa dalam hal membakar bootloader dan memodifikasi sekering, saya seorang pemula yang lengkap.
Juga, saya menggunakan sketsa ArduinoISP sebagai programmer ISP saya karena saya tidak memiliki programmer ISP asli, tetapi sejauh yang saya baca, itu tidak akan menjadi masalah.
EDIT: Saya punya barang yang saya beli seharga beberapa dolar di eBay, yang saya tidak tahu bagaimana dan jika saya perlu menggunakan
sumber
Jawaban:
Saya baru saja menyelesaikan Arduino-Plugin saya dengan integrasi penuh TinySafeBoot (TSB) untuk ATtiny84A, ATtiny85 dan ATmega328P.
Proyek ini dapat ditemukan di sini:
https://mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html
Anda bisa menggunakannya seperti sekarang, dan kemudian gunakan Pin Reset sebagai analog. Hanya perhatikan voltase tidak pernah masuk di bawah
0.6 * VCC
.Sebagai alternatif, Anda dapat memodifikasi sekering
boards.txt
agar pin ini tersedia:Buka Arduino Preferences dan klik tautan ke
preferences.txt
(Milik:)/Users/stefan/Library/Arduino15/preferences.txt
. Dalam folder ini arahkan ke/packages/atflash/hardware/avr/0.1.0
. Bukaboards.txt
dan buka bagianATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)
Ubah baris
ATTSB85.bootloader.high_fuses=0xdf
ke
ATTSB85.bootloader.high_fuses=0x5f
Mulai ulang Arduino dan bakar bootloader melalui menu Arduino.
Jika Anda ingin mendapatkan Pin lain dari ATtiny85: Anda dapat mengubah bootloader menggunakan hanya satu Pin untuk RX dan TX (lihat situs web TSB). Tapi mengapa semua usaha itu? Cukup ambil ATtiny84A. Memiliki 14 Pin, bukan 8 dan biaya hampir sama.
Stefan
sumber
sumber
Benar, jika Anda menggunakan pin reset sebagai IO maka Anda memerlukan
programmer khusus yang saya percaya memberikan tegangan tinggi (12v jika saya ingat) atau sesuatu seperti ituuntuk menerapkan sumber 12v ke pin itu untuk memaksanya ke mode pemrograman kemudian memprogram menggunakan programmer normal (atau Arduino lain). Namun, apa yang Anda cari adalah sesuatu seperti apa yang sedang dilakukan di Arduino. Arduino diprogram dengan bootloader khusus melalui ISP sehingga ketika Anda memberi daya mikrokontroler yang akan dijalankan oleh bootloader pertama dan selama beberapa milidetik akan memeriksa pin UART untuk aktivitas dan jika melihat sesuatu yang valid itu beralih ke mode pemrograman di mana ia menunggu kode baru untuk datang melalui UART (bukan ISP) dan menuliskannya ke lokasi program, jika tidak, bootloader hanya akan menyerahkan eksekusi kode ke program yang ada jika ada.Berikut adalah penjelasan sederhana tentang cara kerjanya: Katakanlah ukuran flash mikrokontroler Anda adalah 1KB, dan bootloader adalah 100B sehingga program Anda dapat disimpan di lokasi 101B +, dan ukuran maksimalnya adalah (1KB-100B). Jadi ketika bootloader dimulai dan tidak ada aktivitas pada pin UART, ia melompat ke lokasi program Anda (pada 101B) sementara jika aktivitas pemrograman terdeteksi, ia mulai membaca kode baru dan menimpa flash mulai pada 101B (jadi ia akan menang ' t over tulis sendiri).
Dan Anda akan membutuhkan USBASP untuk memprogram bootloader untuk pertama kalinya. Dan Anda tidak memprogram ATtiny85 melalui usb karena chip itu tidak mendukung USB, namun, Anda menggunakan USB ke chip / modul serial yang mengemulasi protokol serial melalui USB. Beberapa mikrokontroler atmel telah membangun dukungan serial dan lainnya dapat dilakukan melalui emulasi perangkat lunak.
sumber
itu jauh lebih baik daripada arduinoisp Anda.
google avrdude / avrdudess.
sumber