Inverkan av rippel på CPU VCC?
Inverkan av rippel på CPU VCC?
Hej,
Jag håller på med ett litet program på min Arduino (Atmega328p). Har problem med att programmet startar om sig sporadiskt, särskilt när jag kör mycket med periferienheter (t.ex. serieport, ADC, timers etc). Där finns också ett GSM-modem påkopplat på arduinon, som drar en hel del ström. Hela kalaset drivs från 1 USB-port på min dator. Jag har en teori om att omstarterna beror på spänningsfall.
Programmet ligger i en "evig loop" och väntar på kommandon över serieporten. När inga kommandon anländer ligger den i en vänteloop och snurrar. I detta fall ligger 3.3V till CPU stabilt. När jag dock skickar ett kommando över serieporten och Arduinon får arbeta lite ser jag ganskas stora svängningar i spänningen. Ibland så lågt som 2.5V. Är detta rimligt? Är det OK? Jag kikade i databladet och AVR:ens "operating voltage" verkar ligga mellan 2.7 och 5.5V, alltså är inte 2.5V OK. Men kanske under väldigt korta perioder? Spänningsfallet varar under ca 20 ns. I nedan bild har är 1 ruta 200 ns. Jag har mätt på 3.3V, dvs efter regulatorn som tar in "råspänningen" från USB. Har prövat att använda en separat USB-hubb med egen strömförsörjning och även från en USB-port på PC:n. Konstigt nog upplever jag att strömmen från min PC är betydligt stabilare än den från USB-hubben (?!).
Klicka här för bild -- för bred för att infogas direkt i forum
Min fråga är ganska luddig: Är det troligt att dessa svängningar på 3.3V orsakar mina omstartsproblem?
Jag håller på med ett litet program på min Arduino (Atmega328p). Har problem med att programmet startar om sig sporadiskt, särskilt när jag kör mycket med periferienheter (t.ex. serieport, ADC, timers etc). Där finns också ett GSM-modem påkopplat på arduinon, som drar en hel del ström. Hela kalaset drivs från 1 USB-port på min dator. Jag har en teori om att omstarterna beror på spänningsfall.
Programmet ligger i en "evig loop" och väntar på kommandon över serieporten. När inga kommandon anländer ligger den i en vänteloop och snurrar. I detta fall ligger 3.3V till CPU stabilt. När jag dock skickar ett kommando över serieporten och Arduinon får arbeta lite ser jag ganskas stora svängningar i spänningen. Ibland så lågt som 2.5V. Är detta rimligt? Är det OK? Jag kikade i databladet och AVR:ens "operating voltage" verkar ligga mellan 2.7 och 5.5V, alltså är inte 2.5V OK. Men kanske under väldigt korta perioder? Spänningsfallet varar under ca 20 ns. I nedan bild har är 1 ruta 200 ns. Jag har mätt på 3.3V, dvs efter regulatorn som tar in "råspänningen" från USB. Har prövat att använda en separat USB-hubb med egen strömförsörjning och även från en USB-port på PC:n. Konstigt nog upplever jag att strömmen från min PC är betydligt stabilare än den från USB-hubben (?!).
Klicka här för bild -- för bred för att infogas direkt i forum
Min fråga är ganska luddig: Är det troligt att dessa svängningar på 3.3V orsakar mina omstartsproblem?
- tecno
- Inlägg: 27254
- Blev medlem: 6 september 2004, 17:34:45
- Skype: tecnobs
- Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
- Kontakt:
Re: Inverkan av rippel på CPU VCC?
Prova med extern spänningsmatning så får du ett kvitto på om USB matning räcker till eller inte.
Re: Inverkan av rippel på CPU VCC?
Är det ett färdigt Arduino kretskort, eller en lös AVR med Arduino firmware?
Verkar som att processorn eller regulatorn är dåligt avkopplad.
Var och hur mäter du spänningen?
Verkar som att processorn eller regulatorn är dåligt avkopplad.
Var och hur mäter du spänningen?
Re: Inverkan av rippel på CPU VCC?
Nej, aldrig, inte ens en nanosekund! Det är väl ganska troligt att det är detta som orsakar omstarten.alltså är inte 2.5V OK. Men kanske under väldigt korta perioder?
I vilket fall som helst är svängningarna oacceptabla då vad som helst kan inträffa i processorn (tappa minnet / starta om. mm)
Det är mycket märkligt att du får sådana stora dippar - det tyder på någon mindre bra koppling nånstans. Man kan ju försöka förbättra matningen med några extra kondensatorer. Eftersom dippet bara handlar om nanosekunder så är det knappas någon nytta att hänga på en massa feta elektrolyter, men däremot ett par 10 - 100 nF keramiska på rätt ställe. Nu bör väl dessa redan finnas på en arduino?
Eftersom du har GSM-sändare i närheten så kan det ju också bero på radiostörning. Antningen får du mätfel pga störningen eller så får du verkliga spänningsdippar. Dipparna kan ju bero på att processorn störs och orsakar ett fel / kortslutning.
Ligger GSM-modemet direkt på USB:ns 5 volt eller på 3.3 volt? Arduinon har väl en egen 3.3 volts stabb?
Om du mäter 5-volten, dippar den också, eller är det bara 3.3 volten som dippar?
Kan du försöka identifiera exakt när du får en dipp / omstart? Är det när GSM-sändaren sänder eller någon viss pinne/signal ändras ? Eller sker det lite då och då utan samband med någon viss funktion /operation?...skickar ett kommando över serieporten och Arduinon får arbeta lite...
Re: Inverkan av rippel på CPU VCC?
Tack för snabba svar. Sanningen är den att jag kör en "Arduino klon" som heter Seeduino. Schemat för denna finns här. Jag mäter på den signal som kallas VDD3V3 i schemat. Den verkar vara konstruerad på så vis att USB-spänningen (Vin) går in i 5V regulatorn, som sedan går vidare till 3V regulatorn.
GSM-modemet är en GSM Playground, schema finns här. GSM-modulen har en egen regulator och tar in USB-spänningen (Vin) och omvandlar till 3.7V.
Dipparna händer alltid när jag kör kommandon över serieporten. Jag skall pröva att lyfta av GSM-modulen och se till att denna ej påverkar eller stör. Jag använder en "mjukvaruserieport", så när jag skriver "kör kommandon" innebär detta: 2 st timers kör, 2 st pinnar togglar med en baudrate på ca 2400 bps.
Kan även tillägga att omstarterna inte alltid inträffar trots att (enligt oscilloskop) svängningarna alltid finns där. Dock låter det ju tämligen slumpmässigt hur CPU och dess minne påverkas av en sådan svängning. Om flashläsningar kan bli korrupta eller innehållet i SRAM fel vid svängningar förklarar det ju en hel del av mina "skumma" problem.
GSM-modemet är en GSM Playground, schema finns här. GSM-modulen har en egen regulator och tar in USB-spänningen (Vin) och omvandlar till 3.7V.
Dipparna händer alltid när jag kör kommandon över serieporten. Jag skall pröva att lyfta av GSM-modulen och se till att denna ej påverkar eller stör. Jag använder en "mjukvaruserieport", så när jag skriver "kör kommandon" innebär detta: 2 st timers kör, 2 st pinnar togglar med en baudrate på ca 2400 bps.
Kan även tillägga att omstarterna inte alltid inträffar trots att (enligt oscilloskop) svängningarna alltid finns där. Dock låter det ju tämligen slumpmässigt hur CPU och dess minne påverkas av en sådan svängning. Om flashläsningar kan bli korrupta eller innehållet i SRAM fel vid svängningar förklarar det ju en hel del av mina "skumma" problem.
Re: Inverkan av rippel på CPU VCC?
> går in i 5V regulatorn,
Var sitter den ? Hittar ingen 5V regulator.
> Jag mäter på den signal som kallas VDD3V3 i schemat.
Och hur såg det ut med de andra spänningarna när du kollade ?
D.v.s de som VDD3V3 genereras från ? Har du samma dippar där ?
> så när jag skriver "kör kommandon" innebär detta:
Jag tror inte att dipparna beror på något som händer *inne* i processorn.
Snarare något som är kopplat till processorn.
> Jag skall pröva att lyfta av GSM-modulen och se till att denna ej påverkar eller stör.
Ja, det är väl ett naturligt steg i felsökningen.
Var sitter den ? Hittar ingen 5V regulator.
> Jag mäter på den signal som kallas VDD3V3 i schemat.
Och hur såg det ut med de andra spänningarna när du kollade ?
D.v.s de som VDD3V3 genereras från ? Har du samma dippar där ?
> så när jag skriver "kör kommandon" innebär detta:
Jag tror inte att dipparna beror på något som händer *inne* i processorn.
Snarare något som är kopplat till processorn.
> Jag skall pröva att lyfta av GSM-modulen och se till att denna ej påverkar eller stör.
Ja, det är väl ett naturligt steg i felsökningen.

