PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 über serielle Verbindung



mexxmilian
27.11.2007, 00:07
hallo zusammen, ich habe heute mehr als4 stunden Zeit investiert, leider Erfolgslos, und zwar ich wollte mein RP6 direkt über den UART Schnittstelle an meinem seriellen Port am PC verbinden..ich habe die originale Loader Software von RP6 benutzt,leider keine Verbindung, ich habe RxD und TxD getauscht, hat nix gebracht, entweder habe ich ein Denkfehler gemacht, oder den RP6 hat gar keine serielle chnittstelle, oder bin ich doof dafür, ich habe die wichtigsten Signale eigentlich auf der Platine gefunden, GND - VDD - TxD - RxD...

wie geht das? habt ihr geschafft über serielle Port den RP6 zu steuern, oder eine Verbindung aufzubauen.. ist UART gleich RS232?? vielen Dank

SlyD
27.11.2007, 00:50
Hallo mexxmilian,

> GND - VDD - TxD - RxD...

Du hast RESET nicht an DTR angeschlossen...

Die serielle Schnittstelle vom RP6 braucht ausserdem (wie bei Mikrocontrollern halt üblich) 5V TTL Pegel. Also nicht ohne Pegelwandler an den PC ranhängen!
Das RP6 USB Interface verwendet natürlich auch 5V TTL Pegel.

MfG,
SlyD

PeX
28.11.2007, 02:45
Hallo mexximilian


ist UART gleich RS232??

Im Prinzip ja, aber nicht ganz genau. Von der Softwareseite ja, auch von den Parametern her (Baudrate, 7 oder 8 Bits, Kontrollbit(s), Parity), und auch TxD ist TxD und RxD ist RxD. Unterschiedlich sind, wie SlyD schon sagte, vor Allem die Pegel. Beim UART werden 0 und 1 mit +5V und 0V dargestellt, bei der RS232 mit etwa +12V und etwa -12V. Es gibt recht preiswerte Spezialchips, die die Pegel hin und her wandeln, etwa den MAX232 (http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15). So einen Chip müßtest Du halt noch zwischen UART und RS232 klemmen.

Falls es beim UART des RP6 sonst noch Irgendwas zu beachten gibt, dann weiß ich es selbst noch(!) nicht.

roboterheld
28.11.2007, 09:00
....hallo zusammen, ich habe heute mehr als4 stunden Zeit investiert, leider Erfolgslos,.....

na wenn du den jetzt schon an den pc anschlossen hast, ohne max, dann ist er hi....der mega an pins tx und rx.

ich habe unter verkauf noch eine oberteilplatine stehen vom rp6 mit usb-programmer.

mexxmilian
30.11.2007, 09:24
@roboterheld : "ich weiss immer noch nicht was du damit meinst??" bei dir ist hauptsache was schreiben oder was?? kannst du nicht einmal im Leben eine Vernünftige wissenschaftliche ausführliche Antwort geben?? immer unsinnige Kommentare!!!

@SlyD : gut dass ich erstmal das Signal DTR nicht an RESET direkt angeschlossen habe!! an DTR liegt immer noch + - 12V vom PC, das Signal kann dann nur über den zweite freie Kanal vom Max angeschlossen sein, damit ein 5V TTL Pegel rauskommt, richtig??
sonst liegt ein 12V Signal direkt an dem ATmega32 Reset , und ist dann vorbei :-)

und warum muss DTR angeschlossen sein? bis jetzt habe ich in nirgendswo benutzt??

Noch eine Frage : man kann auch Reset Signal mit einem Jumper reseten, wo liegt das auf dem RP6, ich habe nur den Sart/Stop Knöpschen gesehen, aber kein RESET!!

vielen Dank

PeX
01.12.2007, 00:32
Ich würde mal sagen, als Allererstes solltest Du ausprobieren, ob nach Deinem Versuch, den Robby direkt an RS232 anzuschließen, die Kommunikation mit Hilfe des beim RP6 mitgelieferten USB-Adapters überhaupt noch funktioniert. Eigentlich dürfte so ein Atmega zäh genug sein, derartige Mißhandlung kurzzeitig zu überstehen.

Falls Du immer noch Verbindung bekommst, und Programme aufspielen kannst - Glück gehabt. Andernfalls stehst Du vor der Entscheidung, entweder die sterblichen Überreste des Robby zu verEbayen, oder selbst einen Reparaturversuch zu wagen.

Ich glaube, SlyD wollte sich nur schriftlich an den Kopf packen, daß Du einfach Sachen anschließt, ohne zuvor irgendwo nachzulesen, ob das zu Problemen führen könnte - in diesem Fall, ob die +-12 V der RS232 nicht den Atmega grillen könnten...

Allerdings ergibt sich meiner Meinung nach schon mal ein Verbesserungsvorschlag, falls irgendwann ein RP6 Version 2.0 geplant sein sollte - dem Atmega einen Sockel verpassen, für den Fall, daß ihn die Leute beim Experimentieren grillen. Wäre mir selbst schon um ein Haar passiert, und SMD-Lötarbeiten traue ich mir noch nicht so richtig zu. Dann nämlich würde die Reparatur, soweit ich es abschätzen kann, "nur" noch bedeuten, einen ISP-Programmer zu kaufen (den man auf lange Sicht sowieso braucht), einen Ersatz-Atmega einzustecken, und den Bootloader wieder aufzuspielen. Oder sehe ich da was falsch?

