Sida 1 av 1

fuseproblem på attiny2313

Postat: 10 februari 2009, 09:14:59
av pere76
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.

Re: fuseproblem på attiny2313

Postat: 10 februari 2009, 09:26:00
av thepirateboy
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

Postat: 10 februari 2009, 09:27:21
av eqlazer
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/

Re: fuseproblem på attiny2313

Postat: 10 februari 2009, 11:04:46
av pere76
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.

Re: fuseproblem på attiny2313

Postat: 10 februari 2009, 12:22:39
av sodjan
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...

Re: fuseproblem på attiny2313

Postat: 11 februari 2009, 21:47:34
av manw
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.

Re: fuseproblem på attiny2313

Postat: 11 februari 2009, 22:13:11
av Norpan
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.
Ckdiv8 gäller vid uppstart och ska inte påverka processorns normala liv och leverne..
"rstdisbl" är absolut en fuse man ska låta bli, om man inte vet att man är färdig med programmeringen.

Re: fuseproblem på attiny2313

Postat: 11 februari 2009, 23:14:39
av Swech
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

Re: fuseproblem på attiny2313

Postat: 12 februari 2009, 07:53:35
av pere76
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.

Re: fuseproblem på attiny2313

Postat: 12 februari 2009, 13:10:39
av ie
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

Postat: 14 februari 2009, 17:00:26
av manw
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.

Re: fuseproblem på attiny2313

Postat: 15 februari 2009, 21:46:39
av ie
Kolla sidan 31 i manualen.