Kot sem omenil v prednjem postu sem ob popravilu antenske kontrolne enote ugotovil, da mi je poleg ostalega skurilo tudi Attiny26. Na žalost gre za star mikrokontroler, kar spoznaš po tistem ko ga poskušal programirati.
Za programiranje sem preko aliexpress.com naročil:
- USBASP USBISP AVR Programmer https://vi.aliexpress.com/item/32647598702.html?gatewayAdapt=glo2vnm
- podnožje za ATtiny26L-8PU -8MU ATtiny26-16PU -16MU DIP20 SOP2, https://vi.aliexpress.com/item/1005008102960372.html?spm=a2g0o.order_list.order_list_main.107.27a81802BzFEZL&gatewayAdapt=glo2vnm
Po prejetju mikrokontrolerjev, programatorja in podnožja sem prišel do prve dileme, kako vse skupaj povezati. Kolikor se spomnim, smo RX vezali na TX in obratno. Iskal sem po internetu, vendar na žalost za Attiny26 ni veliko napisanega, razen to da ga večina programatorjev ne podpira. Po tednu dni poskusov in neuspehov mi je na koncu uspelo povezati in sprogramirati Attiny26 s programatorjem.

Povezava med programatorjem in Attiny26 je bila sledeča:
programator 1 – MOSI na Attiny26 MOSI – PB0
programator 9 – MISO na Attiny26 MISO – PB1
programator 5 – SCK na Attiny26 SCK – PB2
programator 2 – VCC na Attiny26 VCC
programator 10 – GND na Attiny26 GND
programator 5 – RST na Attiny26 RST – PB7
Imel sem veliko neuspehov in sicer:
- programiranje Attiny26 mikrokontrolerjev iz Kitajske je bilo v celoti neuspešno
- Po več neuspelih poskusih programiranja z USBasp sem obupal in iskal rešitev drugje.
- na podnožju ATtiny26L-8PU -8MU ATtiny26-16PU -16MU DIP20 SOP2, sem nato iz stranskih PIN zamenjal kontakte in priklopil na PINe ob mikrokontrolerju – brez uspeha
- nakar sem domneval da lahko podnožje moti, ker je imel nameščen oscilator in še nekaj kondezatorjev. Zato sem vse to odstrani – brez uspeha. Kolikor sem razumel je oscilator in kondezator pomemben za primer programiranje brez programatorja – Arduino
- Nato sem pričel poskuse z Arduino nano. Ta del projekta sem nato po več neuspelih poskusil opustil, saj mi ni uspelo vzpostaviti povezave. Poleg tega se mije Arduino spojil s prstom, ko sem ga tlačil v ploščo. Ob povezanem mikrokontrolerjem z Arduinom tudi nisem mogel programirati Arduina.
- na koncu sem si kljub gneči popoldanski prebil do IC elektronike https://www.ic-elect.si/, kjer sem kupil še dva nova Attiny26 – katera sta na koncu delovala Hvala IC Elektronika!!!
- ves čas nisem vedel, kje imam težavo v računalniku, programatorju, programu, driverjih ali mikrokontrolerju, kar je še dodatno povzročalo zmedo. Med delom sem celo dobil pri USBasp uspešno povezavo, ki je takoj naslednjo sekundo izginila.
- Enako mi v začetku niso hoteli delovati mikrokontrolerji iz IC Elektronike. Zato sem na koncu zamenjal računalnik s starejšim, kjer je zadeva takoj pričela delovati. Ko sem se vrnil za svoj je začelo delovati tudi na mojem. Brez očitnega razloga.
Postopek, ki je deloval:
Precej je pomagala stran https://www.instructables.com/USBASP-Installation-in-Windows-10, kjer sem našel osnovna navodila. Za USBasp sem dobil driverje preko ZADIG inštalacije https://zadig.akeo.ie. Pomembno, sa se izbere driver:
- libusb-win32
Programator potrebuje svoj program za delovanje, ki se imenuje AVRDUDE – dostopen https://www.nongnu.org/avrdude, download https://mirror.freedif.org/GNU-Sa/avrdude/avrdude-6.3-mingw32.zip – verzija za WIN. V kolikor iščete potem uporabite tale link https://mirror.freedif.org/GNU-Sa/avrdude – vzemite zadnjo verzijo programa. Sam sem najprej namestil manjšo verzijo, vendar po več poskusil, sem pričel posodabljati vse. Zadnja verzija podpira več kontrolerjev in daje tudi več komentarjev ob delu.
Program se enostavno estrahira v direktorij. Nakar se preko CMD gre v direktorij in se ga zažene. Seveda pred tem priklopite USBasp in mikrokontroler. Nato se enostavno zažene ukaz:
avrdude -c usbasp -v -B 4 -p t26 -F
Ukaz pomeni, da zaženemo program AVRDUDE, ki bo uporabil programator USBASP, v pove verzijo, B zmanjša hitrost delovanja komunikacije z mikrokontrolerjem, p pove na kateri mikrokontroler se povezujemo. T26 je oznaka za Attiny26 in F ignorira določen del . Spodnja slika prikazuje neuspele poskuse komunikacije.

