Sida 1 av 3

Atmega88 svarar inte efter läsning av lfuse

Postat: 13 juli 2011, 19:04:26
av MaggoT
Hej!
Jag har ett konstigt problem med mina atmega88-kretsar.
För ett par dar sedan gjorde jag ett litet kretskort innehållandes en mega88, isp-kontakt och lite småsaker, mest för att kunna labba med dessa ytmonterade kretsar.
När jag körde avrdude första gången svarade enheten och allt verkade ok, när jag sedan försökte läsa lfuse så fick jag "initialization failed" och efter det fick jag ingensomhelst kontakt med AVR:en överhuvudtaget.
Efter diverse svordomar och kontroll av alla anslutningar drog jag slutsatsen att AVR:en hade lämnat in, så ett nytt kort tillverkades och en ny mega88 löddes på.
Och vad händer när jag försöker kommunicera med den? SAMMA SAK!

Jag körde följande kommando flera gånger i rad, och allt verkade funka.

Kod: Markera allt

[maggot@~] avrdude -c usbtiny -p m88

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e930a

avrdude: safemode: Fuses OK

avrdude done.  Thank you.
Och sedan:

Kod: Markera allt

[maggot@~] avrdude -c usbtiny -p m88 -U lfuse:r:lfuse.txt:b

avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you. 
Och efter detta är det helt gonatt, har pluggat ur strömmen, kontrollerat programmeraren med en tiny2313 (den funkar), kollat matningsspänningen på alla pinnar (ok).

Kretskortet i fråga innehåller endast en mega88, ISP-kontakt, samt usb-plugg för strömförsörjning. Programmeraren är en usbtinyisp och jag kör avrdude under linux.

Någon som har liknande erfarenheter? Kommandot för att läsa lfuse:n har jag kört på säkert 10 kretsar tidigare och aldrig haft några problem.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 13 juli 2011, 20:25:46
av jesse
Vad är din tidigare erfarenhet av att programmera med AVRDUDE?
Har det fungerat bra? Du gör inget annorlunda nu?

Jag har aldrig testat avrdude själv.

Om du gör som du brukar så misstänker jag något skumt med din PCB...
För du skriver väl inget till någon fuse? Så den går fortfarande på internal RC-oscillator?

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 13 juli 2011, 20:29:23
av sodjan
Ja, symptomen pekar mot "bricked-AVR", men det finns inget
uppenbart i beskrivningen som i sig borde (?) medföra det.
Enda (?) sättet att verifiera är kanske att läsa ut fuses via
en HV-programmer som kan läsa AVR'en oavsett status.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 13 juli 2011, 20:57:38
av MaggoT
jesse> Jag har använt avrdude under ett par år och aldrig stött på detta problem tidigare, fast jag använt samma kommando för att läsa fuses från en bunt olika AVR's (tiny2313, tiny26, mega168, mega32 för att nämna ett par). Mycket riktigt så skall detta kommando inte skriva något, utan enbart läsa lfuse och spara ner byten i lfuse.txt.

Jag vet inte riktigt vad som skulle vara fel på PCB:et eftersom den svarade innan jag försökte läsa fusen, men jag kan bifoga schemat så fort jag kommit hem ifall jag skulle ha gjort någon tabbe där.

sodjan> Jo det verkar så, konstigt bara att det hänt på två kretsar i rad :humm: Har tyvärr ingen annan programmerare att verifiera med i nuläget.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 13 juli 2011, 21:51:25
av MaggoT
Ok, här kommer schema och PCB-layout.
Dock är det endast följande komponenter som är pålödda på kortet i nuläget:

- IC1 (mega88)
- X1 för strömförsörjning via USB
- J1 för programmeraren
- Alla jumpertrådar (röda)

Efter missödet med det tidigare kortet har jag har inte velat löda på resten innan jag verifierat att MCU:n funkar.
schematic.png
pcb.png

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 13 juli 2011, 23:55:27
av sodjan
> Dock är det endast följande komponenter som är pålödda på kortet i nuläget:

Inga avkopplingskondingar ?

> Har tyvärr ingen annan programmerare att verifiera med i nuläget.

Nej, och om jag inte har fel så behöver det vara en high-voltage-programmer
som dessutom jobbar med 8-bit parallellt, och det har du ju inte stöd för på
kortet i alla fall.

Aja, jag är nog "lost" här, hur som helst... :-)

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 01:05:37
av jesse
Har du inte lött på R11 eller C3 heller så bör du nog göra det först.
Jag vet att vissa ATmega kan låsa sig på grund av konstiga signaler på reset-pinnen. Det är en bugg de har. Vet inte om det gäller just ATMega88, men om det är det så kan det vara stor risk att du sabbar den genom att du saknar R11.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 09:04:25
av MaggoT
Hmm, avkopplingskondensatorn och pull-up på resetpinnen var pålödda på det tidigare kortet som inte funkade, men jag kan ju testa löda på dem och se om det gör någon skillnad.
Det låter ju logiskt att det kunde bugga ur om resetpinnen lämnas flytande, jag brukar dock aldrig använda pull-up på labbplattan och där har det aldrig varit några problem iaf med DIL-kretsar.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 09:11:14
av sodjan
> jag brukar dock aldrig använda pull-up på labbplattan

Alltså för reset-pinnen ? Det är nog alltid en dålig idé och vana.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 09:15:10
av ds77
Har inte resetpinnen en inbyggd pullup? Den är iofs ganska svag och jag har haft för vana att ha motstånd+kondensator ändå.

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 09:26:24
av sodjan
Aha, OK. Ja, det kan ju fungera också, så klart... :-)

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 10:40:36
av SvenW
Har nog sett det där felet ett antal gånger tror jag.
Om inte minnet sviker mig så är kretsen oftast inte 'brickad' utan det brukar finns en orsak av typen
- matningsspänning saknas
- kontakt som lossnat
- resetpinnen störd, avkoppling saknas ...
- för långa ledningar och signalreflex.

Har för mig att jag vid något tillfälle fixade problemet med att lägga små kondensatorer (~100pF)
att belasta någon av signalerna (SCK, MISO eller MOSI) för att dämpa reflexer.
Men då bitbangade jag från parallellporten via 2 meter kabel!

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 12:47:51
av Kägglan
Är det rätt eller skrivfel att reseten är aktiv hög på IC1 för om jag inte missminner mig så är den aktiv låg på ATtiny2313? Fast ett så enkelt fel har du säkert provat....

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 12:55:59
av thepirateboy
Vad kör du med för ISP-hastighet?

Har du möjlighet att prova i Windows med AVR-studio?

Re: Atmega88 svarar inte efter läsning av lfuse

Postat: 14 juli 2011, 15:03:53
av MaggoT
Knepigt detta, jag lödde på avkopplingskondensatorn C3 och pull-up-motståndet på resetpinnen och prövade igen, jag fick kontakt en gång och nu är den stendöd igen :humm: Skall pröva låta den ligga urkopplad en stund och pröva igen.

Har även igen kontrollmätt alla pinnar på AVR:en som bör ha spänning, och kontrollerat stiftlisten till programmeraren (mätt med multimetern att det är kontakt mellan stiftlisten och respektive pinne på AVR:en).

Kägglan> Reset är active low enligt databladet så det är nog felskrivet på komponenten i eagle.

thepirateboy> Har prövat allt mellan 10 och 100000 på "ISP Clock delay" (-i) i avrdude utan skillnad. Har tyvärr ingen windowsburk igång för tillfället så jag kan inte testa med avrstudio.