Attiny26 stendöd [löst]
Attiny26 stendöd [löst]
Jag försöker få igång Attiny26 utan resultat. Programmerar med AVRISP och får bekräftelse på att programmet är skrivet och verifierat OK efter programmering. Men den verkar stendöd,
Har lagt in ett program som gör ALLA pinnar till utgångar (PORTA + PORTB) och sätter dessa till ETTA. Utgångarna förblir dock öppna. Har utan problem programmerat Attiny45 och Atmeha48 tidigare.
Resetpinnen är den enda som har hög utgång - den har ju inbyggt pull-up motstånd, och nivån är bra ( > 4.5 V) , så det borde inte vara problemet.
Kretsen har klocka och spänning, eftersom den går att programmera och läsas av. Den har avkopplingskonding 100nF. Spänningen är jämn på ca 5.05 Volt.
FUSES verkar vara i ordning förutom CKSEL... AVR Studio kan inte identifiera inställningarna utan kallar de för unidentified, 0x61. Jag har inte ändrat på någon FUSE, men om jag försöker ställa in den på t.ex. "internal RC oscillator 4 Mhz" så är inte det ett giltigt alternativ.
återkommer med mer info om CKSEL senare... måste gå nu..
Har lagt in ett program som gör ALLA pinnar till utgångar (PORTA + PORTB) och sätter dessa till ETTA. Utgångarna förblir dock öppna. Har utan problem programmerat Attiny45 och Atmeha48 tidigare.
Resetpinnen är den enda som har hög utgång - den har ju inbyggt pull-up motstånd, och nivån är bra ( > 4.5 V) , så det borde inte vara problemet.
Kretsen har klocka och spänning, eftersom den går att programmera och läsas av. Den har avkopplingskonding 100nF. Spänningen är jämn på ca 5.05 Volt.
FUSES verkar vara i ordning förutom CKSEL... AVR Studio kan inte identifiera inställningarna utan kallar de för unidentified, 0x61. Jag har inte ändrat på någon FUSE, men om jag försöker ställa in den på t.ex. "internal RC oscillator 4 Mhz" så är inte det ett giltigt alternativ.
återkommer med mer info om CKSEL senare... måste gå nu..
Senast redigerad av jesse 20 juni 2008, 18:56:50, redigerad totalt 2 gånger.
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Tack för tipset!
Kanske kan det vara det. Jag har funderat lite eftersom den inte tycks ha samma inställningar på bl.a. CKSEL fusebits. Men kretsens ID stämmer ju. Tyvärr har jag AVR Studio och programmeraren vid en annan dator än denna, så jag får försöka kolla upp senare om jag hittar något.
Om jag valt fel krets, menar du att det kan finnas flera varianter av Attiny26 att välja på? Är det .INCLUDE-filen som är fel i så fall eller är det när jag startar projektet och väljer STK500/ISP så får jag välja en krets - finns det flera T26 att välja på där kanske? Lite förvirrande!
Kanske kan det vara det. Jag har funderat lite eftersom den inte tycks ha samma inställningar på bl.a. CKSEL fusebits. Men kretsens ID stämmer ju. Tyvärr har jag AVR Studio och programmeraren vid en annan dator än denna, så jag får försöka kolla upp senare om jag hittar något.
Om jag valt fel krets, menar du att det kan finnas flera varianter av Attiny26 att välja på? Är det .INCLUDE-filen som är fel i så fall eller är det när jag startar projektet och väljer STK500/ISP så får jag välja en krets - finns det flera T26 att välja på där kanske? Lite förvirrande!
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Haha, jag hittade felet direkt nu. Alltid bra att sova en natt så upptäcker man felen lättare.
Jag hade fel hexfil
Det visar sig att trots att jag stängt tidigare projekt (Mega48) så fanns den gamla hexfilen kvar som default i programmeraren vid det nya projektet. Inte något man ser direkt då man man bara ser sökvägen i fönstret, den är så lång att filnamnet döljs om man inte rullar den.
men nu funkar det bra
Men fortfarande trilskas AVR Studio med att inte godkänna de FUSEBITS så som Attiny26 är fabriksprogrammerad. Enligt databladet ser det ut så här:
bit 7 - ? är nolla.
bit 6 - PLLCK är "unprogrammed", dvs etta
bit 5-4 SUT 1..0 är 10 (uppstartstid 65 ms)
bit 3-0 CKSEL är 0001 dvs. internal RC oscillator 1 MHz
sammanfattningsvis blir det 0x61 för denna fusebyte.
Och jag får inte ändra dessa bits manuellt, utan jag har en meny att välja ifrån med exempel, typ "PLL clock - 65 ms uppstart time" eller "external oscillator 3-4 MHz" osv...
Problemet är att om jag där väljer "internal oscillator 4 MHz" (vilket jag hellre vill ha än 1 MHz) så blir det inte detta val, utan jag får upp texten undefined 0x23 och om jag väljer "1MHz internal oscillator " får jag till min förvåning upp texten "PLL-oscillator ..."
Jag misstänker att här finns en feldefinition nånstans, kanske i kretsens .def - fil där man förväxlat PLL-bitens nolla med en etta ....
Hur som helst riskerar jag att programmera kretsen helt fel om jag försöker mig på att ändra den i det här läget? Jag får hålla mig till 1 MHz så länge och fråga på AVR_freaks om detta.
Jag hade fel hexfil

