USB bootloader za AVR
AVR USB Bootloader (Arduino kompatibilni)
Ako AVR možemo programirati preko avrdude onda ga možemo smatrati arduino kompatibilnim. A praktično je spojiti AVR direktno preko USB-a i programirati ga koristeći adekvatni bootloader Shema spajanja je kao za metaboard.
Ovo je skoro gotovo na protoboardu. Budući da nismo imali zenerice 3.6V, napon 3.3V iz 5V USB-a za AVR dobiva se pomoću 2 obične diode u seriju s napajanjem: 5-0.7-0.7=3.6. Je 3.6 malo više od 3.3 al' ne smeta. Pripremio sam usbasploader za atmega8, isprobao i radi. Neke stvari na protoboardu u mami još fale:
- RS232 produžni kabel
Napravio sam ovo i na svom atmega162 na 12MHz, dvije zener diode 3.6V i pullup 2.2k prema +5V. Malo sam promjenio source defineove za svoju shemu (vidi connection.txt), popravio usb disconnect nakon programiranja i disableo EEPROM page mode da stane u 2KB (ima 2032 byte). Na AVR se uploada sa
- make flash -- isprogramira i verificira bootloader
- make fuse -- aktivira 12MHz kristal i reset vektore na bootloader
- make lock -- write protect bootloadera (da se on sam ne može obrisat)
Bootloader se može mijenjat ili obrisat preko našeg DASA ISP. Kad se stvar ušteka u USB, automatski pokrene aplikaciju i sve izgleda kao da nema bootloadera. Bootloader se aktivira tako da spojimo PD7 na GND i pritisnemo RESET. Nakon toga pojavljuje se USB device "ID 16c0:05dc VOTI USBasp AVR Programmer" i AVR se može programirati pomoću avrdude preko USB interfacea:
- avrdude -p atmega162 -P usbasp -c usbasp -y -u -U flash:w:led.m:s
Čim avrdude završi, bootloader se disconnecta od USB i pokrene aplikaciju. To-je-to, Juhuuuu!