Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Da's Daz 2 door Huup
Vandaag om 21:47:59
mDDM, waarom 3 draaistellen? door Eric B
Vandaag om 21:46:40
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
Vandaag om 21:46:22
Toon hier je nieuwe (model-) spooraanwinst(en)... door prutser
Vandaag om 21:31:27
NS-1000 in spoor-1 door FritsT
Vandaag om 21:17:04
Fleischmania Nostalgia door Noordernet
Vandaag om 21:08:27
Zoutkamp 1921 - 1942, Het plan door Noordster
Vandaag om 20:32:24
Crème daken mitropa rijtuigen epoche 2 door Stefan88
Vandaag om 20:31:18
Vraag over vervangmotor Lima-locomotief door Arjen52
Vandaag om 20:30:36
Rondom Charlois door hervé
Vandaag om 20:27:44
Line-up foto's van modellen door Jeroen95
Vandaag om 20:12:18
Digitaal-delta door Biesje
Vandaag om 20:07:34
Minibaan Visserskaai H0 door NS264
Vandaag om 19:59:28
Seinen programeren met de Pro-Link naar de 10837 dec. door bask185
Vandaag om 19:58:39
Project seaside Germany door Ronald Halma
Vandaag om 19:30:50
Bentheimer Eisenbahn, gisteren, vandaag en morgen. door Gerrit H
Vandaag om 19:17:08
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door Mispoes
Vandaag om 19:16:31
Materieel verzameling van Michiel(NDS) door spoorijzer
Vandaag om 18:53:13
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 18:52:43
TAMS PZS-2.2 door bask185
Vandaag om 18:49:53
Yet Another Servo Decoder door bask185
Vandaag om 18:42:48
Retrobahn goes to the States: Bergamot Creek door hervé
Vandaag om 18:28:25
15 November Modelspoorbeurs en Houten digitaal door maartenvdb
Vandaag om 18:23:36
De overeenkomst tussen een Ovaalramer en een Motorpost. door FritsT
Vandaag om 17:45:25
Problemen met rookgenerator KM1 materiaal in spoor 1 door Biesje
Vandaag om 16:55:39
Bf Kibronn door Jelmer
Vandaag om 16:51:50
Onlangs gespot - gefotografeerd, de foto's door Eric B
Vandaag om 15:58:10
Schroefkoppeling voor H0. door Bahn-AG
Vandaag om 14:58:20
Had de NS4903 rangeerlicht? door marco
Vandaag om 14:31:18
De bouw van mijn modelbaan in Thailand door Thai-Bundesbahn
Vandaag om 14:24:31
  

Auteur Topic: Yet Another Servo Decoder  (gelezen 24322 keer)

AP3737

  • Offline Offline
  • Berichten: 395
Re: Yet Another Servo Decoder
« Reactie #45 Gepost op: 24 October 2025, 12:39:02 »
Nog even een korte update, na enige maanden gebruik. In de meeste gevallen werkt de decoder prima, alleen vergeet hij soms de laatste positie. Tijdens power-on zorgt dit in een aantal gevallen voor extra bewegingen, wat natuurlijk niet de bedoeling is.

Het probleem blijkt uiteindelijk veroorzaakt te zijn door een korte dip in de 5V voeding. Onmiddellijk na het wegschrijven van de nieuwe positie in EEPROM, zet (enable) ik 5V op de servo voedingslijn, zodat daarna de servo in beweging kan worden gezet. Hierdoor zakt de voedingspanning korte tijd (< 1 ms) een klein beetje in, maar genoeg om de EEPROM write onbetrouwbaar te maken.

De oplossing is uiteindelijk heel eenvoudig: na iedere EEPROM write heb ik een delay van 10ms ingevoerd, zodat de voedingsdip ietsje later komt. Probleem verholpen.

Ook heb ik de lay-out van de voedingslijnen op de print wat aangepast. Hoe je de print banen het best kan leggen blijkt toch echt wel een vak apart te zijn; hoe meer ik daarover lees, hoe interessanter dat wordt.

Groet, Aiko

bask185

  • Online Online
  • Berichten: 5111
