ATtiny85. Bagaimana cara membakar bootloader? Apa prosesnya?


8

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 masukkan deskripsi gambar di sini


Membakar bootloader sama dengan membakar program lain. Tetapi, jika Anda mendapatkan yang buruk di sana dan mengubah sekering reset, Anda akan terjebak dengan itu sampai Anda mendapatkan chip lain atau programmer tegangan tinggi. Jadi saya sarankan Anda menguji bootloader USB Anda sebelum mengganti sekring. Kode perangkat lunak-USB Anda mungkin dilengkapi dengan rekomendasi untuk rangkaian untuk memperkirakan antarmuka listrik USB.
Chris Stratton

Jawaban:


1

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.txtagar 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. Buka boards.txtdan buka bagian
ATTSB85.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


2
  • Ya, ada antarmuka USB untuk ATtiny85. Lihat saja salah satu desain perangkat keras terbuka di luar sana, misalnya Digispark .
  • Antarmuka USB akan membutuhkan dua pin, jadi menggunakan satu untuk menghemat satu pin tidak mengejutkan saya karena hemat biaya.
  • Saya setuju dengan @FAD, bahwa Anda tidak benar-benar membutuhkan tumpukan USB, dan hanya bisa melakukan penundaan waktu saat boot dengan pin UART.
  • HVSP (pemrograman tegangan tinggi) tidak sulit dilakukan. Jika Anda sudah terbiasa dengan ArduinoISP, Anda dapat mencoba ScratchMonkey , yang menggunakan pendekatan yang sama (dengan catu daya 12V dan satu transistor) untuk melakukan pemrograman HVSP.

Antarmuka USB dapat dimatikan misalnya dengan jumper saat tidak pemrograman, atau dapat digunakan untuk penggunaan yang tidak mengganggu pemrograman. Pemrograman ulang biasanya dilakukan segera setelah reset.
AMADANON Inc.

1

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.

  • Dan seperti yang disarankan Chris, jangan nonaktifkan pin reset hingga Anda menguji dan memvalidasi bootloader Anda berfungsi.


@ IgnacioVazquez-Abrams, itu keren, dan sudah ada bootloader yang diimplementasikan dengannya. Informasi saya agak lama :). Namun, konsepnya masih sama tetapi komunikasi langsung dengan PC bukan emulasi usb-serial. Terima kasih

Anda juga dapat membakar bootloader ke ATtiny melalui Arduino (UNO atau equiv). Berikut adalah beberapa instruksi: highlowtech.org/?p=1695 atau jika Anda lebih suka video: youtube.com/watch?v=qz-YMPY4_z0
Sourcery

Berikut adalah halaman yang bagus tentang pemrograman ATtiny4 5 9 10 20 dan 40 menggunakan SPI dari Arduino sehingga bukan ATtiny85 tapi saya pikir itu terkait. Juga satu hal yang disebutkan blog adalah jika Anda menggunakan pin reset sebagai I / O yang Anda butuhkan adalah sumber 12v untuk memicu mode pemrograman dan Anda masih dapat memprogramnya dengan cara yang sama, jadi tidak ada programmer khusus seperti yang saya pikirkan sebelumnya. junkplusarduino.blogspot.com/p/attiny10-resources.html
Fahad Alduraibi

@ FAD, 4/5/9/10 adalah binatang yang sama sekali berbeda dari ATtiny85. Memang benar bahwa mereka berbicara protokol pemrograman yang sama (TPI) untuk pemrograman tegangan tinggi dan tegangan biasa, tetapi itu dengan tegas TIDAK berlaku untuk mikrokontroler ATxxx lainnya.
microtherion

0

Saya punya barang yang saya beli seharga beberapa dolar di eBay, yang saya tidak tahu caranya dan apakah saya perlu menggunakan:

itu jauh lebih baik daripada arduinoisp Anda.

google avrdude / avrdudess.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.