Atmega 328P och H-brygga L298P funkar konstigt

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

Jag håller på med en krets som ska styra två DC-motorer(https://www.electrokit.com/dcmotor-med- ... 8rpm.54661) med en dubbel H-brygga L298P(https://www.sparkfun.com/datasheets/Rob ... Bridge.pdf)
Jag har gjort en PCB utifrån bifogat schema som jag har gjort, jag vet att vissa ledningar går igenom komponent-symboler men det är för att jag skulle se om jag kunde undvika några vias i PCB designen senare.

Vad som händer är att när motorn startar så verkar det som att uC:n låser sig på något sätt. Om jag inte har motorn inkopplade så får jag signalerna som jag förväntar mig mellan uC och L298P(Enable A, Enable B, Input 1-4) men när jag kopplar in en motor så låser sig signalerna så fort motorn börjar snurra. Jag funderade på om det kan vara störningar som kommer från motorn som påverkar uC:n på något vis?
Jag har provat både extern kristall och den interna oscillatorn utan att det blir någon skillnad. Det spelar ingen roll om jag kopplar en motor på "Motor1" eller "Motor2", det blir likadant. Jag har även provat att koppla en 100nF keramisk kondensator(största som jag hade) över motorn vilket inte hjälpte.

Nått som är intressant är att om jag sänker kortets drivspänning från 12V till ca 6V så fungerar det sånär som på några ryckningar i motorn, men den svarar på kommandon och låser sig inte.

Vad kan det vara som felar? Har det att göra med störningar, jordning eller nått sådant eller har jag helt enkelt kopplat fel?
Om ni hittar andra konstigheter i schemat får ni gärna hojta till :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av lillahuset »

Det låter som störningar.
Hur ser layouten ut?
Har du dragit jordarna "vettigt" och separerat allt känsligt (reset, klocka etc) ordentligt från drivaren?
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

lillahuset: Tack för svaret, jag fick en tankeställare! Jag har inte separerat jordarna utan alla går till jordplan på baksidan av kortet, det var nog väldigt dumt men jag har tidigare byggt en sån här: http://chalmersrobotics.se/wiki/Introbot09 och då verkade det inte så känsligt, även om det faktiskt inte hade jordplan nu när jag kikade efter. Hur ska man bäst göra för att separera jordarna, dom måste ju ändå vara ihop-kopplade?

Sen såg jag att jag glömt motstånd på Reset-pinnen, satte dit ett men det blev ingen skillnad.

Det är utan tvekan något som "stör" och jag tror att jag kommit på vad det är som "störs", det är mottagaren(bifogad bild) som kopplas in på RC-RX. Den skickar PPM-signaler till uC:n och det måste vara den signalen som störs. Kom på detta genom att programmera så att motorn körs fram och tillbaka i jämna intervaller och sen styra LED:arna via mottagaren. Då gick motorn stadigt och bra men LED:arna blinkade hejvilt så det borde tyda på att uC:n går som den ska(låser sig inte som jag trodde först) men RX-signalen störs(når förmodligen knappt in i acceptabelt skick vilket jag uppfattade som "låsningar").

Är det jordplanet på baksidan som är problemet? Ska det inte kopplas på drivarens jord?

Edit: Lade till top och bottom planen på kortet Observera att även botten-planet är från top-yv
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av lillahuset »

Om det gäller att koppla tex en A/D till en processor brukar man försöka göra ett jordplan för den analoga delen och ett för den digitala. Sedan kopplar man ihop dem med antingen en drossel eller ett litet motstånd eller en smal kopparremsa. Idén är att jordströmmarna ska separeras. I vissa fall kopplar man motstånd i serie med de digitala ledarna mella A/D och processor.

I det här fallet har du lagt processorn mitt på kortet och har switchade saker runt omkring. Om du gör en ny layout rekommenderar jag att du försöker placera processorn i ett hörn så långt från switcharna och I/O som möjligt.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Klas-Kenny »

Jag hade börjat prova med att sätta en RC-snubber på varje motor, brukar göra susen på såna bekymmer.

Typ, 100ohm i serie med 100nF lött direkt på motorns poler.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4689
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Swech »

ditt jordplan är inget jordplan

Swech
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

lillahuset: Jag kommer göra en ny design och ska då tänka på att placera komponenterna åtskilda. Det där med skilda jordplan, menar du då att det "digitala jordplanet" endast ska jordas till det "analoga/switchade jordplanet" via drossel, motstånd eller smal koppar? Inkommande spänning och volt-regulator ska alltså sitta på det analoga jordplanet?

Klas-Kenny: Jag provade ditt tips med en 100nF och 120ohm i serie över motorn men det verkade inte göra någon skillnad(inte märkbar i alla fall).

Swech: Ojdå, jag trodde inte att det var så noga att hela planet hängde ihop bra men det bero förstås på vad som sitter anslutet på varje jord-yta.

PPM är ju att mottagaren skickar 5V-pulser och tiden i mellan pulserna är värdet på signalen. uC:n mäter tiden och sorterar ut rätt signaler(det finns en sync-signal som är längre än övriga signaler), det är ju detta som tycks sluta funka, det skulle alltså betyda att min PCB-design är så dålig att den stör en 5V-signal? Är detta rimligt med tanke på att man kör arduino-projekt med motorer och drivare där inte ens USB-krånglar?
Jag förstår att en PPM signal inte har någon checksum och därför är opålitligare än ett digitalt protokoll men borde inte en 5V PPM-signal vara ganska störnings-säker? Jag har möjlighet att köra SBUS med TTL-signal istället för PPM men det känns inte som rätt väg att gå för att lösa problemet. Lösningen ligger nog i ett nytt kort men det hade varit intressant att lura ut exakt vad som orsakar problemet som jag har med nuvarande kort.

Är det sannolikt komponent-placeringen och jordningen(icke-separerade jordplan för power och logik) som gör att det blir galet så om jag fixar det så borde det funka?
nifelheim
Den första
Inlägg: 2318
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av nifelheim »

kör du pwm på motorerna är nog dioderna för långsamma, M7 är väl "vanliga" likriktardioder?
Tycker du ska mäta lite innan du gör ett nytt kort, oscilloskop?
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

Jag kör inte PWM nu men tänkte göra det senare. M7 dioderna(http://www.kingtronics.com/pdf/M7-diode.pdf) har jag sett i kombination med denna H-brygga så därför jag valde jag dom. Vilka dioder är att rekommendera istället? Jag äger dock inget oscilloskop så jag har bara multimeter att mäta med tyvärr :/
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4689
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Swech »

Ovansidan har också problem med jord. Faktiskt såpass stort fel att det är
konstigt att det funkar överhuvudtaget.
All jord till processorn går via ett enda viahål och med tunna långa ledare. Det går ned på baksidan där jordplanet inte är bra

Tänk så här då du ritar ditt kort. Varje punkt som skall till jordplanet kopplar du med ett viahål så nära punkten som möjligt.
De stora pojkarna säger att man inte ens får koppla mer än en komponent per via hål då det påverkar varandra.
I ditt fall
Kristallens kondensatorer MÅSTE ha viahål direkt ned i jordplanet, inget annat till dessa via.
Processorns GND pinnar, direkt med viahål

P.s. U1 är också felaktigt jordad. Så som det är designat så måste all ström gå genom en enda via till höger.
Ny design, Viahål DIREKT ned till jordplanet

Swech
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

Swech: Tack så väldigt mycket för att du tog dig tid att titta så noga på kortet! Jag uppskattar verkligen den hjälpen då den är värd så mycket när man är glad hobbyist som inte har så mycket teori bakom :) Jag tror att den största anledningen till att det blev som det blev var att jag försökte undvika vias in i det längsta(för att kortet skulle bli lättare att göra eftersom jag gör det själv), vilket naturligtvis är helt fel förstår jag nu.
Nytt kort ska jag göra och då tänker jag posta det här INNAN jag gör kortet så sparar jag nog lite huvudbry :)

