Multiplexa servon - LÖST!
Multiplexa servon - LÖST!
Hej, förenklat kan man säga att jag har en MCU med bara en PWM-utgång som jag multiplexar två servon med.
Var 20:e millisekund skickar jag ut en puls till vardera servo. Jag byter "kanal" mellan varje puls och detta multiplexande gör jag med två transistorer där jag har pulsen på basen och "channel enable" på kollektorn och sedan emittern till signalingång på resp. servo.
Det funkar bra med de två servon jag testat med hittills men när jag igår bytte ut ena servot till ett mikroservo så beter sig båda nervöst och ryckigt. När det ena servot är stilla så kan det andra göra plötsliga och omotiverade utfall.
I oscilloskopet kan jag inte se ngn skillnad mot tidigare och tror inte det är fråga om brown-outs pga höga strömmar i nya servot då det är väsentligen klenare än det som användes tidigare.
Några förslag på vad orsaken kan vara?
EDIT: Glömde skriva att jag måste realisera med sådant alla har hemma, dvs inga chip utan bara passiva plus trissor.
Var 20:e millisekund skickar jag ut en puls till vardera servo. Jag byter "kanal" mellan varje puls och detta multiplexande gör jag med två transistorer där jag har pulsen på basen och "channel enable" på kollektorn och sedan emittern till signalingång på resp. servo.
Det funkar bra med de två servon jag testat med hittills men när jag igår bytte ut ena servot till ett mikroservo så beter sig båda nervöst och ryckigt. När det ena servot är stilla så kan det andra göra plötsliga och omotiverade utfall.
I oscilloskopet kan jag inte se ngn skillnad mot tidigare och tror inte det är fråga om brown-outs pga höga strömmar i nya servot då det är väsentligen klenare än det som användes tidigare.
Några förslag på vad orsaken kan vara?
EDIT: Glömde skriva att jag måste realisera med sådant alla har hemma, dvs inga chip utan bara passiva plus trissor.
Senast redigerad av hanzibal 28 mars 2013, 04:29:11, redigerad totalt 4 gånger.
-
limpan4all
- Inlägg: 8512
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Multiplexa servon
Är inte 20ms i längsta laget?
Jag vet att det skall gå med 0,5 till 2,5ms och 8 kanaler dvs 2,5*8=20ms men varför vara extrem om man inte måste?
Och om du använder alla 8 kanalerna så skulle jag ta en 74XXX238 (notera 238 så har du rätt polaritet på utgångarna) istället för selekteringen (PWM till ENABLE (välj om du vill ha aktiv hög eller låg och koppla de andra ENABLE pinnarna på lämpligt sätt) och selekteringen via adressbitarna). Enklare och vackrare än din nuvarande lösning samt billigare både i komponenter och montering.
Jag vet att det skall gå med 0,5 till 2,5ms och 8 kanaler dvs 2,5*8=20ms men varför vara extrem om man inte måste?
Och om du använder alla 8 kanalerna så skulle jag ta en 74XXX238 (notera 238 så har du rätt polaritet på utgångarna) istället för selekteringen (PWM till ENABLE (välj om du vill ha aktiv hög eller låg och koppla de andra ENABLE pinnarna på lämpligt sätt) och selekteringen via adressbitarna). Enklare och vackrare än din nuvarande lösning samt billigare både i komponenter och montering.
Re: Multiplexa servon
Jag har inte tänkt använda hela tidsfönstret utan nöjer mig med max 5 kanaler detta pga viss latens vid kanalbyte (långsam mcu).
20ms är den siffra jag läst mig till att standardservo förväntar sig mellan pulserna. Kör alltså timer på 50Hz.
Glömde skriva att jag måste realisera med sådant alla har hemma, dvs inga chip utan bara passiva plus trissor. Annars kan man det ju, precis som du säger, göras mkt snyggare.
20ms är den siffra jag läst mig till att standardservo förväntar sig mellan pulserna. Kör alltså timer på 50Hz.
Glömde skriva att jag måste realisera med sådant alla har hemma, dvs inga chip utan bara passiva plus trissor. Annars kan man det ju, precis som du säger, göras mkt snyggare.
-
limpan4all
- Inlägg: 8512
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Multiplexa servon
Det är ju stor skillnad på servo och servo, speciellt billiga sådana..
Skulle inte förvåna mej om ditt nya servo skickar ut störningar.
Skulle inte förvåna mej om ditt nya servo skickar ut störningar.
-
limpan4all
- Inlägg: 8512
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Multiplexa servon
Bara för att säkerställa att inget kommer in till servot, såvitt jag kan förstå så är servots ingång flytande såsom det är kopplat nu när servot inte är selekterat. Flytande ingångar kan ställa till mycket skit...
Re: Multiplexa servon
Jo tack, jag har lärt mig det den hårda vägen. Jag har resistor till jord men kanske för stor. Skall kolla efter hur det ser ut men ser alltså inget på skopet men det kanske man inte nödvändigtvis gör heller.
En annan fråga, bör man sätta diod och/eller konding över servots matning?
En annan fråga, bör man sätta diod och/eller konding över servots matning?
-
limpan4all
- Inlägg: 8512
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Multiplexa servon
Definitivt en kondensator, den gamla regeln om 3300uF/A gäller, så dimensionera värdet efter den maximala strömmen som servot drar vid full last. Hur skulle du koppla in en diod?
Re: Multiplexa servon
Du kör 20ms per servo? Då bör din timer gå på 100Hz (10ms) eftersom du delar kanalen?
p1 t p2 t p1 t p2 t p1 t p2 t p1 t p2
p1 puls till servo 1.
p2 puls till servo 2.
t bör då vara max 10ms.
MVH: Mikael
p1 t p2 t p1 t p2 t p1 t p2 t p1 t p2
p1 puls till servo 1.
p2 puls till servo 2.
t bör då vara max 10ms.
MVH: Mikael
- Swech
- EF Sponsor
- Inlägg: 4767
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Multiplexa servon
Om du testar att bara köra det ena servot och struntar i att styra ut det andra men fortfarande
switchar mellan dem , rycker det i servot som inte skall vara med?
Swech
switchar mellan dem , rycker det i servot som inte skall vara med?
Swech
Re: Multiplexa servon
> Då bör din timer gå på 100Hz (10ms) eftersom du delar kanalen?
Nej, man kan köra med 20 ms (eller ett par ms lägre) och sedan
kör man båda pulserna efter varandra. Om det blir 20, 22 eller 25
ms till nästa puls/servo spelar ingen jättestor roll, det kan bli
lite sämre respons i servot.
Om man vill kan man addera pulstiderna för de två servona och dra
av det från den långa pausen, om man vill hamna närmare 20 ms.
Man man behöver inte vänta 10 ms mellan varje servo, även om det rent
tekniskt fungerar det också, med lite mer (onödigt) jobb i programvaran.
Nej, man kan köra med 20 ms (eller ett par ms lägre) och sedan
kör man båda pulserna efter varandra. Om det blir 20, 22 eller 25
ms till nästa puls/servo spelar ingen jättestor roll, det kan bli
lite sämre respons i servot.
Om man vill kan man addera pulstiderna för de två servona och dra
av det från den långa pausen, om man vill hamna närmare 20 ms.
Man man behöver inte vänta 10 ms mellan varje servo, även om det rent
tekniskt fungerar det också, med lite mer (onödigt) jobb i programvaran.
Re: Multiplexa servon
sodjan: Det har du förstås rätt i
Jag var mest ute efter att det inte var 40ms mellan varje servouppdatering, men det borde inte spela nån roll egentligen...
Är det stora utfall servot gör, eller är det små ryck? Servot kanske är sådant helt enkelt.
Det eller överhörning känns ju som troligast om signalen är stabil enligt oscilloskop.
Är det stora utfall servot gör, eller är det små ryck? Servot kanske är sådant helt enkelt.
Det eller överhörning känns ju som troligast om signalen är stabil enligt oscilloskop.
Re: Multiplexa servon
Jag kör så som sodjan beskriver så det blir inte exakt 20ms men nästan beroende på aktuell pulsbredd.
@swech: Om jag stänger av (enable=0) så funkar det andra som det skall och vice versa.
@limpan4all: 3300uF är ju ap-mycket, menar du verkligen 3,3mF?
En diod föreställde jag mig på samma sätt som man brukar göra med över reläer för att käka upp rekylen pga induktansen men det skall jag alltså inte?
@swech: Om jag stänger av (enable=0) så funkar det andra som det skall och vice versa.
@limpan4all: 3300uF är ju ap-mycket, menar du verkligen 3,3mF?
En diod föreställde jag mig på samma sätt som man brukar göra med över reläer för att käka upp rekylen pga induktansen men det skall jag alltså inte?
Re: Multiplexa servon
> 3300uF är ju ap-mycket,
1A är också ganska mycket. Vad drar servot ?
Noter att det var 3300 uF *per A* !
1A är också ganska mycket. Vad drar servot ?
Noter att det var 3300 uF *per A* !
