Digispark menyediakan 6 buah pin I/O (input-output). Sebenernya dari ATTiny85-nya sendiri itu dia cuma punya 5 pin I/O, sisanya adalah pin VCC, Ground dan Reset. Digispark mengubah pin Reset menjadi pin yang bisa digunakan untuk I/O, yakni pin P5. Meski demikian mungkin ada diantara kamu yang menemukan ketika pin P5 dihubungkan, board Digispark malah mereset dan menjalankan ulang program. Itu terjadi karena pin P5 sebagai pin Reset tidak atau belum difungsikan sebagai pin I/O. Biasanya itu terjadi pada board digispark clone atau buatan sendiri.
Untuk dapat memfungsikan pin reset menjadi pin I/O, kita harus mengatur terlebih dahulu fuse untuk ATTiny85. Adapun praktisnya kita akan menggunakan AVRDUDE untuk mengeset fuse pada ATTiny85. Instal terlebih dahulu AVR di komputermu. Ikuti langkah-langkahnya di halaman ini.
Setelah avrdude terinstall, hubungkan Arduino Uno (saya pake Arduino Uno sebagai ISP) dengan Digispark dengan skema pin berikut:
Uno | Digispark |
---|---|
10 | P5 |
11 | P0 |
12 | P1 |
13 | P2 |
Setelah terhubung, aktifkan Arduino Uno sebagai ISP terlebih dahulu. Hubungkan Arduino Uno ke komputer lalu buka Arduino IDE. Pada Arduino IDE, Pilih menu Tools > Board lalu pilih Arduino UNO. Lalu pilih menu File > Examples dan pilih ArduinoISP. Akan muncul jendela Arduino IDE baru berisi program untuk menjadikan Arduino Uno sebagai ISP. Klik tombol upload program.
Setelah upload program ISP ke Arduino Uno berhasil itu berarti Arduino Uno sudah dapat difungsikan sebagai ISP. Sekarang buka terminal dan ketikkan perintah berikut:
avrdude -c avrisp -p t85 -P /dev/ttyACM1 -b 19200
Perintah tersebut berfungsi untuk mendeteksi koneksi ke ATTiny85 melalui ISP. -c avrisp berarti kita menggunakan programmer avrisp untuk memprogram mikrokontroller. -p t85 berarti kita mentargetkan ATTiny85 untuk diprogram. -P /dev/ttyACM1 adalah set port yang terhubung dengan Arduino Uno. Kalo di Ubuntu biasanya portnya /dev/ttyACM0 atau /dev/ttyACM1 dan sebagainya. Kalo di Windows biasanya port diberi nama COM1, COM2 dan sebagainya. Cek terlebih dahulu port mana yang digunakan oleh Arduino Uno untuk terhubung ke komputer. Terakhir adalah -b 19200 yang berarti kita mengeset baudrate ke 19200. Jalankan program. Bila muncul pesan:
avrdude: safemode: Fuses OK (E:FE, H:DD, L:E1)
avrdude done. Thank you.
tanpa pesan error lain, berarti ATTiny85 pada Digispark berhasil diakses.
Setelah itu kita akan mengubah setting fuse pada ATTiny85 agar pin Reset dapat difungsikan sebagai pin I/O. Jalankan perintah berikut pada terminal:
avrdude -c avrisp -p t85 -P /dev/ttyACM1 -b 19200 -U lfuse:w:0xF1:m -U hfuse:w:0x5F:m -U efuse:w:0xFE:m
Apabila berhasil, avrdude akan menampilkan pesan proses dan diakhiri pesan seperti ini:
avrdude: safemode: Fuses OK (E:FE, H:5F, L:F1)
avrdude done. Thank you.
Kita lihat bahwa settingan Fuse sudah berubah dari (E:FE, H:DD, L:E1) ke (E:FE, H:5F, L:F1).
Sekarang kalo kamu menjalankan lagi perintah untuk mendeteksi ATTiny85 seperti perintah pertama diatas, maka ATTiny85 sudah tidak dapat dideteksi. Kenapa? Karena pin P5 yakni pin Reset pada ATTiny85 sudah tidak lagi menjadi pin Reset, ISP memerlukan pin Reset untuk dapat terhubung. Tapi sekarang Kamu cobalah pin P5 mestinya sudah bisa difungsikan sebagai input/output. :)
0 tanggapan:
Posting Komentar
terima kasih sebelumnya untuk tanggapannya ^_^