Guten Tag zusammen,
ich grüble momentan über mein anstehendes Projekt. Vorweg: Ich steige
grade erst in den Bereich der Elektrotechnik ein und habe keine
Ausbildung in der Richtung.
Ich kann zwar löten und bin nicht auf den Kopf gefallen, aber dennoch
gibt es Dinge und Begriffe die ich einfach nicht kenne.
Im Zusammenspiel mit einem 30 Jahre alten Steuergerät hab ich folgende
Situation:
Ich spreche das Steuergerät mit einem RS232RL USB Adapter an (später mit
einem Arduino Mega), das ganze läuft auf 5V. RX, TX und GND sind klar,
baud ist 62500.
Das Steuergerät kann in einen Bootstrap-Modus versetzt werden. Dazu muss
man 12V auf RX geben. Danach kann ich mit dem Steuergerät reden und
unter anderem den EEPROM neu beschreiben, das muss dann mit 20V in den
EEPROM "eingebrannt" werden, auch wieder über RX.
Ja, was passiert also wenn ich 12V auf RX gebe, während der FTDI Adapter
angeschlossen ist? Es stinkt und eine Rauchfahne steigt aus dem IC vom
Adapter auf. Überraschung.
Wie löse ich das? Ich habe gelesen, dass Zener-Dioden für sowas benutzt
werden, aber die Sperren erst ab z.B. 20V wirklich. In meiner Situation
soll der Pegel ja 5V nicht übersteigen. Oder einfach eine 5V Zener-Diode
und gut? Sperrt die dann noch bei 20V?
Funktioniert die Serielle Kommunikation über eine Zener-Diode noch?
Liebe Grüße
@ IceFiesta (Gast)
>Das Steuergerät kann in einen Bootstrap-Modus versetzt werden. Dazu muss>man 12V auf RX geben. Danach kann ich mit dem Steuergerät reden und>unter anderem den EEPROM neu beschreiben, das muss dann mit 20V in den>EEPROM "eingebrannt" werden, auch wieder über RX.
Very old school ;-)
>Wie löse ich das?
Durch eine passende Begrenzerschaltung bzw. Pegelwandler.
Im einfachsten Fall durch einen ausreichend großen Vorwiderstand, sagen
wir 10k. Der macht bei den üblichen Baudraten keine großen Probleme. Bei
20V am Eingang fließen maximal 2mA in die Klemmdioden des FT232 oder
sonstigen ICs.
> Ich habe gelesen, dass Zener-Dioden für sowas benutzt>werden,
Ja, das geht auch.
> aber die Sperren erst ab z.B. 20V wirklich.
Nein, das hast du falsch verstanden. Siehe Pegelwandler. Du brauchst
eine 5,1V Z-Diode.
>In meiner Situation>soll der Pegel ja 5V nicht übersteigen. Oder einfach eine 5V Zener-Diode>und gut?
Nein.
Mir ist kein EEPROM bekannt, der zum Schreiben 20V braucht. Nur EPROM
brauchten ne hohe Spannung, z.B. 27V der 2716.
Am besten öffne das Gerät und sage, welche ICs da verbaut sind.
Hey ihr drei, cool dass ihr so schnell antwortet.
RX ist auf das Steuergerät bezogen, also Dateneingang vom Steuergerät.
Ich hab vergessen zu erwähnen, während 12V fürs Bootstrappen oder 20V
fürs brennen anliegen, findet keine serielle Kommunikation statt.
>>In meiner Situation>>soll der Pegel ja 5V nicht übersteigen. Oder einfach eine 5V Zener-Diode>>und gut?>Nein.
das verwirrt mich etwas.
kann ich dann nicht genau das machen?
die 5.1V Diode sollte alles über 5.1V blocken, oder?
Doch, zumindest zum brennen müssen 20V an RX angelegt werden, was das
Steuergerät damit im Endeffekt macht, keine Ahnung.
@ Vorname Nachname (icefiesta)
>RX ist auf das Steuergerät bezogen, also Dateneingang vom Steuergerät.
An dem ist der Datenausgang (TX) von deinem USB-AURT Wandler
angeschlossen. Dann geht das nicht so einfach mit dem Pegelwandler.
>Ich hab vergessen zu erwähnen, während 12V fürs Bootstrappen oder 20V>fürs brennen anliegen, findet keine serielle Kommunikation statt.
Dann ist es einfach. Nimm ein Relais mit Umschaltkontakt, welches den
TX-Ausgang deines USB-UART Wandlers zwischen dem Datensignal und den
12/20V umschaltet. Da kommt sich nix in die Quere.
>kann ich dann nicht genau das machen?>die 5.1V Diode sollte alles über 5.1V blocken, oder?
Nö, der Stromfluß durch die Diode steigt über 5,1V stark an. Darum
brauchen derartige Klemmschaltungen immer eine Strombegrenzung, im
einfachsten Fall einen Vorwiderstand.
>Doch, zumindest zum brennen müssen 20V an RX angelegt werden, was das>Steuergerät damit im Endeffekt macht, keine Ahnung.
Den EPROM programmieren.
Alles klar, dann weiß fast ich wie ichs mache.
Für 12V/20V kann ich ja dann noch ein Relais vor dem einen Eingang des
Relais mit RX und 12V/20V machen oder?
Oder gibts da 3-Fach Umschalter?
Gibts konkrete Relais die ihr empfehlen könnt?
Falk B. schrieb:>> RX ist auf das Steuergerät bezogen, also Dateneingang vom Steuergerät.>> An dem ist der Datenausgang (TX) von deinem USB-AURT Wandler> angeschlossen. Dann geht das nicht so einfach mit dem Pegelwandler
Ok, was spricht dann gegen eine Diode in der Leitung die die 20V in
Gegenrichtung sperrt? Ggf Schottky wegen des Spannungsabfalls.
Hallo zusammen,
ich muss zugeben, dass ich die Zeichnung von Falk nicht ganz verstehe,
aber das geht in die richtige Richtung denke ich. Ich habe allerdings
keine 24V in meinem Fall. Ich habe lediglich 12V DC von der Autobatterie
und Masse.
Mit einem MC33063A könnte man die 12V hochtransformieren, so macht es
zumindest der Hersteller in seinen Geräten.
Ich habe das jetzt mit dem Relais ausprobiert, aber das funktioniert
nicht.
Über den FTDI Adapter kann ich mit einem Tool den EPROM auslesen,
allerdings nur wenn ich fräulein vom Amt spiele.
Also beim Steuergerät:
12V auf RX
12V auf Zündung
Kabel zu RX schnell umstecken auf TX vom FTDI-Adapter.
Tool liest EPROM erfolgreich aus.
Schließe ich 12V, RX vom Steuergerät und TX vom adapter direkt an das
Umschaltrelais funktioniert das nicht, das Tool erkennt keinen
Handshake.
Ich verwende keine Wiederstände für RX (vom Steuergerät) gegen masse.
Sowohl bei den 12V als auch beim Adapter.
Ich kann jetzt eigentlich nur vermuten, dass das Relais zu schnell
umschaltet und dann irgendwie nur quatsch passiert. Aber eine wirkliche
Idee hab ich nicht...
Vielleicht sollte ich einen eigenen Thread erstellen um das Gesamte
Szenario zu schildern?
@Vorname Nachname (icefiesta)
>ich muss zugeben, dass ich die Zeichnung von Falk nicht ganz verstehe,
Hmm.
Mit dem Steuereingang PROGRAM wird zwischen normalem UART-Betrieb und
Programmierspannung auf dem TX Ausgang umgeschaltet. 5-10V sind OK.
Mit dem Steuereingang 12V wird zwischen 12V und 20V Programmierspannung
umgeschaltet.
UART-TX ist der TX Ausgang deines FT232.
>keine 24V in meinem Fall. Ich habe lediglich 12V DC von der Autobatterie>und Masse.>Mit einem MC33063A könnte man die 12V hochtransformieren, so macht es>zumindest der Hersteller in seinen Geräten.
Genau.
>Ich habe das jetzt mit dem Relais ausprobiert, aber das funktioniert>nicht.
Was geht denn nicht?
>Über den FTDI Adapter kann ich mit einem Tool den EPROM auslesen,>allerdings nur wenn ich fräulein vom Amt spiele.
Was heißt das genau?
>12V auf RX>12V auf Zündung>Kabel zu RX schnell umstecken auf TX vom FTDI-Adapter.
Aua.
>Tool liest EPROM erfolgreich aus.
Dann ist dein Tool Murks oder es fehlt eine Hardwareverbindung.
Möglicherweise wird eines der anderen Steuersignale RTS/CTS dafüür
verwendet.
>Schließe ich 12V, RX vom Steuergerät und TX vom adapter direkt an das>Umschaltrelais funktioniert das nicht, das Tool erkennt keinen>Handshake.
Da fehlt irgendwie die Masseverbindung. Mach doch mal ein Bild von
deinem Aufbau sowie einen vernünftigen Schaltplan.
>Vielleicht sollte ich einen eigenen Thread erstellen um das Gesamte>Szenario zu schildern?
Dieser Thread ist dafür absolut ausreichend. Aber mehr Infos sind
notwendig.
Hey,
so hier der Aufbau.
Bild 1 ist ohne Relais, bei dem ich von Hand umstecke.
ich beziehe mich bei RX und TX immer auf das Steuergerät, damit es nicht
zur Verwirrung kommt.
Der Prozess für den Bootstrap sieht so aus:
12V und Masse sind ans Steuergerät angeschlossen.
Grünes Kabel (RX) auf 12V.
Gelbes Kabel (Zündung) auf 12V.
Grünes Kabel schnell aus 12V ausstecken und beim entsprechenden Port für
den TFDI-Adapter einstecken (Innerhalb 1-2Sekunden).
Steuergerät sendet Bootstrap-Acknowledgement.
Programm sendet über Serielle Verbindung Code ins Steuergerät.
Steuergerät gibt Inhalt des EPROMS aus.
Soweit so gut, es funktioniert auch blendend, solange ich mit hand
umstecke. Heute noch bei zwei Steuergeräten getestet, hat funktioniert.
So, auf Bild 2 schleife ich die RX Leitung einmal durch das Relais durch
und habe dann am Relais noch 12V angeschlossen.
Ist das Relais stromlos, ist die Serielle Verbindung geschlossen.
Bekommt das Relais Strom, gehen 12V auf RX vom Steuergerät.
Ich hab schon versucht das Relais einfach mit hand zu schalten, sprich
im richtigen moment umzuschalten, aber selbst das funktioniert nicht.
Die Versorgung vom Relais zum Steuern erfolgt über den Arduino 5V und
Optokopplern.
@Vorname Nachname (icefiesta)
>Bild 1 ist ohne Relais, bei dem ich von Hand umstecke.>ich beziehe mich bei RX und TX immer auf das Steuergerät, damit es nicht>zur Verwirrung kommt.
gut
>Grünes Kabel schnell aus 12V ausstecken und beim entsprechenden Port für>den TFDI-Adapter einstecken (Innerhalb 1-2Sekunden).>Steuergerät sendet Bootstrap-Acknowledgement.>Programm sendet über Serielle Verbindung Code ins Steuergerät.>Steuergerät gibt Inhalt des EPROMS aus.
Das klingt so, als ob das Steuergerät ein "Leg mal los" Zeichen vom
USART erwartet, was nur logisch ist, denn es muss ja erstmal den Befehl
bekommen, seine Daten zu senden. Das macht es nicht dauerhaft.
>So, auf Bild 2 schleife ich die RX Leitung einmal durch das Relais durch>und habe dann am Relais noch 12V angeschlossen.
An den RICHTIGEN Anschlüssen? Hmm, auf deinem Bild sieht das OK aus.
>Ist das Relais stromlos, ist die Serielle Verbindung geschlossen.>Bekommt das Relais Strom, gehen 12V auf RX vom Steuergerät.
So wie du es manuell gemacht hat.
>Ich hab schon versucht das Relais einfach mit hand zu schalten, sprich>im richtigen moment umzuschalten, aber selbst das funktioniert nicht.
Ich vermute, daß beim manuellen Umstecken ein Break-Signal generiert
wird, d.h. dein RX Signal ist für deutlich mehr als 1 Zeichen
Übertragungszeit auf LOW. Das Break erkennt das Steuergerät und sendet
dann. Also musst du das nachbilden. Siehe Anhang. Da du einen Arduino
hast, kannst du die beiden Relais natürlich direkt ansteuern und braucht
den Taster und die Dioden und so weiter nicht, du musst nur die Kontakte
gleich verschalten und ein minimales Programm schreiben.
beide Relais einschalten
1s warten
K1 ausschalten
100ms warten
K2 ausschalten
Damit bildest du deinen manuellen Vorgang nach.
>Die Versorgung vom Relais zum Steuern erfolgt über den Arduino 5V und>Optokopplern.
Jaja, der übliche China-Unsinn ;-)
Tag zusammen,
danke für die Zeichnungen, ich werde mich die Tage damit weiter
auseinandersetzen. Leider hab ich es irgendwie geschafft wieder mal den
FTDI chip zu zerstören. Gott sei dank ist dem USB Anschluss nichts
passiert.
Ich habe mit einem geschrieben, der etwas ähnliches im Bezug auf das
Steuergerät schon gebaut hat, er hat den FTDI mit einer 5V Zener-Diode
und einem Pullup-Resistor geschützt. Wie könnte das aussehen? Mir fehlt
da die Idee und das Verständnis.
Liebe Grüße
@Vorname Nachname (icefiesta)
>Ich habe mit einem geschrieben, der etwas ähnliches im Bezug auf das>Steuergerät schon gebaut hat, er hat den FTDI mit einer 5V Zener-Diode>und einem Pullup-Resistor geschützt. Wie könnte das aussehen? Mir fehlt>da die Idee und das Verständnis.
Frag IHN doch!