AVR-Fuses restore

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

AVR-Fuses restore

Inlägg av manw »

Som det finns i några andra trådar här på forumet, och jag själv fick erfara, så är det lätt medelst en ICSP programmerare att ställa "Fuses" felaktigt i AVR-processorn, så man inte längre kan kommunicera med den. För att kunna återställa Fuses bitarna måste man använda en High voltage parallell programerare, viken är betydligt dyrare och mer komplicerad. Att behöva köpa en parallellprogrammerare för i huvudsak detta känns dyrt och onödigt.

Hittade en sådan på http://mightyohm.com/blog/2008/09/ardui ... rogrammer/ men det ser ut att vara gjort för en "Arduino-modul", så jag ville ha något som endast kräver en AVR-processor, avr-gcc och en enkel serieprogrammerare.

Tänkte köra det som ett mini-projekt att åstadkomma en autonom krets som egentligen bara återställer Fuses-bitarna, så att man kan fortsätta med sin serieprogrammerare sedan.

Min kravlista är:
-Billigt
-Enkelt
-Lättillgängligt

Grundtanken var att jag skulle börja med att göra det "av och för" ATtiny2313, men I/O-pinnarna räcker inte riktigt till, i alla fall inte om jag vill kunna realtidsdebugga via serieporten som jag tänkt. Kommer kanske att fortsätta utveckla på en ATmega88.

Så långt jag kommit är att jag har skrivit (C-) koden för de olika programmeringssekvenserna, och debuggat dessa i AVR-studio. Så det börjar bli dax att knyta ihop allting SW och HW, och porta tiny2313 koden till mega88.

Tänkte att om jag lägger upp det här så kanske det kan bli en morot (eller piska?) för att ro projektet iland. :humm:
Användarvisningsbild
gunne
Inlägg: 2088
Blev medlem: 17 juni 2004, 15:00:31
Ort: sthlm
Kontakt:

Re: AVR-Fuses restore

Inlägg av gunne »

Do it!

Det är kanske just vad jag skulle behöva i nuläget.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Re: AVR-Fuses restore

Inlägg av thepirateboy »

Hur gör man för att ställa fuses fel så man inte längre kan programmera den om man använder Atmels egna programmerare?
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Re: AVR-Fuses restore

Inlägg av manw »

thepirateboy skrev:Hur gör man för att ställa fuses fel så man inte längre kan programmera den om man använder Atmels egna programmerare?
Har ingen erfarenhet av Atmels egna programmerare, men i PonyProg gick det aldeles utmärkt att ställa ner den interna oscillatorns frekvens så att det inte längre gick att accessa med ICSP. Visst kan man gå och köpa all upptänklig utrustning som finns, men syftet här var att slippa göra det :wink: "Design for dollars" rules 8)
Norpan
Inlägg: 2229
Blev medlem: 12 april 2008, 18:20:27
Ort: Småland

Re: AVR-Fuses restore

Inlägg av Norpan »

På processorer med resetpinnen konfigurerbar är den en vanlig orsak till omprogrammeringsstopp.
Alltså att den används till I/O istället för reset.

Det står hur man ska göra i databladet och om du bara behöver radera kretsen verkar det inte bli nåt jätte avancerat bygge eller programmering.
Det enda är att det verkar vara lite noga med tiderna och att man behöver 12V till resetpinnen.
I databladet till mega88 står det på sidan 290 hur det går till.

Edit:
Som vanligt hade jag inte läst färdigt tråden, trodde du ville radera en krets och inte bygga en fuse radör. :oops:
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Re: AVR-Fuses restore

Inlägg av cykze »

manw: Bra idé. Det här borde man ju kunna fixa på ett enkelt och billigt sätt.

Hade du tänkt att den ska kunna fungera fristående eller vara styrd från en PC? Hur tänkte du generera 12V? För det behövs väl?
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Re: AVR-Fuses restore

Inlägg av manw »

Jo, det skall ju vara så billigt och enkelt med så få och lättillgängliga komponenter som möjligt.

För att testa om jag överhuvudtaget är på rätt spår, så tänkte jag "realtidsdebugga" och eventuellt styra den via USARTen och lämpligt terminalprogram. Men tanken till slutmålet är att det bara skall vara "The machine that goes BING!", stoppa dit kretsen och trycka på en knapp. För att detta skall funka så krävs ju en lista med de kretsar den skall stödja, och eventuellt en liten omkoppling, men som jag förstod det så kan man tydligen läsa ut vilken krets man har att göra med.

Det är ju väldigt lite ström det är fråga om, så antingen tänkte jag mata den från 12V och ha en 5V regulator på kortet, eller alternativt 5V-matning och någon step-up mojt till 12V, men det senare kräver nog fler komponenter.

Skall ta och rita om schemat med en ATmega88 innan jag pillar ihop HW. Satt och svor över schemaprogrammet häromkvällen när jag skulle rita om symbolen :-D
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Re: AVR-Fuses restore

Inlägg av EagleSpirit »

Här finns ett schema för en parallellprogrammerare: http://elm-chan.org/works/avrx/report_e.html

Om man råkar ställa in fel oscillatorinställningar brukar det gå att kicka igång med en frekvensgenerator eller en kristall med "låg" frekvens. Det blir värre om man ställer om reset-pinnen, då måste man köra parallellprogrammering. Att ställa om den har man ju tyvärr lyckats med ett par gånger :(

Lycka till med projektet!
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Re: AVR-Fuses restore

Inlägg av manw »

Tittade på ELM-programmeraren, men efter att ha fördjupat mig något i samband med detta så ser det ut som denna inte ens är möjlig att få pinkompatibel för att programmera ATtiny2313. För den nämnda kretsen har man kombinerat vissa logiska signaler till samma pinne (i två fall) på grund av brist på kapselpinnar. Står även något i Errata-listan om att parallellprogrammering av denna krets inte fungerar som det skall, men förhoppningsvis kan man ställa "fuses" i alla fall.

Skrev en del kod för detta och debuggade denna, men insåg att pinnarna på tiny2313 ville inte riktigt räcka till som "master"/styrkrets. Försökte med en mega88, men även där krockade vissa specialpinnar med portarna så att det var svårt att få två "rena" 8-bitarsbussar. Tittade senast på om jag skulle använda en mega32, och där gick det att få till två rena 8-bitarsbussar. Däremot insåg jag att jag inte gjort min kod tillräckligt porterbar med avseende på att flytta signaler mellan bussarna. Applikationen behöver 8 + 8 + 3 signaler (I/O). Bör i så fall skriva om en del av koden för att anpassas till detta.

Hade också en alternativ tanke att skapa två 8bitars I/O-portar ytterligare med ett par skiftregister, men med denna extra hårdvara så faller mitt krav på enkelhet.

Till modifiera koden igen, inte lika roligt att göra saker en gång till :-/
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Re: AVR-Fuses restore

Inlägg av manw »

Har inte haft tid och ork att jobba vidare på detta projekt, gick och köpte mig en STK500 istället.

Hittade en länk till denna http://www.microcontrollerprog.com/ på AVRFREAKS.
Skriv svar