mexxmilian
01.12.2007, 09:44
Ich hoffe dass SlyD auf meine Frage reagiert, ich habe zwar das Signal noch nicht angeschlossen, und wenn ich das tun würde, dann nur über den zweiten Output TTL Kanal des Max 232, also ich resete mein RP6 mit 5V, und nicht + - 12V!!
wenn eine 2.0 Version in dem nächste geben würde, würde ich schon RP6 direkt mit einem Maxim bestücken, und so kann man immer RP6 über Seriell verbinden, das Thema ist immer noch Aktuell und nicht ausgestorben, mir nutzt nicht den USB Adapter!!

ich bin dran eine Platine so klein wie möglich zu bauen, damit kann man RP6 direkt über seriell RS232 ansteuern, und auch über Bluetooth...

sobald ich fertig bin, und mit Erfolg, dann werde ich die Schaltpläne hier uploaden, klar mit Hand gezeichnet, das Ding muss erstmal funktionieren O:)
sonst muss ich noch mit Target oder Eagle mich beschäftigen..

roboterheld
01.12.2007, 16:00
.....Eigentlich dürfte so ein Atmega zäh genug sein, derartige Mißhandlung kurzzeitig zu überstehen.....

nein das übersteht er nicht, das senden von rs323-signale über rx und tx vom pc haben +3 bis +12 volt und nicht nur die anderen steuersignale.

SlyD
02.12.2007, 13:50
Hallo mexxmilian,

ich bin gerade sehr beschäftigt und antworte daher erst jetzt - habe Dir vorhin auch schon eine PN geschrieben da ich den Thread jetzt gerade erst wieder angesehen habe.

Hier nochmal das wichtigste aus der PN:




gut dass ich erstmal das Signal DTR nicht an RESET direkt angeschlossen habe!! an DTR liegt immer noch + - 12V vom PC, das Signal kann dann nur über den zweite freie Kanal vom Max angeschlossen sein, damit ein 5V TTL Pegel rauskommt, richtig??


Richtig - wäre nicht so gut das direkt anzuschließen. Muss über den MAX232 gehen.


Der MEGA kann sowas an RX und TX kurzzeitig durchaus überstehen - aufgrund der internen Schutzdioden nach GND und VDD. Allerdings ist es dennoch nicht empfehlenswert und er kann dadurch leicht Schaden nehmen!
--> Also bitte niemals nicht ohne Pegelwandler an eine RS232 Schnittstelle vom PC anschließen - das gilt natürlich für alle Signale!



und warum muss DTR angeschlossen sein? bis jetzt habe ich in nirgendswo benutzt??


Sofern Du Programme mit dem RP6Loader in den Roboter laden willst, muss DTR an Reset angeschlossen sein. Und natürlich kann man darüber auch aus eigenen Programmen den Mikrocontroller Resetten. Überträgt man nach dem Reset (etwas warten bis [READY] ausgegeben wird) ein "s" wird das geladene Programm gestartet.



Noch eine Frage : man kann auch Reset Signal mit einem Jumper reseten, wo liegt das auf dem RP6, ich habe nur den Sart/Stop Knöpschen gesehen, aber kein RESET!!


Ich versteh die Frage nicht so ganz - einen Jumper gibt es für Reset nicht, aber Reset ist auf den beiden Erweiterungssteckern, auf dem UART Stecker und auf zwei Lötpads auf dem Mainboard zu finden. Sollte reichen denke ich ;)

Schau einfach mal in die Schaltpläne und die Anschlussbelegungen!



Zum Thema USB oder RS232:
Sehr viele neue Computer haben überhaupt keine RS232 Schnittstelle mehr (Notebooks schon seit längerem nur sehr selten) daher wird beim RP6 anders als noch beim Vorgänger nur ein USB Interface mitgeliefert.
USB gibt es schon seit 1996 - also über 11 Jahre - und es hat einen hohen Verbreitungsgrad. 98.5% ( so in etwa ;) ) der Anwender werden eher keinen RS232 Port mehr haben als umgekehrt...
Sieht man ja beim ASURO mit den ganzen Problemen mit unpassenden USB->RS232 Adaptern usw.


Der MAX232 hat auf dem Mainboard eher nichts zu suchen - der gehört wenn dann genau so wie beim USB Interface auf eine extra Platine. So kann man beides nutzen - TTL und RS232 Pegel - je nachdem was man braucht. Auf dem Roboter selbst wird man über das RS232 Interface ohnehin meist mit anderen Mikrocontrollern kommunizieren und die nutzen dann ebenfalls TTL Pegel.

Den MAX232 zu beschalten ist sehr einfach und man kann das bei Bedarf leicht selbst machen. Eine kleine Lochrasterplatine oder das RP6 Experimentiermodul reichen dafür.

MfG,
SlyD