Pri častých hrách s ATTINY85 ma prestalo baviť pripájať a odpájať ISP programátor, a VUSB ako Digispark tiež, tak som trochu pátral a našiel TSB. Je to bootloader, ktorý okrem ATTINY podporuje aj ATMEGA, zaberá 550 bajtov, umožňuje programovanie cez ľubovoľné 2 piny, plus ďalšie veci, ako zaheslovanie atď. Ako na to?
Stiahnite si aktuálne binárky z oficiálnej stránky, rozbaľte, vyberte si typ MCU a vybuildujte si vlastný bootloader. Ja som použil ATTINY85 a piny PB3/PB4.
tsb tn85 b3b4
Po spustení sa nám vytvorí súbor „tsb_tn85_b3b4_xxxxxxx.hex“, ktorý následne môžme nahrať do MCU pomocou ISP (ArduinoISP, usbasp…). Tú sú príkazy na nahratie bootloadera a nastavenie správnych fusebitov (MCU bude bežať na 8 MHz z interného oscilátora)
avrdude.exe -p t85 -P COM6 -b 19200 -c avrisp -e avrdude.exe -p t85 -P COM6 -b 19200 -c avrisp -U hfuse:w:0xD4:m -U lfuse:w:0xE2:m -U efuse:w:0xFE:m avrdude.exe -p t85 -P COM6 -b 19200 -c avrisp -U flash:w:tiny85_d3d4.hex -E noreset
COM port a názov súboru si upravte podľa seba… Následne si pripojte USB-serial adaptér, ja používam tie s CP2102, a pripojte PB3 (RX) na TX adaptéra, a PB4 (TX) na RX, no a samozrejme aj +5V na pin 8 a GND na pin 4. V termináli sa pripojte na COM6 (9600 baud), a resetnite ATTINY. Do dvoch sekúnd pošlite znak „@“ do sériovej konzoly a MCU by malo odoslať text „TSB“. Iná možnosť je po reštarte spustiť zase program TSB s nasledovnými parametrami a MCU odpovie…
tsb com6:9600 I READ USER DATA ... OK TINY SAFE BOOTLOADER VERSION : 20161027 STATUS : F0 SIGNATURE : 1E 93 0B DEVICE : ATtiny85 FLASH : 8192 APPFLASH : 7552 PAGESIZE : 64 EEPROM : 512 APPJUMP : C048 TIMEOUT : 255
Bootloader teda funguje a môžme smelo programovať a nahrávať. Ak by sme to ručne dodefinovali v boards.txt , tak by to možno išlo aj cez Arduino GUI, ale momentálne to riešim tak, že program skompilujem (Sketch—>Export compiled Binary) a nahrám zase cez TSB.
* MCU reset tsb com6:9600 FW tiny_serial.ino.hex
Nabudúce niečo o využití PB5/RESET na ATTINY85 a bezdrôtových zariadeniach založených na nRF24L01+.
Pridaj komentár