Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 durchschleifen
Scarabol
27.05.2010, 11:52
Hi.
ich habe mein Minicontrol ganz "normal" an die RS232 Schnittstelle angeschlossen (3 poliger Stecker). Wenn ich das Terminalprogram starte werden die Print Nachrichten auch korrekt ausgegeben.
Nun habe ich einen 2.ten uC an den 4 poligen RS232 TTL Stecker angeschlossen. Auch dieser sendet Print Nachrichten.
Im Terminal werden aber nur die des Minicontrol angezeigt. Was muss ich machen, damit auch die Nachrichten des 2. uC angezeigt werden.
MfG
Scarabol
Scarabol
27.05.2010, 12:10
Nachtrag:
Der 2. uC arbeitet mit LVTTL also 3,3V kann ich dieses Signal mit dem Minicontrol über PD.0 und PD.1 auf den RS232 umlenken?
Oder werden die 3,3V Signale ebenfalls vom Max232 umgewandelt?
MfG
Scarabol
JoeBlack
27.05.2010, 12:24
Soviel ich weiss musst Du Dich entscheiden ob Du den TTL-Pegelanschluss nutzen willst oder den für den PC.
Beide gemeinsam nutzen geht soviel ich weiss nicht und kann sogar zur beschädigung des MAX232 führen.
Ich kann mich allerdings auch täuschen in diesem Punkt.
Du könntest jedoch die Controler mittels I²C kommunizieren lassen und die gesamten Ausgaben macht dann der eine der am PC angeschlossen ist.
Bezüglich 3,3V TTL, schau mal ins Datenblatt. Ich hab im Moment keins zur hand aber da müsste drin stehen was als high gewertet wird und was als low gilt.
Wenn die 3,3V für ein eindeutiges high ausreichen müsste es gehen.
MfG JoeBlack
Scarabol
27.05.2010, 12:39
Hi,
I2C hab ich leider nicht zur Verfügung der 2. uC ist bereits fest verbaut und hat nur den seriellen Ausgang.
Nach meiner Recherche sollte man für 3,3V Pegel einen Max3232 benutzen, aber es soll auch mit einem 232 gehen nur finde ich dazu keinen Schaltplan oder Ähnliches, kann mir da einer weiterhelfen?
Hier mal der Wandler auf dem Minicontrol:
http://img7.imageshack.us/img7/7904/rs232ttlwandler.th.png (http://img7.imageshack.us/i/rs232ttlwandler.png/)
Die beiden Leitungen die nach unten abgehen führen direkt zu PD.0 und PD.1
MfG
Scarabol
JoeBlack
27.05.2010, 13:21
Das Problem ist, dass Du die Busteilnehmer addressieren musst wenn sich mehr als 2 Teilnehmer in Bus befinden.
Diese Möglichkeit bietet der MAX232 jedoch nicht.
Du könntest jedoch nen kleinen Controler nehmen um von RS232 3,3V auf I²C zu wandeln. Dann passt doch wieder alles zusammen.
Es wäre allerdings deutlich leichter, wenn Du mal beschreibst welche Module Du nun hast.
Dann könnte man sich das ganze in Ruhe ansehen und ne Lösung finden wie alle zusammenarbeiten können.
MfG JoeBlack
Scarabol
27.05.2010, 13:52
Hi,
ich benutze ein RN Minicontrol und eine Fritz Box Fon WLAN 7050.
Die Fritz Box hat eine serielle Konsole über die Print Ausgaben rausgehauen werden. Diese möchte ich nun auf meinem PC anzeigen lassen.
Ziel ist es das die Fritz Box den Microcontroller steuern kann.
Das ich nicht zwei Geräte an die RS232 hängen kann seh ich jetzt ein. Wie währe es die Fritz Box an die IO Ports zu hängen und so die Ausgabe durchzuschleifen.
Die Fritz Box hat eine Baudrate von 38400
MfG
Scarabol
JoeBlack
27.05.2010, 14:00
Wenn mich nicht alles täuscht hatten Dir mehrere (auch ich) in Deinem Hexapod-Threat ausdrücklich von der Fritzbox abgeraten.
Allerdings ist es ja Dein Projekt, von daher solls mir recht sein.
Wenn Du alles mittels fertiger Module machen willst, würde ich Dir raten ne zweite Minicontrol zu nehmen und diese die Daten von ihrer RS232 auf den I²C-Bus durchzuschleifen.
Das dürfte nicht all zu schwer sein.
Du kannst natürlich auch über IO-Pins ne RS232 Softwareseitig parallel zur anderen laufen lassen, allerdings bin ich mir nicht sicher das diese dann schnell genug ist.
Ausserdem dürfte es nicht all zu einfach sein, das gesamte RS232-Protokoll nachzubilden.
Aber machbar müsste es schon sein, leichter wirds aber eben mit nem zweiten Minicontrol.
MfG JoeBlack
Hi,
ich benutze ein RN Minicontrol und eine Fritz Box Fon WLAN 7050.
Die Fritz Box hat eine serielle Konsole über die Print Ausgaben rausgehauen werden. Diese möchte ich nun auf meinem PC anzeigen lassen.
Ziel ist es das die Fritz Box den Microcontroller steuern kann.
Das ich nicht zwei Geräte an die RS232 hängen kann seh ich jetzt ein. Wie währe es die Fritz Box an die IO Ports zu hängen und so die Ausgabe durchzuschleifen.
Die Fritz Box hat eine Baudrate von 38400
MfG
Scarabol
Du kannst einfach eine Software RS232 zusätzlich "Bauen", habe ich hier
auch am laufen. die Hartware RS232 hängt am PC, die Software RS232
schleift das dann zu weiteren Geräten wie z.B RN-Motorcontrol durch.:-)
Allerdings benutze ich Bascom und dort ist das sau einfach.
Gruß Richard
Scarabol
27.05.2010, 14:52
Hi,
Richard wie haste das gemacht? Ich benutze auch Bascom.
@Joe
Ich muss die Box ja noch lange nicht auf meinen Hexa schrauben, das hier seh ich eher als ein eigenständiges Subprojekt "Minicontrol via Fritz Box steuern"
MfG
Scarabol
JoeBlack
27.05.2010, 16:40
Na dann lass Dich nicht aufhalten bei Deinem Projekt.
Wie hast Du Dir das vorgestellt mit der Umsetzung der Wlan-Daten auf RS232?
Und wie werden die Daten vom PC zur Fritzbox übertragen?
Auf meinem Kettenfahrgestell könnt ich mir etwas derartiges durchaus vorstellen, darum würde mich interessieren wie Du das ganze umsetzen willst.
MfG JoeBlack
Hi,
Richard wie haste das gemacht? Ich benutze auch Bascom.
Scarabol
Bascom/Samples/Serial/serin_out.bas das funktioniert mußt es nur noch
für Dich anpassen...Pinx/y und Baudrate.
Gruß Richard
Scarabol
28.05.2010, 14:32
Hi,
@Richard
Welche Baudrate muss ich benutzen?
Mein Minicontrol hat eine Bd von 9600 und der Router 38400
Soll die Rate für Serin und Serout unterschiedlich wählen?
Ich bekomme nur Murks angezeigt:
5?j?????k?<\r>
????k?<\r>
5???k?5?????k?j?5?5?????<\r>
k???k?????5?5???5?k?k?????k?k?k?????k?k?k????????? ????5?k?5???<\r>
??5?j???5???????j?j?????????5?????k???<\r>
??????k?<\r>
5???????????????????????j?????????j?k?5?j?k?k?5?5? ????????j?????5?k?????<\r>
????????????j?k?<\r>
??<\r>
??k???j?j?j???<\r>
k???k?j???k?????k???5?k?????k???k?k?5?5?????????5? k?5?????<\r>
k?k?<\r>
??????????<\r>
5???????????k???k?????5???????j???k?<\r>
??k?k???j?5?j?5?j?5?j???????k?k?k???????????k?5??? ??k???k?k?????????j???j?????????j?j?????k???k????? ????5?k?k???5?5?k?????5?k?k???5?5?k?
@Joe
Woher hast du das Fahrwerk zu deinem Roboter (Ketten/Motor/Getriebe?)?
Vielleicht bau ich vor dem Hex doch erstma einen rollenden Bot ;-)
MfG
Scarabol
JoeBlack
28.05.2010, 15:01
http://www.nodna.com/product_info.php?products_id=1035&XTCsid=6q6ndiss566ga9k3c4pmllhpv1
Hier hab ichs gefunden.
Produziert wird es von Lynxmotion und der Vertrieb in Deutschland läuft über NoDNA.
Ist nicht ganz billig, aber ich bin soweit sehr zufrieden damit.
Die Ketten sind sehr griffig und haben ordentlich Profil. Der Aufbau ist sehr einfach und passgenau und die Konstruktion als solches ist so simpel wie effizient.
Wenn der Preis Dich nicht stört würde ich zuschlagen.
MfG
JoeBlack
@Richard
Welche Baudrate muss ich benutzen?
Mein Minicontrol hat eine Bd von 9600 und der Router 38400
Soll die Rate für Serin und Serout unterschiedlich wählen?
Ich bekomme nur Murks angezeigt:
Kommt darauf an mit wem Du "sprechen willst" mit dem Router
dann halt 38400, Serin und Serout müssen IMMER gleich sein!
Das gilt für beide RS232. Die Baudrate der Schnittstelle zu/vom
PC muss zu den PC Einstellungen passen.
Ich bekomme (eingeloggt) keinen Zitat Botton???
Gruß Richard
Scarabol
28.05.2010, 15:55
Hi,
ich benutze folgenden Code:
'----------------------------------------------------------------------
' serin_out.bas
' (c) 2002-2005 MCS Electronics
' demonstration of DYNAMIC software UART
'----------------------------------------------------------------------
'tip : Also look at OPEN and CLOSE
$regfile = "m168def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
'some variables we will use
Dim S As String * 10
'buffer to save data
Dim B As Byte
B = 0
S = Chr(13) + Chr(13) + "Im ready" + Chr(13)
Print S
Ucsr0b = 0 ' DISABLE HW UART
Do
'first get some data via JP1
Serin B , 1 , D , 2 , 38400 , 0 , 8 , 1
'now send it
If B <> 0 Then
Serout B , 1 , D , 1 , 9600 , 0 , 8 , 1
' ^ 1 stop bit
' ^---- 8 data bits
' ^-------- even parity (0=N, 1 = E, 2=O)
' ^------------- baud rate
' ^------------------- pin number
' ^----------------------- port so PORTA.0 and PORTA.1 are used
' ^--------------------------- for strings pass 0
' ^-------------------------------- variable
End If
Waitms 1
Loop
End
'because the baud rate is passed with a variable in theis example, you could change it under user control
'for example check some DIP switches and change the variable mybaud
Aber bis auf die 10 13 am Ende jeder Zeile bekomme ich nur "Müll" angezeigt....
Die Baudraten kann ich ja nicht gleich machen, da Minicontrol und Router unterschiedliche Raten benutzen...
MfG
Scarabol
JoeBlack
28.05.2010, 17:18
Dann musst Du die Rate vom Minicontrol raufdrehen.
Oder von der FritzBox runter.
Wenns nicht geht, dann klapt es nicht.
MfG JoeBlack
edit:
In Deinem Programm steht:
$baud = 9600
Ich kenne mich zwar nicht mit Bascom aus, aber das sieht nach der Baudrate der Minicontrol aus.
Es wäre denke ich mal ne Überlegung wert da mal die Baudrate der FritzBox einzutragen und zu sehen was dann passiert.
Was ich übrigens schon länger mal fragen wollte:
Die FritzBox soll ja eine Wlanverbindung zum PC ermöglichen.
Wieso brauchst Du dann zusätzlich noch den Anschluss mittels Kabel?
Vorerst kannst Du mit dem PC die FritzBox simulieren und wenn die Minicontrol dann tut was sie soll kannst Du Dich auf die FritzBox konzentrieren.
Scarabol
28.05.2010, 18:02
Ich hab den Speicher vergrößert indem ich B durch ein Array ersetzt habe das jetzt beschrieben wird, damit wird alles fehlerfrei angezeigt. Außerdem habe ich die if b = 0 abfrage entfernt.
Mit Kabel meinst du sicher die 3 polige RS232 Verbindung, oder?
Ich benutze diese vorübergehend zum debuggen. Ich will damit überprüfen, ob die Fritz Box dem uC die korrekten Befehle erteilt und die Kommunikation "sauber" abläuft. Später kommt dises Kabel natürlich weg und FB+uC sind ein eigenständiges Team.
MfG
Scarabol
JoeBlack
28.05.2010, 19:29
Dieses Team kannst Du jedoch spalten indem Du erstmal den einen Teil zum laufen bekommst und dann den anderen.
Das macht es deutlich leichter als gleichzeitig an allen Ecken und Enden etwas zu tun und dann zu versuchen den Fehler zu finden wenn es mal nicht hinhaut.
Aber das musst Du entscheiden.
Hast Du die Baudrate nun umgestellt oder alles beim Original belassen?
Und funktioniert die Übertragung jetzt so wie Du es wolltest oder nicht?
MfG JoeBlack
Scarabol
28.05.2010, 20:12
Hi,
ja ich hab die Baudrate auf 38400 erhöht und die Übertragung ist nun einwandfrei. Ich benutze die Hardware UART für den PC und eine Software UART für den Router.
' Fritz Debug
'
' This debugs Fritz Box Fon WLAN 7050
' serial output to RS232 via Minicontrol
'
' made by Scarabol
' thx Richard
$regfile = "m168def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 38400
Print
Print
Print "Im ready!"
Print
Dim B As Byte
B = 0
Open "comd.2:38400,8,n,1" For Input As #2
Do
B = Waitkey(#2)
If B > 0 Then
Printbin B
End If
Loop
Close #2
MfG
Scarabol
JoeBlack
28.05.2010, 20:17
Na dann is doch jetzt alles in Butter^^
MfG JoeBlack
Scarabol
28.05.2010, 20:21
Jup als nächstes versuch ich jetzt ein Programm zu bekommen, das auf der Fritzbox den Link zwischen WLAN und serieller Konsole schließt...
Ich hab da schon ser2net ins Auge gefasst.
http://ser2net.sourceforge.net/
Aber da brauch ich Hilfe von einem Linux Progger...
MfG
Scarabol
Scarabol
28.05.2010, 22:08
JUHU!
Ich habs geschaft über Telnet >> FritzBox >> Minicontrol >> Terminalprogramm "test" und "Scarabol ist der größte" auf meinen PC Bildschirm zu zaubern und weiter gehts....
# echo "test" > /dev/ttyS0
# echo "Scarabol ist der größte" > /dev/ttyS0
MfG
Scarabol
JoeBlack
28.05.2010, 22:47
Na dann sag ich mal herzlichen Glückwunsch und weiter so.
Was steht denn als nächstes an?
Was hast Du Dir jetzt wegen was Fahrbarem gedacht?
MfG JoeBlack
Scarabol
28.05.2010, 23:11
Hi,
der uC erkennt nun anhand der Zeichenkette [uC] das ich ihm einen Befehl geschickt habe ala:
[uC] (Befehl)
Leider vermischt er in der Ausgabe wohl irgendwas sodas diese jetzt nicht mehr sauber rauskommt. Mal sehen ...
einfach geil :D
Ich denke ihr habt recht hier ein Hexbot ist im Moment zu teuer und zu kompliziert, daher fange ich erstmal mit was fahrbarem an. Damit der "Style" aber nicht zu kurz kommt, dachte ich schon an ein Kettenfahrzeug ;-)
So außerdem hab ich gerade noch meine eigene Freetz Version auf die Box gebacken, damit ich ser2net benutzen kann.
MfG
Scarabol
Scarabol
29.05.2010, 10:03
So ser2net ist auf der FritzBox und wenn ich jetzt einen String an den Port schicke wird dieser über den uC zurück auf den PC übertragen.
Eigentlich könnte ich jetzt schon etwas damit steuern, aber leider wird der gesendete String nach 6 Zeichen abgeschnitten....
MfG
Scarabol
Scarabol
29.05.2010, 10:20
Mein Computer hat den String zu schnell geschickt ich hab ihn jetzt etwas langsamer gemacht und schwups der komplette String wird übertrange....
Jetzt muss nur noch der uC korrekt funktionieren
MfG
Scarabol
Scarabol
29.05.2010, 10:48
Erster Teilerfolg der uC lässt sich nun mit der Fritz Box über WLAN oder LAN fernsteuern.
MfG
Scarabol
JoeBlack
29.05.2010, 16:45
Na dann hast Du den ersten Teilschritt erreicht^^
Jetzt würde ich mir Gedanken machen über ein Fahrgestell und nen Motortreiber.
Das liesse sich dann ja über Wlan ansteuern.
Immer weiter so und niemals aufgeben^^
MfG JoeBlack
Scarabol
30.04.2011, 21:20
Sodelle nach einem Jahr hab ich mich nochma rangesetzt und nun funktioniert es auch!
Der Mikrocontroller liest jetzt einfach die serielle Ausgabe der Fritz Box über eine Software UART mit und sobald er ein [uC]PB1H empfängt schaltet er Port B 1 auf high. Die LED leuchtet also...
Danke an alle die mitgedacht haben!
Scarabol
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.