Liste der Anhänge anzeigen (Anzahl: 1)
RP6 mit RS232 verbinden ohne max232/pegelwandler?
Es geht darum: Ich hab eine 200Mhz/32MB Ram/Win98SE-Mühle OHNE USB Anschluss... Jetzt möchte ich gerne da drauf Programme für den RP6 schreiben und vor allem rüberladen
Für eine Kommunikation brauche ich ja folgende Verbindung:
RP6:---------------------------------------RS232:
Tx / Pin 3------>-------->------->----->RxD / Pin 2
Rx / Pin 2------<--------<-------<------TxD / Pin 3
MRESET / Pin 1----<-------<--------<--DTR / Pin 4
GND / Pin 9------------------------------GND / Pin 5
(--> zeigt auf den Empfänger der Daten)
ABER:
Der RP6 hat an seiner Schnittstelle 0-5V TTL-Pegel und die RS232 hat den -+12V Pegel
RP6:
0 = +5V
1 = 0V
RS232: (Je nach PC weichen die 12V um mehrere Volt ab)
0 = +12V
1 = -12V
(Aus https://www.roboternetz.de/phpBB2/ze...=usb+interface, Zitat von 'Pex': "Beim UART werden 0 und 1 mit +5V und 0V dargestellt, bei der RS232 mit etwa +12V und etwa -12V.
")
Um dieses Problem zu beheben kann man ja den max232 Pegelwandler benutzen, aber Versand- und Nachnamekosten von mehreren € sind für ein einziges kleines Bauteil, das man für 55Cent im Briefumschlag versenden könnte ja nicht gerade unerheblich
Jetzt weis ich aber nicht, ob die folgende Lösung funktioniert:
Von Tx nach RxD muss man ja so wandeln:
+5V ----> +12V
0V ----> -12V
Allerdings tut bei mir die RS232 auch bei 0V so als ob es -12 währen und schon bei 4.5V so als ob es 12 währen (mit weniger als 4.5V hab ich es nicht probiert), es ist also völlig überflüssig das zu wandeln.
Von TxD nach Rx und von DTR nach MRESET muss man so wandeln:
+12V -----> +5V
-12V ------> 0V
die -12V kriegt man ja einfach mit einer Diode auf 0V
Und die +12V leitet man dann in einen Spannungsteiler um auf +5V zu kommen (siehe Bild)
Und jetzt meine Fragen:
1. Funktioniert das ganze überhaupt??
2.Welche Widerstände?
R2=R1*(Uaus/(Uein-Uaus))
R2=R1*0,7143
Was ist denn gut? - große oder kleine Widerstände, bzw. wie klein/groß?
MFG
-schumi-
PS: ich bin auch für andere Schaltungen dankbar, die man mit Widerständen und logik ICs der SN 74er Reihe zu machen sind (habe immer 4 Gatter: AND, NAND, EXCLUSIVE OR, OR, NOR). Auch noch Transistoreren aus Radio unbekannten Typs vorhanden.
Liste der Anhänge anzeigen (Anzahl: 1)
Es funktioniert noch immer nicht..
Ich hab das mit den Transistoren so gemacht, dass -12V an RS232 zu +5V am RP6 werden und +12V an RS232 zu 0V am RP6 werden
Ausserdem wird Tx am RP6 bei 0V zu +5V an RS232 und +5V werden zu 0V
(Schaltung siehe angehängtes Bild)
Ich habe auch Festgestellt, das das MRESET-Signal nicht bei DTR sodern bei RTS gesetzt wird :-s
(hab dann auch DTR durch RTS ersetzt, aber es hat nichts geholfen)
liegt das daran, dass ich den Treiber auf der CD nicht installiert hab? Das ist doch eigentlich nur ein USB-treiber, also für den COM-Port nicht nötig, oder??
Auch im Loader langsamere Übertragungsgeschwindigkeit und Resetsignal invertieren einstellen hats nicht besser gemacht
(Aber es liegt nicht daran, das der Prog/Uart-Port kaputt währe, der funktioniert mit dem USB-Teil immer noch allerbestens)
Liste der Anhänge anzeigen (Anzahl: 1)
Versuche es mal so, beide R`s ca 1k8 Diode 1n4148...Dann die
Empfangenen und zu sendenden Daten mittels xor Verknüpfung
invertieren. Es kann sein das der R an tx vom µC entfallen kann/muß,
den habe (ich) dazu geplant die Originalschaltung war glaube ich
ohne. Das mit den PIC`s wo ich das so gemacht habe ist ca. 20 Jahre
zurück........
Daten = Daten xor 0Hff
Print Daten
b.z.w.
Input daten
daten = daten xor 0Hff
Print daten
Gruß Richard
Liste der Anhänge anzeigen (Anzahl: 1)
Juchu, es funktioniert! - fast zumindest..
Einen Schaltplan hab ich angehängt
Und das Resetsignal kommt defenitiv von RTS und nicht von DTR!
Die LED hat nur den Zweck anzuzeigen, ob der RP6 angeschlossen ist. Ausserdem hab ich noch einen Kondensator reingehängt um die Spannung ein wenig zu stabilisieren, es geht aber auch ohne
Ich kann:
- Programme starten/stoppen (über das Menü oder das Terminal)
- Lesen was mir der Roboter schickt
- Dem Roboter Eingaben senden (wie z.B. "s")
- Den Roboter resetten
Ich kann nicht:
- Die Controller-ID rauslesen (bzw. verbinden)
ABER:
Laut dem was ich kann müssen ja alle Leitungen korrekt funktionieren
Ausserdem brauche ich zum raufladen der Progs auch die Controller-ID. Damit er die kriegt muss ich die Übertragungsgeschwindigkeit auf LowSpeed stellen und RP6 im Resetmodus halten. Also so, dass auch auf dem Display nichts steht. Wenn ich dann ein Prog rübergeladen hab muss ich den Button zum Dauerresetmodus deaktivieren und wieder aktivieren um wieder eins rüberzuladen.
Wenn ich aber den RP6 im Resetmodus halte und dann auf Verbinden gehe sagt der Loader, dass die ID falsch ist!
Woran kann das liegen?!? Wenn ich ein Prog rüberlade kriegt er die ID ja auch!
Ausserdem währe es deutlich besser, wenn ich den Roboter nicht jedes mal wieder in den Dauerresetmodus bringes müsste..
MFG
-schumi-