Jag har försökt hitta någon guide eller instruktions-video på just hur man designar PCB men har inte hittat något riktigt bra. Nästan allt som jag hittat förklarar bara hur man använder olika PCB layout-program och inte så mycket hur man bör designa en PCB. Jag hittar dock vissa seminarier på Youtube men dom är som regel ganska långa och riktar sig sällan till nybörjare och hobbyister.

Är det någon som kan ge förslag på en bok eller liknande som avhandlar det viktiga i PCB-design utan att bli allt för grundlig på varje område? :)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Micke_s »

Ta en titt på t.ex. https://www.silabs.com/documents/public ... Si823x.pdf
Finns lite olika undervoltage att välja på och lite olika konfigureringar...

Då kan du isolera det som drar ström helt från logiksidan...
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

Jag har gett upp tanken på att få detta kort att funka men har ändå försökt felsöka för att se om det är något särskilt som gör att det inte funkar så bra. Jag har lött bort LED-drivarna(Driver1 och Driver2) och de två andra drivarna(U6 och U7), det gjorde ingen skillnad.
Från jord på spännings-matningen(JST-XH1) har jag dragit kablar till GND på motor-drivaren(U1) och en kabel till vian som sitter närmas GND på uC:n(U2), det gjorde ingen skillnad.
Jag satte ca 1 meter långa kablar till motorn och la den en bit ifrån, det gjorde skillnad och det funkar med bara några "glitchar" lite då och då.

