Forum: Mikrocontroller und Digitale Elektronik RailCom-Sender von 5V auf 3,3V umstellen


von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Es geht um Modellbahnelektronik:

In RCN-217 (https://normen.railcommunity.de/RCN-217.pdf) wird das 
DCC-Rückmeldeprotokoll RailCom beschrieben. Hier kann eine Lok auf der 
Schiene kurze Datenpakete während sog. Cutouts senden. Cutouts sind 
Pausen mit einer Länge von einer halben Millisekunde, in welcher die 
Modellbahnzentrale nichts senden darf und daher die Schienen für kurze 
Zeit spannungsfrei sind.

Als Referenz wird in RCN-217 im Kapitel 2.2 "RailCom - Sender im 
Decoder" der angehängte Schaltplan verwendet. Dazu steht dann als 
Bemerkung:
1
Um eine '0' zu übertragen, muss der Decoder einen Strom I von 30+4/-6 mA liefern, bei einem Spannungsabfall am Gleis von bis zu 2.2 V. [...] Bei einer '1' darf der Strom I höchstens ± 0.1 mA betragen. Die Stromquelle des Decoders muss gegen unerwartete Fremdspannung am Gleis während des Cutout geschützt sein. 
2
[...]
3
4
Erläuterung zum Schaltbild:
5
 
6
Der RailCom-Teil besteht nur aus den Widerständen R1 bis R3 und den Transistoren T1A bis T2B. T1A und T1B bilden eine Stromquelle, T2A ist als Diode geschaltet und schützt die Stromquelle vor positiven Spannungen höher Vcc.
7
8
Alle anderen Teile der Schaltung gehören zur normal notwendigen Hardware des Decoders. Man beachte den äußerst geringen Hardwareaufwand für den RailCom-Sender.

Wie man leicht erkennen kann, handelt es sich hier um eine Schaltung für 
einen µC, der mit 5V arbeitet. Würde man hier einen STM32 (zum Beispiel 
als  BlackPill) einsetzen, dann hätte TXD einen Pegel von maximal 3,3V. 
Damit würde bei VCC = 5V, aber TXD = 3,3V dann T1A/T1B bereits zu leiten 
beginnen - was nicht erwünscht ist. Solange TXD high ist, muss die 
Stromquelle abgeschaltet sein.

Also muss man entweder einen Pegelwandler an TXD verwenden oder die 
ganze Schaltung auf VCC = 3,3V umbauen. In diesem Fall müsste man die 
Widerstände R1 bis R3 meiner Meinung nach auf 3,3/5 ihrer jetzigen Werte 
(E24) umrechnen, also:
1
R1 = 15 Ohm
2
R2 = 6,2 kOhm
3
R3 = 4,3 kOhm

Ist meine Überlegung richtig? Wie kommt man in RCN-217 eigentlich mit 
dieser Schaltung auf einen Strom von ca. 30mA? Der Rechenweg erschließt 
sich mir hier nicht.

: Bearbeitet durch Moderator
von Rainer W. (rawi)


Lesenswert?

Frank M. schrieb:
> Ist meine Überlegung richtig?

Probiere es in LTSpice aus.
QSPIC sollte auch funktionieren, habe ich aber noch nicht getestet.

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Rainer W. schrieb:
> Probiere es in LTSpice aus.

Ich hatte LTSpice tatsächlich gestern mal installiert und versucht, die 
Transistorschaltung zu erstellen. Aber ohne Praxiserfahrung mit LTSpice 
gestaltet sich das schwierig. Ich habe es noch nichtmals geschafft, die 
Transistoren in die richtige Richtung zu drehen oder zu spiegeln. Diese 
Funktionen waren immer deaktiviert.

Der resultierende Schaltplan sah danach natürlich gruselig aus. Leider 
habe ich es geschafft, mir die Anzeige durch irgendeinen blöden Klick 
wegzuschalten und dann überhaupt nichts mehr während der Simulation zu 
sehen. Ich denke, ich muss mir hier erstmal das nötige 
LTSpice-Basiswissen aneignen, bevor ich damit arbeite.

Also: Für mich ein mühseliges Unterfangen für ein derartiges triviales 
Problem.

Meine obige Überlegung, die Widerstände auf 3,3/5 zu reduzieren, war 
wohl falsch. Es müsste nämlich (3,3-0,7)/(5-0,7) sein - wegen des 
Spannungsverlustes von 0,7V an Silizium. So bin ich dann auch auf die 
obigen Widerstandswerte gekommen. Das hatte ich oben nicht angepasst - 
sorry.

: Bearbeitet durch Moderator
von Klaus R. (klara)


Lesenswert?

Frank M. schrieb:
> Also: Für mich ein mühseliges Unterfangen für ein derartiges triviales
> Problem.

Ich habe heute leider keine Zeit. Aber ich denke es könnte sich ein 
LTspice-Kenner noch heute mal Deiner Schaltung annehmen.
mfg Klaus

von Rainer W. (rawi)


Lesenswert?

Frank M. schrieb:
> Ich habe es noch nichtmals geschafft, die
> Transistoren in die richtige Richtung zu drehen oder zu spiegeln.

Die sind nur aktiv, wenn du das betreffende Bauteil "am Haken" hast. Du 
musst das Bauteil mit Move- oder Drag-Funktion greifen und dann sind 
auch die Buttons für Rotate- und Mirror-Funktion freigeschaltet und 
nutzbar.

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

R2 und R3 hast du richtig berechnet, R1 bleibt wie er war. R1 dient der 
Strombegrenzung auf etwa 30mA.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

H. H. schrieb:
> R2 und R3 hast du richtig berechnet, R1 bleibt wie er war.

Super, ich danke Dir!

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Dank den Hinweisen von hhinz versuche ich gerade, das nachzuvollziehen:

1. 5V Schaltung

Der Basisstrom von T1A beträgt (5V-0,7V)/10000 Ohm = 0,43 mA. Nehme ich 
hFE = 70 an, komme ich auf 70 x 0,43 mA = 30 mA. Typischerweise hat ein 
BC557 aber einen hFE von 125 bis 800. Angeblich wird der aber in 
Sättigung nie erreicht.

2. 3,3V Schaltung

Da R2 entsprechend angepasst wurde, ist der Basisstrom fast derselbe: 
(3,3V-0,7V)/6200 Ohm = 0,42 mA. Mit einem hFE von 70 kommt man ebenso 
auf die 30mA.

Ist meine Rechnung/Annahme dazu richtig? Mich verwirrt, dass hier R1 
keine Rolle spielt...

: Bearbeitet durch Moderator
von Rainer W. (rawi)


Lesenswert?

Frank M. schrieb:
> Der Basisstrom von T1A beträgt (5V-0,7V)/10000 Ohm = 0,43 mA.

Du hast den Spannungsabfall an R1 übersehen. Der Basisstrom von T1A bei 
TX=0V beträgt etwa (VCC - U_BE - I_E*R1)/R2.

: Bearbeitet durch User
von Andreas B. (abm)


Angehängte Dateien:

Lesenswert?

Bei mir geht's so problemlos (VCC = +5V, RailCom direkt vom STM32G030).

von Rainer W. (rawi)


Angehängte Dateien:

Lesenswert?

Rainer W. schrieb:
> Der Basisstrom von T1A bei
> TX=0V beträgt etwa (VCC - U_BE - I_E*R1)/R2.

I_C von T1B fehlt da noch, sorry.

Frank M. schrieb:
> RailCom-Sender.png

Im Anhang zum RCN-217-Sender die Grundfunktion in LTSpice (ungetestet, 
Versorgung Sender nicht aus Gleis)

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Rainer W. schrieb:
> Die sind nur aktiv, wenn du das betreffende Bauteil "am Haken" hast. Du
> musst das Bauteil mit Move- oder Drag-Funktion greifen und dann sind
> auch die Buttons für Rotate- und Mirror-Funktion freigeschaltet und
> nutzbar.

Alternativ Strg+r zum Drehen und Strg+e zum Spiegeln, während man das 
Bauteil "am Haken" hat.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Andreas B. schrieb:
> Bei mir geht's so problemlos (VCC = +5V, RailCom direkt vom STM32G030).

Danke, das gefällt mir ganz gut. Sind die Werte für die Widerstände 
empirisch ermittelt?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Rainer W. schrieb:
> Im Anhang zum RCN-217-Sender die Grundfunktion in LTSpice

Vielen Dank für Deine Arbeit. Ich bekomme leider beim Start der 
Simulation einen Fehler: "Undefined model "bc857bt116". Q§T1A N004 N002 
N001 0 BC857BT116".

Ich habe dann im Netz gesucht und habe eine Datei "Transistor (BJT) 
Master Table - Automotive.spice.txt" gefunden. Diese habe ich auf 
verschiedene Art und Weise per ".include ..." versucht einzubinden - mit 
dem Resultat, dass immer wieder andere Fehlermeldungen auftauchten. 
LTSPICE ist tatsächlich für Anfänger nicht gerade einfach zu bedienen...

von H. H. (hhinz)


Lesenswert?

Frank M. schrieb:
> Ich bekomme leider beim Start der
> Simulation einen Fehler: "Undefined model "bc857bt116". Q§T1A N004 N002
> N001 0 BC857BT116".

Dann fehlt der eben bei dir. Nimm einfach BC327-40.

von Andreas B. (abm)


Lesenswert?

Frank M. schrieb:
> Danke, das gefällt mir ganz gut. Sind die Werte für die Widerstände
> empirisch ermittelt?

Jein, erst per Simulation und dann real getestet.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

H. H. schrieb:
> Dann fehlt der eben bei dir. Nimm einfach BC327-40.

Danke, das hat geholfen. Jetzt kann ich tatsächlich mit den Werten 
spielen und auch sehen, was dann passiert. Ich denke, ich werde mich 
doch noch mit LTSPICE anfreunden.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Andreas B. schrieb:
> Jein, erst per Simulation und dann real getestet.

Die scheinen ganz gut zu passen. Mit 20 Ohm als Serienwiderstand kommt 
man sogar noch näher an 30mA heran. Dein Trick, die beiden 
Transistor-Pärchen zu vertauschen und damit VCC = 5V zu ermöglichen, 
gefällt mir sehr gut.

Vermutlich setzt Du ein STM32G030-Modul ein, wie es WeAct anbietet?

von Andreas B. (abm)


Lesenswert?

Nein, einen "nackten" G030 im 32-pin LQFP, sonst wär's zu teuer und viel 
zu groß. 30mm*16mm ist das Limit für PluX22.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Andreas B. schrieb:
> Nein, einen "nackten" G030 im 32-pin LQFP

Du machst mich neugierig. Ist Deine Schaltung zum Decoder öffentlich 
einsehbar?

P.S.

Wenn ich mir Deine Schaltung nochmal ansehe, ist "RailCom" ein 
invertiertes TXD-Signal, oder?

: Bearbeitet durch Moderator
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
Noch kein Account? Hier anmelden.