In končno uspešna komunikacija:

Za programiranje sem uporabil Microchip studio, dostopen na https://www.microchip.com/en-us/tools-resources/develop/microchip-studio, ki omogoča še bistveno več od mojih potreb. V tem delu sem si pomagal s spletno stranjo: https://www.instructables.com/Programming-Microcontrollers-With-a-USBasp-Program
Ko program naložimo gremo pod Tools – External tools in se nam odpre novo okno:
Kliknemo na add in vpišemo v polja
- Title: USBasp
- Command: D:\HOBI\HAM\NACRTI\USBasp\avrdude.exe “lokacija dototeke avrdude”
- Arguments: -c usbasp -p t26 -B 3 -Uflash:w:”D:\HOBI\HAM\NACRTI\S55O\KONTROLNA ENOTA\EEPROM\v1.2\main.hex“:i “lokacija dototeke kjer je koda”
- Obkljukamo možnost USE OUTPUT WINDOW
Tudi tukaj sem izgubil nekaj živcev. Ampak bistveno je, da programu poveste, kjer je AVRDUDE in kje imate datoteko. Kot je opisano v zgornjih navodilih (povezava na instructables.com) deluje datoteka za pot -Uflash:w:”$(ProjectDir)Debug\$(TargetName).hex”:i samo v kolikor delate s projektom in ne eno samo datoteko.
Nato odprete datoteko s kodo hex v programu in greste pod Tools, kjer kliknete na ime naporave, ki ste jo dodali. V mojem primeru USBasp.

V kolikor je vse uspešno dobite zgornjo besedilo iz slike in velik nasmešek s strahom ali je res delovalo. V mojem primeru je!!! 🙂
Še malo linkov in opomb:
avrdude -c usbasp -p t26 -F -D – testira povezavo
avrdude -v – pove verzijo AVRDUDE https://github.com/avrdudes/avrdude/releases
https://www.instructables.com/How-to-Program-a-ATtiny-With-Arduino
PROGRAMIRANJE:
Star prenosnik deluje in pri ukazu avrdude -c usbasp -p t26 -v -F -B4 prikaže:
avrdude: Version 6.4
Copyright (c) Brian Dean, http://www.bdmicro.com/
Copyright (c) Joerg Wunsch
System wide configuration file is "d:\HAM\USBASP\avrdude.conf"
Using Port : usb
Using Programmer : usbasp
Setting bit clk period : 4.0
AVR Part : ATtiny26
Chip Erase delay : 9000 us
PAGEL : PB3
BS2 : PB2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 4 10 64 0 no 128 1 0 9000 9000 0xff 0xff
flash 33 6 16 0 yes 2048 32 64 4500 4500 0xff 0xff
signature 0 0 0 0 no 3 1 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 1 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 1 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 1 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 4 1 0 0 0 0x00 0x00
Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude: set SCK frequency to 187500 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9109 (probably t26)
avrdude: safemode: lfuse reads as E1
avrdude: safemode: hfuse reads as F7
avrdude: safemode: lfuse reads as E1
avrdude: safemode: hfuse reads as F7
avrdude: safemode: Fuses OK (E:FF, H:F7, L:E1)
avrdude done. Thank you.