Re: Yet Another Servo Decoder
« Reactie #46 Gepost op: 24 October 2025, 14:20:49 »
Je kan ook relatief makkelijk/goedkoop de 5V van de logica ontkoppelen van servo 5V. Als je achter de buckconverter een kleine schottky diode zet met daar achter een kleine elco of tantalum van zeg 10uF ofzo dan zou je microprocessor geen spanningsdippen meer tegen komen. Nog mooier zou zijn om naast de buckconverter nog een 5V spanningsregulator te zetten, maar dat is wellicht een beetje overkill
Train-Science.com
Train-Science github
It ain't rocket science ;-)

spock

  • Offline Offline
  • Berichten: 769
Re: Yet Another Servo Decoder
« Reactie #47 Gepost op: 24 October 2025, 21:02:54 »
De oplossing is uiteindelijk heel eenvoudig: na iedere EEPROM write heb ik een delay van 10ms ingevoerd, zodat de voedingsdip ietsje later komt. Probleem verholpen.

Met alle respect, dit is geen oplossing maar symtoombestrijding. Het echte probleem is dat de processor geen stabiele voeding heeft.
Los dat probleem op en dan heb je deze "oplossing" niet nodig.

Ook heb ik de lay-out van de voedingslijnen op de print wat aangepast. Hoe je de print banen het best kan leggen blijkt toch echt wel een vak apart te zijn; hoe meer ik daarover lees, hoe interessanter dat wordt.

Als de ligging van een paar gelijkspanningsbanen kritisch is, dan is het ontwerp van de schakeling gewoon niet goed.
Ik zou zeggen, terug naar de tekentafel.

mvg spock


AP3737

  • Offline Offline
  • Berichten: 395
Re: Yet Another Servo Decoder
« Reactie #48 Gepost op: 25 October 2025, 08:42:19 »
Dank voor de feedback

@Bas: er zit al een 10uF (zie schema in eerste bijdrage in dit draadje). En ja, helemaal gescheiden voedingen zouden het probleem inderdaad hebben voorkomen, maar zag ook ik een beetje als overkill.

@Spock: hierbij de uitnodiging om mee te denken  ;D
Het schema van de voeding en de servo staan in mijn eerste bijdrage. Het schema van de AVR staat daar niet, maar binnen 1mm van alle GND/tV aansluitingen zitten 100nF keramische condensatoren. In het schema van mijn eerste bijdrage zie je ook dat de AVR zijn 5V krijgt via een ferrietbed (L12) gevolgd door 10uF (C10).

Groet, Aiko

spock

  • Offline Offline
  • Berichten: 769
Re: Yet Another Servo Decoder
« Reactie #49 Gepost op: 25 October 2025, 10:59:55 »
Hallo Aiko,

Ik kan je maar 1 tip geven. Een seperate voeding voor de processor is geen overkill maar essentieel.

Ik heb het schema van de voeding bekeken en ik vind het high-tech. Een nadeel is echter dat in de praktijk de voeding niet voldoet (zoals je hebt gemerkt).

Het probleem is dat de voeding niet voldoende stroom kan leveren bij een impuls en dat daardoor de spanning inzakt. Ik hanteer een vuistregel bij het ontwerpen van (of kiezen) een voeding dat de inschakelstroom van een servo 400mA is.

Als ik dan naar het schema van de voeding kijk, dan vind ik geen condensatoren die dat kunnen opvangen.

In het schema van mijn eerste bijdrage zie je ook dat de AVR zijn 5V krijgt via een ferrietbed (L12) gevolgd door 10uF (C10).

Deze spoel en condensator zijn er om "gras" van de gelijkspanning te halen, niet om te bufferen.
(en C10 is geen 10uF maar 100nF).

mvg spock

Menno

  • Offline Offline
  • Berichten: 3456
    • Mijn van-alles website
Re: Yet Another Servo Decoder
« Reactie #50 Gepost op: 25 October 2025, 12:46:04 »
Jep, dat zeg ik ook: bij schakelende regelaars is het ontwerp van de print van levensbelang, een van de redenen dat dat niet m'n favoriete regelaars zijn. Als het werkt is het prachtig, maar bij moeilijkheden kunnen kleine dingen een groot verschil maken.

