Hallo Forumgemeinde, ich suche nach einer Lösung für ein Problem, dass mich seit einer Woche nicht weiter kommen läst! Es gibt sicherlich im Web einen Lösungsansatz, aber meine bisherigen Rechergen ergaben keine brauchbare Lösung. Ich plane eine analog/digital Steuerung für meine Modellbahn (H0). Kurz ein paar Fakten zur Realisierung: Kommunikation über einen Multimaster Bus (RS485) PC sendet Kommandos an am Bus beteiligte µC (Atmega...) Die µC senden Statusänderungen an den PC zurück (Gleisbelegtmeldungen) Über die µC werden Weichen, Signale sowie auch mit PWM modulierte Fahrspannungen an das Gleis geschaltet. (Fahrstrassen) Die Anlage ist in viele einzelne Blöcke aufgeteilt. Jeder Block ist aufgeteilt in Fahrbereich, Brems/Beschleunigungsbereich und Haltebereich. Die versorgung der Bereiche geschieht über einen PWM-Fahrregler. Die Bereiche sind nur für die Rückmeldung der Zugpossition im Block vorhanden. Die Geschwindigkeitsregelung wird dann jeweis vom PC über den µC gesteuert. Soweit erst einmal zur Theorie! Die Buskomunikation ist (Protokoll & Harsware) sind soweit fertig! Die Gleisbestztmeldung ist auch schon fertig geplant. Das schalten von Weichenservos ist auch fertig. Mir bereitet nur der Fahrregler Probleme. In einem Block kann maximal nur ein Zug verkehren. Das bedeutet das der Regler nur den Strom für einen Lok am Block bereitstellen muß. Ich denke mal 1,5 - 2 A müssten ausreichend sein. Ich habe mir einige H-Brücken angesehen, da diese zum einen die Möglichkeit bieten, PWM auf die Fahrspannung zu modulieren, als auch ein Drehrichtungswechsel am Motor vorzunehmen. Es gibt viele H-Brücken in dem Strombereich. Welche H-Brücke ist hier von Vorteil? Kann ich das überhaupt mit einer H-Brücke realisieren? Wie sieht es mit der Strombegrenzung aus? Und zu guter letzt: Was passiert wenn ich von einem Block in den anderen fahre? Die Software übergit die Fahrparameter (Tastverhältnis, Zugnummer, Fahrtrichtung) an den nächten in der Fahrstrasse befindlichen Block. Somit ist das Tastverhältniss zweier aufeinander folgender Blöcke gleich. Kommte es dennoch zu kurzschlüssen etc. beim wechsel in den nächsten Blog? Da ich auf diesem Gebiet keinerlei Ahnung habe (TTL-Bastler u. Programmierer) wäre ich über ein paar Lösungsansätze oder Schaltungen dankbar. Wie muss ich hier vorgehen?? Danke schon mal im vor raus!!! Grüße aus Thüringen Tino
Kurzschlüsse dürfte es geben, ich habe aber bei meiner Modellbahn gesehen, dass die Transistoren das nicht so kritisch sehen, weil die Kurzschlüsse nur sehr kurz andauern. Allerdings ist meine Steuerung analog. Das mit der H-Brücke kannst du machen. Wenn du sowieso einen uC verwendest, kannst du damit den Strom über einen Shunt Widerstand messen. Die H-Brücke kannst du aus 4 FETs und 2 Treibern wie IR2110 bauen oder ein fertiges IC nehmen, je nachdem wie es dir lieber ist. Ebenfalls Grüße aus Thüringen :-)
Hallo Max, danke für die schnelle Antwort! Das hört sich ja schon mal gut an! Hast Du mirvielleicht ein Schaltungsbeispiel dazu? Gibt es dafür einen fertigen H-Brücken Baustein, oder muss ich das generell über einzelne FETs realisieren? Kannst Du mir das mit den Shunt-Widerständen noch genauer erklären? Danke schon mal und nochmal Grüße aus Thüringen (IK) Tino
Der Klassiker wäre der L298, aber da gibt es bestimmt bessere Alternativen kannst ja mal nach "PWM Motortreiber IC" suchen. Zu dem IC guckst du dir dann die Beispielbeschaltung im Datenblatt an und bastelst dir daraus was eigenes. Der Shunt Widerstand ist ein Hochlastwiderstand mit 0,01-0,1 Ohm, den du zwischen GND und deine Vollbrücke hängst. Proportional zum Strom fällt an dem dann eine Spannung ab, die du mit deinem uC auswerten kannst. Das ist hier im Forumswiki alles ganz gut beschrieben. Grüße
Tino Engelmann schrieb: > Und zu guter > letzt: Was passiert wenn ich von einem Block in den anderen fahre? Die > Software übergit die Fahrparameter (Tastverhältnis, Zugnummer, > Fahrtrichtung) an den nächten in der Fahrstrasse befindlichen Block. > Somit ist das Tastverhältniss zweier aufeinander folgender Blöcke > gleich. Kommte es dennoch zu kurzschlüssen etc. beim wechsel in den > nächsten Blog? Kurzschlüsse sind ein Thema. Dafür gibt es rückstellende PTC-Sicherungen. Diese sind in beide (!) Zuleitungen von der H-Brücke zum Gleis hin einzuschleifen. Aber es gibt noch ein anderes Thema: Wenn die PWMs aller beteiligten Fahrregler nicht miteinander synchron laufen, "springt" der Zug von einem Block in den anderen, da im Moment des Überfahrens die Radsätze mit gegeneinander verschobenen Pulsweiten beaufschlagt werden können. Du musst also bei allen Fahrreglern absolute Phasengleichheit der PWM sicherstellen, als auch das gleiche Tastverhältnis bei einer gerade gelegten Fahrstrasse. Wenn Du das beachtest, funktioniert die Sache tadellos.
Hallo und Danke für die schnelle Hilfe! Wenn ich mir den Beitrag von Knut so ansehe wird mir klar, dass ich diese Art von Fahrstrassensteuerung mit meiner geplanten Hardware am Bus nicht funktionieren wird. Es ist mir zwar möglich das Tastverhältnis synchron zu übertragen, aber bei der PWM-Sync. werde ich Probleme bekommen.Eine andere Idee wäre, jeder Fahrstrasse einen Fahrregler zuzuweisen. Somit ist in der Fahrstrasse die Pwm und auch das Tastverhältnis in allen Blöcken syncron. Da ich ja für jede Zufahrt eine Fahrstrasse mit Start und Ziehlpunkt stelle, kann diese Fahrstrasse von einem einzigen Regler bedient werden. Wie ich das Schaltungstechnisch bewerkstelligen soll weiß ich noch nicht. Die Regler werden wohl zentral angeordnet um den Fahrstrom auf der Anlage zu verteilen. Jetzt werden mir auch die Vorteile einer Digitalsteuerung mit Lokdecoder deutlich!!!!! Vielleicht entscheide ich mich auch noch um. Projekte wie OpenDCC zusammen mit Rocrail schreien förmlich danach nachgedacht zu wenden. Was habt Ihr dafür eine Meinung????? Gruss Tino
Tino schrieb: > mit meiner geplanten Hardware am Bus > nicht funktionieren wird. Es ist mir zwar möglich das Tastverhältnis > synchron zu übertragen, aber bei der PWM-Sync. werde ich Probleme > bekommen. Wir haben das seinerzeit so gelöst, dass ein Masterregler einen Sync-Puls ausspuckt, der zu seiner PWM synchron ist. Dieser Puls wird von Slave-Reglern zur Timersynchronisation für ihre PWM herangezogen, weiß gar nicht mehr aber ich glaube 1x pro ms werden die Phasen verglichen und es wird nachgeregelt.
Tino schrieb: > Jetzt werden > mir auch die Vorteile einer Digitalsteuerung mit Lokdecoder > deutlich!!!!! Naja - die Nachteile liegen darin, dass sich eben nicht alle (alten) Modelle auf diese Technik umrüsten lassen. Im Mischbetrieb kann dann nur mit Blocksteuerung gefahren werden. Dies ist halt einzelfallabhängig und wird durch die Anzahl und das Alter der Leute und durch das Material bestimmt, welches da ausgerüstet werden soll.
Tino schrieb: > Was habt Ihr dafür eine Meinung????? Ich hab mir sowas vor über 20 Jahren auch mal gebaut. 128 Kanäle, 64 Stufen. War ein Riesen-TTL-Grab, das die Fahrdaten aus einem RAM mit einem Zählerstand verglichen und dann über 595er rausgeschoben hat. Die haben dann gemeinsam ihren Latch bekommen und alles war synchron. Also keine Überfahrproblematik. Und natürlich NF-Einspeisung für die Beleuchtung. Irgendwann habe ich dann alles auf Lokdekoder umgerüstet und das Gerät vor ein paar Jahren entsorgt. Ich würde sowas nicht nochmal bauen. Aber das kann man auch erst sagen, wenn man das schon mal gemacht hat. Die Riesenkiste konnte man alleine kaum tragen. War schon geil. Mit einem AVR schafft man vielleicht nicht ganz soviel Kanäle. Aber schwierig ist das nicht. Spart vor allen jede Menge Bauteile. 1 kleiner AVR, 2*8 595er 64 Kanäle, 64 Stufen
1 | unsigned char nFahr[64]; |
2 | unsigned char nDir[64]; |
3 | unsigned char nPwm; |
4 | |
5 | while(1) |
6 | {
|
7 | nPwm = 0; |
8 | while(nPwm < 64) |
9 | {
|
10 | for(unsigned char nInd = 0; nInd < 64; nInd++) |
11 | {
|
12 | if(nFahr[nInd] > nPwm) PortPinF = 1; else PortpinF = 0; |
13 | if(nDir[nInd]) PortpinD = 1; else PortpinD = 0; |
14 | ShiftOut(); |
15 | }
|
16 | LatchUp(); |
17 | nPwm++; |
18 | }
|
Mal so aus dem Ärmel geschüttelt. Aber das müsste gehen. mfg.
Hi Ich denke gerade selbst über sowas nach (allerdings Spur N). Die Ströme bewegen sich bei mir sicher unter 1A, so dass ich den derzeit den Si9986 als H-Brücke favorisiere. Von der Messung der Stromaufnahme via Shunt bin ich derzeit etwas abgekommen und experimentiere mit der Back EMF Methode: http://ww1.microchip.com/downloads/en/AppNotes/00905B.pdf Man schaltet die PWM kurzzeitig (zweistellige Millisekunden soweit ich mich erinnere) aus und misst die von der Lok induzierte Spannung im Leerlaufbetrieb der H-Brücke. Vorteil: Weniger Verluste, Messergebnis ist proportional zur Geschwindigkeit (unabhängig von Zuglänge und Steigung). Dass man die PWM Signale synchronisieren muss, davon gehe ich derzeit fest aus. Oliver
Hallo nocheinmal an alle und danke für die Antworten. sorry das ich mich erst jetzt melde, ich war zur Weiterbildung im Schwabenländle. Wäre es evtl. eine Mögichkeit eine Art Master-Takt an alle Slaves zu verteilen und diese per Software-PWM an die einzelnen Regler weiter zu leiten? Somit wäre der PWM-Takt ert einmal syncron. Ich liebäugel aber weiterhin mit einer Digitalsteuerung (OpenDCC). In Verbindung mit Rocrail wäre das eine gelungen Sache und erspart mir viel Programmierarbeit! Habt ert einmal vielen Dank für die fachkundige Hilfe! Gruß aus dem verschneiten Thüringen! Tino
Tino Engelmann schrieb: > Wäre es evtl. eine Mögichkeit eine Art Master-Takt an alle Slaves zu > verteilen und diese per Software-PWM an die einzelnen Regler weiter zu > leiten? > Somit wäre der PWM-Takt ert einmal syncron. Der Master-Takt kann deutlich langsamer als die PWM selbst sein. Die Slaves synchronisieren sich sozusagen weich auf die Phase. Das kann man über kleine Additionen/Subtraktionen im Timer selbst machen oder gar über das OSCCAL-Register.
Hallo Knut, kannst Du mir das vieleicht noch ein wenig genauer erläutern. Ich weiß immer noch nicht genau wie ich den PWM-Takt an den Slaves syncronisieren soll! Da ich aus der Basic-Ecke komme, habe ich bislang die µC mit Bascom Programmiert, aber ich glaube mich gut mit der µC Hardware und deren Beschaltung vertraut gemacht zu haben. Ich brauche hier noch ein wenig Starthilfe!! Gruß Tino
Tino Engelmann schrieb: > Ich weiß > immer noch nicht genau wie ich den PWM-Takt an den Slaves syncronisieren > soll! Der Master gibt Phasengenau zum Start seines PWM-Timers ein Signal. Das kann auch eingeradzahliger Teiler sein. Wichtig ist nur, dass die Phase des Signalanstiegs genau mit Timerwert "0" zusammenfällt. Die Slaves sehen dieses Signal und vergleichen die Abweichung ihres eigenen Timers mit dem Signal. Durch Eintragen von Korrekturwerten in die Timerregister oder durch manipulieren von OSCCAL (wenn der Controller mit internem R/C läuft) wird die Abweichung schritweise aufgehoben. Dadurch laufen die PWMs nach kurzer Zeit synchron. Viele ATMEGAs unterstützen das Betreiben mit Uhrenquarz. Wenn dieser den R/C-Oszillator des Masters kalibriert, laufen alle Regler über diese Basisfrequenz. Somit hast Du dann auch genaue UART-Frequenz.
Knut Ballhause schrieb: > Der Master gibt Phasengenau zum Start seines PWM-Timers ein Signal. Das > kann auch eingeradzahliger Teiler sein. Wichtig ist nur, dass die Phase > des Signalanstiegs genau mit Timerwert "0" zusammenfällt. Die Slaves > sehen dieses Signal und vergleichen die Abweichung ihres eigenen Timers > mit dem Signal. Vielleicht habe ich mal wieder was falsch verstanden... So wie ich das hier rauslese, lässt sich damit die Frequenz des Timers kalibrieren. Wenn das so ist, dann reicht das aber nicht. Die 'PWM-Perioden' müssen in allen Slaves gleichzeitig starten!
Ralf G. schrieb: > Wenn das so ist, dann reicht das aber nicht. Die > 'PWM-Perioden' müssen in allen Slaves gleichzeitig starten! Ist doch logisch. Wenn alle Timer bei "0" synchronisieren, sind die einzelnen PWM phasengleich zueinander, und zwar an der führenden Flanke. Der PWM-Wert im OCR-Register generiert dann die 2. Flanke, die dann bei den Reglern einer Fahrstraße ebenfalls an der gleichen Position sein muss.
Guten Tag ... @Oliver: bitte die späte Meldung zu entschuldigen ! Der Si9986 ist (laut Datenblatt) für max. 13.2V ausgelegt. Somit ist Vorsicht bei der Kombination mit "amtlichen" Digitalsteuerungen geboten, da dort (soweit ich weiß) höhere Spannungen möglich sind. Zugausfälle sind beim "großen Vorbild" mittlerweile zum Alltag geworden, qualmende Decoder sind doch etwas viel "Modelltreue". Liebe Grüße Martin
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.