Hela tiden så funkar det om jag kopplar bort motorn eller inte kör den. Då svarar LED:arna på kommandon från radiostyrningen helt utan glitchar.
Jag tror inte längre att det är PPM-signalen som störs eftersom programmet som jag testade det med var lite feltänkt(jag lät programmet köra motorn men satte utgångarna så ofta att glitchar inte syntes, jag trodde först att det funkade) så jag kom på att resultatet inte var tillförlitligt. Jag är nu mer inne på att det är själva processorn som får "hicka" av motorn.

Jag lade ett LED-blink i setup-rutinen i programmet och blinket kommer när jag kopplar in strömmen men aldrig när motorn körs(och antas störa) så jag tror inte att processorn startar om, kan det vara en korrekt iakttagelse?
Eftersom jag provar med både externa kristallen och interna oscillatorn och ändå får samma resultat så borde man väll nästa kunna anta att det inte beror på kristallens dåliga inkoppling?

Det känns som att jag skulle vilja komma på lite mer exakt vad som krånglar innan jag designar ett nytt kort, annars kanske jag missar huvud-problemet och får samma problem med det nya kortet. Som jag skrev tidigare så har jag en sådan här: http://chalmersrobotics.se/wiki/Introbot09 som har ungefär samma drivare och processor och den är inte känslig alls för motorerna. Det kortet har inget jord-plan alls och verkar inte separera komponenterna så himla mycket heller.
Senast redigerad av Glattnos 18 augusti 2017, 13:50:22, redigerad totalt 1 gång.
Glattnos
Inlägg: 2972
Blev medlem: 29 oktober 2009, 20:01:18

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Glattnos »

Nu har jag märkt en sak, alla 100nF kondensatorer KANSKE är 100pF. Jag beställde 100st 100nF på eBay, jag kollade noga på påsen och tror att någon har skrivit "100p" med en svart penna på påsen. Jag har för mig att jag såg det när jag fick dom(1 år sedan) och trodde nog då att det betydde 100st(100pack, 100pcs eller nått).

Jag har tyvärr inget att mäta kapacitans med, tror att jag ska skaffa det.
Men tror ni att det i så fall beror på det?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Atmega 328P och H-brygga L298P funkar konstigt

Inlägg av Micke_s »

Du skulle kunna ta en känd 100n
1 ladda upp den till 5v.
2 koppla loss 5v
3 mäta spänningen
4 koppla in din okända "100p" kondednsator
5 kolla spänningen igen

Blir det nästan ingen skillnad i 3 och 5 så är det nog 100p..om ca 2.5v så 100n. Dock kommer spänningen skjul a snabbt om multimetern har läckströmmar. Annars ta en op amp som buffer mellan..
Skriv svar