Het datablad is heel duidelijk wat betreft een model-opmaak:


Maar bij jou zie ik dit:


De start-condensator (bootstrap-condensator) zit volledig buiten de lus van de spoel en diode om, terwijl 'ie in het ontwerpvoorbeeld de stroom als allereerste 'ziet'.
Idem voor de diode en spoel, die in je ontwerp eigenlijk omgedraaid zijn qua locatie.

Daarnaast gaat voor schakelende regelaars bij deze frequentie op dat in- en uitgaande voedingsbanen dicht bij elkaar leggen vaak vragen om moeilijkheden is: in je ontwerp lopen ze gigantisch dicht naast elkaar. Let op dat dat in dit soort gevallen capacitieve bij-effecten oplevert.

Daarnaast moeten in- en uitgangscapaciteiten bij deze frequenties van een totaal andere kwaliteit zijn dan bij lagere frequenties of lineaire regelaars. Het datablad heeft ook een duidelijke vermelding dat er additionele buffercapaciteit nodig is als de regelaar zich verder dan een bepaalde afstand bevindt van de voedingsbron. Daarbij wordt echter consequent over hoge kwaliteit keramische capaciteiten gesproken, waar jij (zo te zien) een 470 uF elco hebt gebruikt. Kan die elco de vereiste piekstromen leveren én wat is (dus) de ESR bijvoorbeeld?

Ook de kleinere ingangscapaciteiten zijn zorgenkindjes: Ze ogen erg klein, maar ik weet niet wat de ingangsspanning is. Hou er echter rekening mee dat bij een ingangsspanning van (ik noem maar wat) 20 Volt, een 25 Volt keramische condensator met X7R diëlectrum amper capaciteit over heeft bij die spanning. Grote kans dat je 50 Volt exemplaren moet gebruiken (daar wordt in het datablad ook voor gewaarschuwd overigens)

Maar het belangrijkste in dit geval lijken mij de weerstanden in de voedingsleiding. 5 Ohm is niet veel, maar je werkt wel met een regelaar die enorme piekstromen kan trekken. Tuurlijk, die elco moet dat opvangen, maar ook die kan slechts zoveel stroom trekken als die 5 Ohm toelaat.

Daarnaast snap ik niet wat die VCC-uitgang nog voorstelt na passage door een inductiviteit met (schijnbaar) een gelijkspannings-weerstand van 600 Ohm.
« Laatst bewerkt op: 25 October 2025, 12:55:46 door Menno »

AP3737

  • Offline Offline
  • Berichten: 395
Re: Yet Another Servo Decoder
« Reactie #51 Gepost op: 26 October 2025, 23:10:51 »
Als eerste: dank voor het meedenken. Jullie reactie dwingt mij om nog eens goed na te denken, en mijn analyse van het probleem aan te scherpen.  (y)

Ik ben het met Menno en Spock eens dat een step-down voeding zelf ontwerpen niet triviaal is, en het soms makkelijker / beter is de step-down alleen voor de servo's te gebruiken, en voor de processor een aparte LDO. Misschien dat ik dat, als ik dit ontwerp helemaal opnieuw zou doen, ook zo zou doen.

Eerst wil ik even reageren op Menno, en de BOOT condensator in het bijzonder. Ja, je hebt helemaal gelijk dat de BOOT condensator niet geheel volgens datablad is gelegd. Ik heb dat in mijn nieuwe ontwerp aangepast. Dank!. Ik geloof echter niet dat dit de meest waarschijnlijke verklaring is voor het probleem van de korte voedingsdip.

Ik ben ook met je eens dat de print layout heel belangrijk is. Ik heb hierover veel gelezen en videos bekeken, maar ben op dat gebied nog steeds een amateur. Wat, denk ik, wel een belangrijke aanpassing is die ik heb gemaakt, is dat ik de GND van de INGANGS elco nu als "ster middelpunt" heb genomen, evenals de =5V van de UITGANGS elco. Bij mijn vorige layout deelden de GND/ 5V voor de servo en de processor voor een deel dezelfde koperbanen. Nu hebben ze compleet onafhankelijke koper banen. Ook lopen de banen dusdanig dat ze zo min mogelijk capacitaire effecten zouden moeten opleveren.