Det visar sig att trots att jag stängt tidigare projekt (Mega48) så fanns den gamla hexfilen kvar som default i programmeraren vid det nya projektet. Inte något man ser direkt då man man bara ser sökvägen i fönstret, den är så lång att filnamnet döljs om man inte rullar den.
men nu funkar det bra

Men fortfarande trilskas AVR Studio med att inte godkänna de FUSEBITS så som Attiny26 är fabriksprogrammerad. Enligt databladet ser det ut så här:
bit 7 - ? är nolla.
bit 6 - PLLCK är "unprogrammed", dvs etta
bit 5-4 SUT 1..0 är 10 (uppstartstid 65 ms)
bit 3-0 CKSEL är 0001 dvs. internal RC oscillator 1 MHz
sammanfattningsvis blir det 0x61 för denna fusebyte.
Och jag får inte ändra dessa bits manuellt, utan jag har en meny att välja ifrån med exempel, typ "PLL clock - 65 ms uppstart time" eller "external oscillator 3-4 MHz" osv...
Problemet är att om jag där väljer "internal oscillator 4 MHz" (vilket jag hellre vill ha än 1 MHz) så blir det inte detta val, utan jag får upp texten undefined 0x23 och om jag väljer "1MHz internal oscillator " får jag till min förvåning upp texten "PLL-oscillator ..."
Jag misstänker att här finns en feldefinition nånstans, kanske i kretsens .def - fil där man förväxlat PLL-bitens nolla med en etta ....
Hur som helst riskerar jag att programmera kretsen helt fel om jag försöker mig på att ändra den i det här läget? Jag får hålla mig till 1 MHz så länge och fråga på AVR_freaks om detta.
Jag har fått reda på att jag kan köra programmet stk500.exe och sätta fusebits med kommandoraden om jag inte lyckas förstå felet i AVR Studio, eller i en batchfil:
Kod: Markera allt
:tryTiny26
rem # check for ATtiny26
"C:\Program\Atmel\AVR Tools\stk500\stk500" -dATtiny26 -s -c%AVRISPCOM% -I100kHz | grep "0x1E 0x91 0x09"
if ERRORLEVEL 1 goto :problem
echo Programming ATtiny26 - BOOST
rem # program fuses at slow clock speed
rem # -fXXXX = fuses high:low ...
rem # hign F7 = default
rem # low E3 = "4 MHz internal RC oscillator"
"C:\Program\Atmel\AVR Tools\stk500\stk500" -dATtiny26 -e -c%AVRISPCOM% -fF7E3 -I100kHz
rem # now program flash at fast clock speed
"C:\Program\Atmel\AVR Tools\stk500\stk500" -dATtiny26 -pf -c%AVRISPCOM% -lFC -vf -I1MHz -fiC:\AVRprogram\TESTPROGRAM.hex
goto :end
:problem
echo problems!