fuseproblem på attiny2313
fuseproblem på attiny2313
Har hållt på länge och försökt få kontakt över seriellporten på min attiny2313. Får inte över en enda bit!
När jag sedan kopplade in en lysdiod upptäckte jag att den blinkade allt för långsamt, kanske en åttondel för långsamt.
Efter lite undersökningar kom jag fram till att prescalern nog var satt.
Med avrdude inställt på siprog så läste jag lowbytes till:
0b1100100
Efter att ha läst på lite i databladet och på nätet kom jag fram till att bitarna borde se ut såhär:
11100000
Efter att jag skrivit bitarna till processorn svarar den inte längre och processorn jobbar nog inte eftersom min kontrollysdiod är släckt.
Hur löser jag detta, en ny avr är inte så dyr, men jag vill inte döda den på samma sätt.
När jag sedan kopplade in en lysdiod upptäckte jag att den blinkade allt för långsamt, kanske en åttondel för långsamt.
Efter lite undersökningar kom jag fram till att prescalern nog var satt.
Med avrdude inställt på siprog så läste jag lowbytes till:
0b1100100
Efter att ha läst på lite i databladet och på nätet kom jag fram till att bitarna borde se ut såhär:
11100000
Efter att jag skrivit bitarna till processorn svarar den inte längre och processorn jobbar nog inte eftersom min kontrollysdiod är släckt.
Hur löser jag detta, en ny avr är inte så dyr, men jag vill inte döda den på samma sätt.
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Re: fuseproblem på attiny2313
Anslut en extern kristall till XTAL1 och XTAL2 och kolla om den hoppar igång. Det är ett vanligt fel att man väljer extern kristall fast man inte har någon. Notera också att 1 betyder unprogrammed i databladet, och 0 programmed. Hur avrdude hanterar det har jag ingen koll på, men man bör kolla upp om bitarna ska inverteras eller inte.
Re: fuseproblem på attiny2313
Hmm du har nog satt den till external clock. Var det bara clkdiv8 som du ville ändra? Eller har du en extern klocka ansluten till den också?
För att kunna prata med den igen så måste du koppla in en extern klocka (om du inte redan hade det), sedan programmera fuses rätt igen.
Smidig kalkylator för fuses
http://www.engbedded.com/cgi-bin/fc.cgi/
För att kunna prata med den igen så måste du koppla in en extern klocka (om du inte redan hade det), sedan programmera fuses rätt igen.
Smidig kalkylator för fuses
http://www.engbedded.com/cgi-bin/fc.cgi/
Re: fuseproblem på attiny2313
Vilken bra kalkylator.
Framförallt så får jag andra värden än om jag räknar själv i databladet.
Jag läste nog databladet lite för snabbt.
Visst har jag ställt in den på extern kristall. Det var bara clkdiv8 jag ville ändra egentligen. Miisförsod uppenbarligen databladet.
Ska se om jag kan hitta en kristall i lådorna på några MHz.
Skulle det funka med nästan vlken kristall som helst, även några KHz?
Tack för hjälpen med det uppenbara felet.
Framförallt så får jag andra värden än om jag räknar själv i databladet.
Jag läste nog databladet lite för snabbt.
Visst har jag ställt in den på extern kristall. Det var bara clkdiv8 jag ville ändra egentligen. Miisförsod uppenbarligen databladet.
Ska se om jag kan hitta en kristall i lådorna på några MHz.
Skulle det funka med nästan vlken kristall som helst, även några KHz?
Tack för hjälpen med det uppenbara felet.
Re: fuseproblem på attiny2313
Kristallen måste vara tillräckligt snabb för att matcha din programmerare.
En kristall på "några KHz" låter dessutom lite märkligt...
En kristall på "några KHz" låter dessutom lite märkligt...
Re: fuseproblem på attiny2313
Ja, det var ju just vad jag glad i hågen gjorde. Ställde om den interna klockan till Watchdogens interna klocka på 128kHz, sedan kunde jag aldrig kontakta den kretsen mer via serieprogrammeraren.
En kristall på några kHz kanske kan vara en klockkristall på 32,768kHz, men det är nog olämpligt som sodjan skriver, funkar nog lika illa som 128kHz klockan i det avseendet.
En kristall på några kHz kanske kan vara en klockkristall på 32,768kHz, men det är nog olämpligt som sodjan skriver, funkar nog lika illa som 128kHz klockan i det avseendet.
Re: fuseproblem på attiny2313
Ckdiv8 gäller vid uppstart och ska inte påverka processorns normala liv och leverne..Atmel skrev:The calibrated internal RC Oscillator provides a fixed 8.0 MHz clock. The frequency is
nominal value at 3V and 25°C. If 8 MHz frequency exceeds the specification of the
device (depends on VCC), the CKDIV8 Fuse must be programmed in order to divide the
internal frequency by 8 during start-up. The device is shipped with the CKDIV8 Fuse
programmed.
"rstdisbl" är absolut en fuse man ska låta bli, om man inte vet att man är färdig med programmeringen.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: fuseproblem på attiny2313
clkdiv gäller inte bara vid uppstart.. den delar frekvensen hela tiden.
Vad Atmel menar med sitt kryptiska svar är om processorn sparkas igång lite
för fort så kan programmeraren eventuellt inte hinna med. Därav är fuse clkdiv satt
Men den delar alltså klockan med 8 kontinuerligt, inte bara vid uppstart
swech
Vad Atmel menar med sitt kryptiska svar är om processorn sparkas igång lite
för fort så kan programmeraren eventuellt inte hinna med. Därav är fuse clkdiv satt
Men den delar alltså klockan med 8 kontinuerligt, inte bara vid uppstart
swech
Re: fuseproblem på attiny2313
Några kilohertz var kristallen jag hittade, efter att ha tänkt efter så testade jag inte ens utan gick direkt till elfa och köpte en keramisk resonator på 8MHz som jag glatt lödade in.
Köpte en attiny2313 till, eftersom dom kostar 22 spänn eller något sådant.
Men inte funkade det inte, efter att ha tittat lite närmre på hur jag satt säkringarna(säger man så på svenska) så insåg jag att den var konfigurerad för extern klocka.
Då stoppade jag in den nya processorn istället
Efter att ha ställt alla säkringar rätt så fungerar allt som det ska.
Om jag orkar någon dag kan jag plocka klocksignalen från en ISA port i datorn och starta upp processorn, men att köpa en ny känns faktiskt enklare.
Däremot så måste jag starta minicom efter det att processorn startat upp för att snacka med den på comporten, annars blir det bara skräp.
Tydligen så är inte jag den enda med det problemet om man kollar på nätet.
Tack för hjälpen och tack för länken till "säkringskalkylatorn"
Nu ska det uträttas underverk, jag börjar med att haka på lite i2c enheter och ser om jag kan snacka med dom.
Köpte en attiny2313 till, eftersom dom kostar 22 spänn eller något sådant.
Men inte funkade det inte, efter att ha tittat lite närmre på hur jag satt säkringarna(säger man så på svenska) så insåg jag att den var konfigurerad för extern klocka.
Då stoppade jag in den nya processorn istället

Efter att ha ställt alla säkringar rätt så fungerar allt som det ska.
Om jag orkar någon dag kan jag plocka klocksignalen från en ISA port i datorn och starta upp processorn, men att köpa en ny känns faktiskt enklare.
Däremot så måste jag starta minicom efter det att processorn startat upp för att snacka med den på comporten, annars blir det bara skräp.
Tydligen så är inte jag den enda med det problemet om man kollar på nätet.
Tack för hjälpen och tack för länken till "säkringskalkylatorn"
Nu ska det uträttas underverk, jag börjar med att haka på lite i2c enheter och ser om jag kan snacka med dom.
Re: fuseproblem på attiny2313
Jag kan inte se att det någonsin finns en anledning att koppla bort "Div by 8" när man kör på den interna oscillatorn, då man enkelt kan ställa om den i mjukvaran så snart processorn har startat. Då kan man välja att dela med allt från 1 till 256.
Re: fuseproblem på attiny2313
Det visste jag faktiskt inte att man kunde göra, men det finns ju några register att hålla reda på till och med i tiny2313, skall kolla upp detta. När jag skulle använda UARTen för första gången upptäckte jag att jag behövde ta bort "Div by 8" i fuses, men kan man göra det i början av programmet istället så är ju det bra.