@Menno: de 470 uF elco is een low-ESR type, en zou volgens mij niet het probleem moeten zijn. Wel heb ik de 5 Ohm weerstanden in de voedingsleiding weggehaald. Mijn oorspronkelijke gedachte was dat ik daarmee het inschakeleffect van vele tientallen decoders wat zou kunnen verzachten. Dat lijkt niet echt zo te zijn. Naast het verwijderen van beide weerstanden, heb ik ook de 1N4007 vervangen door SR34 diodes, zodat ik wat meer reserve heb.

Aan de uitgangskant is de "600 Ohm" een zogeheten ferrite bead, die DC 300mΩ heeft en 500mA aan kan, maar op 100MHz 600Ω heeft (LCSC C1017). Je ziet dit soort ferriet "spoeltjes" bij veel microprocessoren. Daarna komt C10 van (inderdaad) 100nF en een (niet op dit schemablad getoonde) 10uF.

Mijn analyse van het probleem is echter het volgende. Bij een plotselinge belastingstap (10 → 700 mA) heeft de regellus van de buck converter een reactietijd van ongeveer 50–150 µs voordat de bijregeling effect heeft. Gedurende deze tijd moet de uitgangscondensator alle extra stroom leveren. Deze zijn 2 x 47uF, dus samen bijna 100uF. Echter: deze condensatoren zijn (basic type) X5R. Voor het weghalen van een rimpel op de voeding zakt bij X5R condensatoren de capaciteit met ruwweg 50%. Als je dan gedurende 100us opeens 700 mA trekt, dan zakt de voedingsspanning (V = i * t / C = 0,7 * 100us / 50uF) ongeveer 1,4V. Dat is voldoende om de EEPROM writes onbetrouwbaar te maken.

De oplossing zou dus eigenlijk best simpel moeten zijn: de capaciteit aan de uitgang van de step-down converter moet omhoog. Dat kan door het aantal X5R condensatoren (minimaal) te verdubbelen, en/of X7R types te nemen.

Groet
Aiko


Menno

  • Offline Offline
  • Berichten: 3456
    • Mijn van-alles website
Re: Yet Another Servo Decoder
« Reactie #52 Gepost op: Vandaag om 11:04:59 »
Het zal ook niet zo zijn dat de bootstrap-condensator alles veroorzaakt. Maar als die al anders aangesloten zit dan aanbevolen, ga ik al nauwkeuriger kijken naar de rest van het ontwerp.

Dat je bij een stroomverandering van 10 naar 700 mA zo'n enorme spanningsval ziet geeft aan dat er iets niet klopt: het datablad heeft een totale transient response van zo'n 200 uS, maar toont slechts een spanningspiek of dip van ongeveer 100 mV bij een stroomverandering van (zo lijkt het) 0 tot 2 Ampère en weer terug.

Als je ziet hoe jou spoel verbonden is met de rest van het IC, dan zie je een belangrijk verschil ten opzichte van de aanbeveling: bij de aanbevolen opmaak is de spoel het eerste wat de stroom tegenkomt, en de diode het laatste. Bij jou is niet alleen andersom, ook heb je gebruik gemaakt van lange banen. Let op dat lang relatief is: bij deze frequentie is de lengte al snel een bepalende factor in het regelgedrag.

Ook kan ik niet zien hoe je terugkoppel-aansluiting loopt, maar die moet niet onder de spoel door lopen, hoe verleidelijk dat ook is, ter voorkoming van beïnvloeding door inductieve koppeling.

Ander dingetje wat me eigenlijk net pas opvalt: wat een (fysiek!) grote spoel! Daar het IC een SOIC-behuizing betreft is de spoel echt gigantisch groot. Toen ik van m'n 50 kHz of iets dergelijks schakelende voeding naar een 150 kHz geval ging, werd de spoel significant veel kleiner.

De jouwe zit ruim veel hoger dan dat, dus ik vraag me af of de spoel wel voldoet.