Re: Inverkan av rippel på CPU VCC?
>serieport....
Via FS232/USB ser jag. Den verkar ju också ha egen/separat 5 volts matning (från USB förstås).
EDIT: vad jag menar är att den inte drar nån ström från 3.3V.
Men om du tar in 5 volt från USB till 5V-regulator i seeduion, blir det inte mycket lägre spänning då (4-4.5 volt?)
Hittar ingen 5V regulator, du menar kanske Q1 = mosfeten?
Via FS232/USB ser jag. Den verkar ju också ha egen/separat 5 volts matning (från USB förstås).
EDIT: vad jag menar är att den inte drar nån ström från 3.3V.
Men om du tar in 5 volt från USB till 5V-regulator i seeduion, blir det inte mycket lägre spänning då (4-4.5 volt?)
Hittar ingen 5V regulator, du menar kanske Q1 = mosfeten?
Re: Inverkan av rippel på CPU VCC?
Ok, jag kanske missuppfattat schemat. Jag är rätt ny i svängarna
Den komponent som är märkt U5 trodde jag var en 5V regulator (placerad under 3V regulatorn U4).
Jag kör mina kommandon över en mjukvaruserieport, dessa sitter på pinnarna PB4 och PB5 (syns ej i schemat). GSM modemet sitter sedan på "hårdvaruserieporten", som man också skulle kunna nå via USB om man vill (används dock ej).
Det finns t.ex. ett kommando jag kan skicka över serieporten som beräknar maximalt stackutnyttjande sedan uppstart. Denna kommunicerar inte överhuvudtaget med GSM-modemet (även om det kan vara aktivt och anslutet till GSM-nätet parallellt med detta kommando). Likväl får jag rippel på 3.3V.
Skall mäta på andra spänningar, testa med/utan GSM-modem ikväll. Verkar avgörande för att ge svar på mina frågor.
Tack!

