ATTiny85 tidak berfungsi setelah membakar bootloader

8

Saya mengalami masalah dengan ATTiny85 saya. Saya harus menyebutkan bahwa saya menggunakan Arduino sebagai ISP untuk memprogramnya.

ATTiny saya bekerja dengan baik sampai saya memutuskan bahwa saya perlu meningkatkan kecepatan clock dari 1MHz ke 20MHz jadi saya memilih ATTiny85 pada 20MHz dari menu Boards dan kemudian mengklik Tools> Burn Bootloader. Tapi itu bodoh, karena sekarang ATTiny saya tidak berfungsi sama sekali. Saya tidak dapat mengunggah sketsa di atasnya dan jika saya mencoba saya mendapatkan pesan ini:

avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.

Jadi pertanyaan saya kepada Anda adalah, adakah cara untuk mengatur ulang apa yang telah saya lakukan? Atau bahkan lebih baik, untuk membuatnya bekerja pada 20MHz?

Calin
sumber
2
Apakah Anda ingat nilai sekering yang Anda tetapkan? Mungkin masih ada di layar jika Anda gulir sedikit. Anda tidak dapat mengatur ATtiny85 ke 20MHz dengan osilator internal, apakah Anda menghubungkan sumber jam?
jippie
Tidak, saya tidak menghubungkan sumber jam. Saya baru saja membakar bootloader dengan attiny 20mhz dipilih sebagai board (dan tentu saja, dengan attiny yang terhubung ke arduino).
Calin
Saya punya Arduino lain, apakah ada cara untuk mengatur ulang sekering yang menggunakannya?
Calin
Mengapa Anda perlu Arduino lain? Seperti yang Anda pahami, Anda merusak ATtiny Anda, bukan Arduino Anda. Kekeliruan kesalahan dalam pertanyaan Anda menunjuk ke arah yang sama: Arduino baik-baik saja. Jika Anda ragu dengan Arduino Anda, putuskan sambungan semua kecuali USB, lalu programkan Blinkcontohnya. Jika itu berfungsi dengan baik, Anda dapat kembali ke ArduinoISP Anda (saya percaya itu adalah nama perangkat lunak pemrogram yang Anda gunakan).
jippie
2
Tanpa mengetahui pengaturan sekering yang tepat yang Anda gunakan, kami tidak dapat memastikan apa yang sebenarnya Anda lakukan. Jika Anda melakukan, pada kenyataannya, mengatur jam untuk 20MHz, semua yang perlu Anda lakukan adalah menghubungkan sumber jam eksternal, baik itu kristal, resonator, atau pulsa dari sirkuit lain, asalkan sumber jam eksternal adalah 20MHz.
Kurt E. Clothier

Jawaban:

10

Saya menduga Anda telah mengatur sekering controller untuk menggunakan sumber clock eksternal karena tidak mungkin untuk mendapatkan osilator internal untuk berjalan pada 20MHz. Anda dapat meniup kehidupan baru ke dalam pengontrol Anda dengan menghubungkan sinyal jam ke pin 2 CLKIdan mencoba mengatur ulang jam ke 8MHz jam RC internal.

Sebenarnya ada versi 'tetap' dari ArduinoISP yang memiliki output clock pada pin digital 9. Saya sendiri tidak menguji output clock ini, tetapi patut untuk dicoba. Jadi selain koneksi yang sudah Anda miliki antara Arduino dan ATtiny, hubungkan pin digital Arduino 9 ke ATtiny85 pin 2 (CLKI). Kemudian cobalah untuk memprogram 8MHz internal RC clock.

Jika Anda memeriksa lembar data bab 6.2 'Sumber jam' untuk detailnya.

Metode alternatif menggunakan programmer Tegangan Tinggi, yang dapat dengan mudah diimprovisasi menggunakan Arduino .

BTW: Hal serupa akan terjadi ketika Anda memilih sumber jam RC <1MHz , jam pengontrol Anda dalam hal ini akan berjalan terlalu lambat untuk perangkat lunak ArduinoISP standar.

jippie
sumber
Terima kasih! Jadi saya memerlukan sumber daya 12v untuk melakukan ini (yang saat ini tidak saya miliki). Saya akan melihat apa yang bisa saya lakukan untuk berimprovisasi. Apakah ada masalah jika sumbernya sedikit lebih dari 12v?
Calin
@Calin Bagaimana "lebih dari 12V" yang kamu bicarakan? Anda dapat merusak chip dengan mudah ... Beberapa resistor dapat digunakan untuk menurunkan tegangan ke 12V. Lihat ini: electronics.stackexchange.com/questions/25038/...
Kurt E. Clothier
Ok terima kasih! Saya akan coba besok karena sekarang sudah hampir tengah malam. Saya akan membuat Anda diperbarui!
Calin
Coba opsi sumber jam eksternal dari jawaban saya sebelum tanpa sengaja menggoreng controller dengan voltase terlalu tinggi. Tegangan tinggi harus antara 11.5 dan 12.5V (bab 20.7.1 dalam lembar data).
jippie
1
Terima kasih! Versi "tetap" dari ArduinoISP membantu saya memecahkan masalah saya! Saya mengunggah versi tetap pada Arduino, memutus Arduino dan menghubungkan ATTiny seperti biasa tetapi dengan pin 9 dari Arduino terhubung ke pin 2 ATTiny (seperti yang Anda sarankan). Setelah itu saya membuka Arduino IDE dan memilih ATTiny85 (dengan clock 8MHz internal) sebagai board saya dan ArduinoISP sebagai Programmer. Saya mengklik Tools> Burn Bootloader dan semuanya beres. Setelah itu saya mengunggah ulang sketsa ArduinoISP asli dari direktori Contoh dan saya bisa memprogram ATTiny lagi menggunakan Arduino saya sebagai Programmer.
Calin
5

Seperti @jippie katakan, ini hanyalah masalah menerapkan sumber clock eksternal (sebenarnya tidak masalah apakah sumber clock 20MHz atau tidak, hanya perlu menekan 1MHz atau lebih untuk mengelola kecepatan pemrograman SPI ArduinoISP).

Sebagai alternatif untuk versi ArduinoISP yang disebutkan di atas, Anda dapat mencoba ScratchMonkey , yang selain menghasilkan clock juga melakukan perangkat lunak SPI untuk menangani beberapa masalah pencatatan jam kerja lainnya. Kecuali Anda berhasil menonaktifkan pin reset Anda, seharusnya tidak ada alasan untuk menggunakan pemrograman tegangan tinggi.

microtherion
sumber