X5R condensators probeer ik altijd te vermijden: hun gelijkspannings-gedrag is zo slecht, dat ik niet wil moeten narekenen of ze bij mijn toepassing wel voldoen.
Ik vind het bijzonder dat het datablad X5R noemt als uitgangscapaciteit, vaak zie ik 'use X7R or better'.

Een 50% reductie in capaciteit bij wegfilteren van rimpel kun je niet zomaar zeggen, omdat dat afhangt van de gebruikte condensator. Alles hangt van de maximale werkspanning af. Bij 12 Volt is een 25 Volt type vaak een slechte keus en bij 24 Volt is 50 Volt werkspanning vaak weer te weinig.
4 keer de nominale spanning is vaak een aardige vuistregel, maar die hanteer ik dan het liefst bij X7R.

Als je massa's gedeeld waren, is dat de beste verbetering denkbaar. Massa's dienen altijd gescheiden van elkaar te blijven tussen signaalverwerking en 'sterkstroom', om te voorkomen dat grote stromen de signaalverwerking beïnvloeden.

AP3737

  • Offline Offline
  • Berichten: 395
Re: Yet Another Servo Decoder
« Reactie #53 Gepost op: Vandaag om 18:26:42 »
Hallo Menno

Ik moet je gelijk geven dat mijn conclusie niet past bij hetgeen het datablad als meetresultaat laat zien. Het kan dus niet anders dan dat mijn berekening op een veel te grote dip uitkomen, en dat de werkelijke dip beduidend minder moet zijn. Mijn conclusie dat de dip het EEPROM write probleem verklaart, is dus op zijn minst voorbarig.

Wat betreft X5R condensatoren: uit de documentatie van TI’s evaluatie kit blijkt inderdaad dat ook bij hun metingen X5R is gebruikt. Bijzonder.

Je merkt ook terecht op dat de afmetingen van de door mij gebruikte spoel veel groter zijn dan in het datablad. De reden daarvoor is dat ik, toen ik de printplaatjes liet maken, ik gebonden was aan de componenten die JLCPCB in voorraad had. Sinds een tijdje kan je echter ook componenten bestellen bij externe leveranciers, zoals Mouser en Farnell. Ik zou dus nu de spoel kunnen vervangen door eentje die ook door TI wordt genoemd.

Over TI gesproken. Ik heb indertijd mijn ontwerp “bekeken” met TI webench designer tool. Ik probeer nu al sinds een paar dagen met die tool een simulatie te maken van een plotselinge verhoogd stroomverbruik. Helaas krijg ik steeds foutmeldingen in die tool als ik simulaties probeer uit te voeren. Misschien dat het jou wel lukt?

Zonder simulaties blijft niets anders over dan allerlei proefprintjes te maken om daar aan te meten (wat ik voor mijn hobby project te veel werk vind), of maar gewoon te proberen het zo goed mogelijk te doen. Dat is dus voor mij de logische weg, te meer omdat de huidige print en software prima samenwerken. Het zo goed mogelijk doen betekent wel dat ik, zoals je terecht opmerkt, ik nog eens goed naar mijn print layout moet kijken. Daarbij is het datablad natuurlijk een belangrijke leidraad, maar ook TI’s webench software, die ogenschijnlijk toch een andere lay-out voorstelt.

Ik zal er dus nog wat verder in moeten duiken om het zo goed mogelijk te doen.

Groet, Aiko

« Laatst bewerkt op: Vandaag om 18:28:42 door AP3737 »

bask185

  • Online Online
  • Berichten: 5111
Re: Yet Another Servo Decoder
« Reactie #54 Gepost op: Vandaag om 18:42:48 »
Kicad simulaties zijn wel nice. Je moet er wel even voor zitten. Ik heb zo een V -> I omzetter ontworpen en een betere CDU met constante laadstroom. Best leuk om te doen ook.

Het is alleen een kwestie van de juiste bestanden vinden voor je buckconverter. Je hebt natuurlijk een model nodig. Ik hoop dat je die kan vinden.

Wat betreft die spoelen. Op stage liet ik me ooit vertellen dat de spoel 2x de verwachtte stroom moest aankunnen. Als je een ontwerp maakte voor 1A zou die spoelen 2A gerate moeten zijn.

Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)