Jag kör mina kommandon över en mjukvaruserieport, dessa sitter på pinnarna PB4 och PB5 (syns ej i schemat). GSM modemet sitter sedan på "hårdvaruserieporten", som man också skulle kunna nå via USB om man vill (används dock ej).
Det finns t.ex. ett kommando jag kan skicka över serieporten som beräknar maximalt stackutnyttjande sedan uppstart. Denna kommunicerar inte överhuvudtaget med GSM-modemet (även om det kan vara aktivt och anslutet till GSM-nätet parallellt med detta kommando). Likväl får jag rippel på 3.3V.
Skall mäta på andra spänningar, testa med/utan GSM-modem ikväll. Verkar avgörande för att ge svar på mina frågor.
Tack!
- tecno
- Inlägg: 27254
- Blev medlem: 6 september 2004, 17:34:45
- Skype: tecnobs
- Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
- Kontakt:
Re: Inverkan av rippel på CPU VCC?
Visst finns det en 5V regulator men den är bara för extern matningen inte USB
Re: Inverkan av rippel på CPU VCC?
Elektrolyt vid matningen, mindre polyster? vid själva kretsen. Kanske någon induktans i serie för att bli kvitt problemet. Spänningen är toklåg. Man använder precis sådant här för att få kryptochip att flippa ur.
Re: Inverkan av rippel på CPU VCC?
Ja, just det. Matningen från USB kommer direkt in på VDD5_USB och går via Q1 direkt till VDD5V utan spänningsfall, om nu gaten är låg.
Re: Inverkan av rippel på CPU VCC?
Jag kan inte se någon avkoppling mellan processorns VCC och jord, bara mot AVCC. Om man tittar på bilden av kortet syns inte några keramiska kondensatorer precis intill kretsen. Dålig design, säger jag. Rätt rörigt schema, dessutom, med ledningar mot GND och VCC oftast åt höger eller vänster, och sällan nedåt resp. uppåt.
Men Jesse verkar vara inne på något, tycker jag, att det är GSM-modulen som orsakar dippen. Fast med ordentligt avkopplad processor samt GSM-modul skulle nog inte dippen ta sig in i processorn. Hur är GSM-modulen inkopplad och avkopplad? Finns det något strömbegränsande motstånd mellan serie-pinnarna och GSM-modulen, likt det som sitter mellan PD0/PD1 och USB-konverteraren?
Re: Inverkan av rippel på CPU VCC?
Nu har jag gjort samma mätning även utan GSM-modul och ser samma rippel på spänningen. Jag har mätt på både 3.3V och 5V, och båda signalerna uppvisar samma problem.
5V mätning, min=3.62V max=5.8V

3.3V mätning, min=1.9V max=4.3V

Den senare mätning visade mer rippel än någonsin. Om det är som ni säger och 5V är oreglerad direkt från USB tyder väl detta på att min PCs USB-portar är helt åt helvete?
Jag skall gräva fram en alternativ spänningskälla och koppla på Vext, så den går via 5V regulatorn. Detta borde (väl?) ge en stabilare matningsspänning?
5V mätning, min=3.62V max=5.8V

3.3V mätning, min=1.9V max=4.3V

Den senare mätning visade mer rippel än någonsin. Om det är som ni säger och 5V är oreglerad direkt från USB tyder väl detta på att min PCs USB-portar är helt åt helvete?
Jag skall gräva fram en alternativ spänningskälla och koppla på Vext, så den går via 5V regulatorn. Detta borde (väl?) ge en stabilare matningsspänning?
Re: Inverkan av rippel på CPU VCC?
Ström och spänning kan induceras när som helst i en krets därför ska det sitta kondensatorer där även om man har universums bästa strömkälla. Det räcker med nog långa parallella kablar så induceras spänning från den ena till den andra.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: Inverkan av rippel på CPU VCC?
Min gsm modul behöver kunna dra 3A i burst, det är långt ifrån vad USB kan leverera.
Och även med en stor kondensator så tror jag att det är för lite. Min drar minst 300mA när man ringer.
Och även med en stor kondensator så tror jag att det är för lite. Min drar minst 300mA när man ringer.