PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bin am verzweifeln RP6 mit Easy Radio geht nicht



Julia85
22.04.2011, 12:39
Hilfe Leute ich habe folgendes Problem, ich habe einen RP6 und möchte mit ihm mittels Funk kommunizieren, bzw. Steuern .
Mit Datenkabel klappt auch alles wunderbar, nur mit Easy Radio Funkmodul macht mir Probleme.
Er spuckt nur Hieroglyphen aus.
Die Verbindung steht aber ich empfange nur Blödsinn :>.
Sowas kommt raus :(

k?????"??? ?)?G? ????k????? ??? ?+?G?
????i?????&??? ?+?A?
????i?????!???

Ich habe noch eine selbst geätzte und gelötete Test Platine,
hier klappt die Kommunikation mit Funk einwandfrei.
Ich habe den Verdacht das an der Bibliothek vom RP6 was nicht stimmt.

Folgendes an Lösungsansätzen habe ich schon versucht:
Mit der Baudrate habe ich schon alles Mögliche an Einstellungen durch, daran kann es auch nicht liegen.
Richtig angeschlossen habe ich ihn auch.
Als Pegelregler habe ich das MAX232 darauf.
Ich weiß echt nicht mehr weiter und freue mich über jeden Lösungsansatz :D.

Lieben Gruß
Julia

SlyD
22.04.2011, 15:42
Hallo,


Als Pegelregler habe ich das MAX232 darauf.Der RP6 UART braucht aber 5V TTL Pegel - also OHNE MAX232. Der MAX232 erzeugt ja extra für PC(!) RS232 Schnittstellen +-12V das kann Dir daher sogar die Ports vom RP6 beschädigen (muss aber nicht - sind Schutzdioden im Controller drin aber die halten nicht beliebig viel aus).

Baudrate muss übrigens 38400 Baud sein.

MfG,
SlyD

EDIT:
Ich seh auch gerade das Du scheinbar (wenn ich das auf den Fotos richtig sehe) TX an TX und RX an RX angeschlossen hast. Das ist leider so auch nicht richtig, die müssen über Kreuz angeschlossen werden also TX an RX und RX an TX. (Sender -> Empfänger ... )

Julia85
22.04.2011, 16:40
Danke an den Mann vom Fach :>

Super danke für den Tipp mit MAX232, habe ich noch nicht darüber angeschlossen
(hatte darüber was gelesen und war nicht sicher ob ich denn so verwenden kann)
denn brauch ich ja nicht unbedingt.
Ich kann ja über denn Jumper entscheiden, geht auch mit Easy Radio….
Danke für den Hinweis mit dem Anschlüssen, ich hatte sie über Kreuz angeschlossen,
ging halt auch nicht deswegen war ich am Testen.
Ich sitze jetzt schon seit 2 Tagen an dem Problem, mittlerweile habe ich es geschafft und er lässt sich über Funk ansteuern.
(aber noch nicht perfekt, er spuckt im Terminal vereinzelt noch Hieroglyphen aus)
Dieses Problem versuche ich auch noch zu beheben.

Jetzt kommt das komische nur wenn TX an TX und RX an RX angeschlossen ist,
über Kreuz geht’s bei mir Zurzeit gar nicht.
Und auch nur noch über Funk….. jetzt geht es nicht mehr mit Kabel……..argh

(Muss aber auch sagen das ich an der RP6 Programmierung rumgebastelt habe ;>)
#define TAKT 16000000 // hier ist auch das Problem, zumindest ein Teil,
wenn ich runter schraube auf 8000000 geht’s über Kabel, über Funk dann halt nicht.
Ist das normal so????

So sieht es auf wenn es über Funk läuft.
Beim Einschalten/bzw. Stopp vom Rp6 kommen halt diese blöden Hieroglyphen ins Terminal,
kein RP6 Loader bzw. Ready ist das normal???
Aber ansonsten läuft es jetzt nach dem Starten Senden und Empfangen einwandfrei.
(RT auf RT und TX auf TX)
#define TAKT 16000000
#define UART_BAUDRATE 38400
// Berechnung der Konfigurationsparameter
#define UART_SETTING ((TAKT/(16*UART_BAUDRATE))-1)

……………………….

Auch mit der Standartprogrammierung, also ohne rumgebastelt bekomme ich über
Kreuz kein Empfang, wieder gleich auf gleich angeschlossen, bekomme ich Empfang aber im Terminal nur Mist ;(
Ohmann <.< das es so Problem ist hätte ich nicht gedacht, vor allem ich habe mich jetzt durch ein paar Treads gekämpft, bei anderen scheinst ja auch ganz gut zu klappen…..

Vielen Dank :>
Julia

RolfD
22.04.2011, 17:18
Bevor Du irgendwas mit Funk machst, wäre es vielleicht erst mal gut, sicher zu stellen das eine serielle Übertragung ausserhalb des Loaders überhaupt 100% sicher funktioniert. Es müsste z.B. möglich sein, sich mit Hyperterm an die serielle mit 38400 baud zu verbinden (ohne Funkmodul) und auf dem rp6 eine Art Echoserver laufen zu lassen - so das also jedes Zeichen vom Terminal korrekt vom rp6 zurück gesendet wird. Erst wenn das funktioniert würde ich mit dem Funkmodul basteln denn sonst jagst du 2 oder mehr Probleme gleichzeitig.
Zudem hat der rp6 base eine Taktfrequenz von 8 MHz (ist in der RP6RobotBase.h definiert)

#define F_CPU 8000000 //Base: 8.00MHz - DO NOT CHANGE!

damit berechnet sich das so:

#define UART_SETTING ((F_CPU/(16*UART_BAUDRATE))-1)

Das MUSS auch bei Funk so sein... es kann aber sein das das Funkmodul selbst eine andere Baudrate braucht... 57,6k ... da hab ich keine Ahnung von, müsste aber aus dem Datenblatt des Moduls erkennbar sein.
LG Rolf

SlyD
22.04.2011, 17:36
Ich sitze jetzt schon seit 2 Tagen an dem Problem,Soweit schonmal normal ;)
Das kommt auch regelmäßig bei erfahrenen Entwicklern vor das man länger
als gedacht an irgendwas sitzt.




#define TAKT 16000000 // hier ist auch das Problem, zumindest ein Teil,
wenn ich runter schraube auf 8000000 geht’s über Kabel, über Funk dann halt nicht.
Ist das normal so????
Wie Rolf schon sagt, ist der Takt immer 8 MHz - also wenn Du das in der Berechnung änderst ändert sich ja nicht einfach der Takt - sondern natürlich nur die Baudrate.

Du MUSST das Funkmodul auf 38400 Baud einstellen sonst geht es nicht mit dem Bootloader da dieser fest mit 38400 Baud arbeitet.
(Im RP6Loader auch ForceLowSpeed in den Optionen aktivieren damit nicht auf 500k Baud umgestellt wird)
Im Deinem Programm kannst Du natürlich auf 19200 oder 9600 Baud wechseln wenn das sonst nicht zuverlässig funktioniert - dann geht das aber nur mit externen Terminals (HTerm, Hyperterminal etc.) oder eigenen Programmen da das RP6Loader Terminal immer von den normalen 38400 Baud ausgeht.

Ein weiteres Problemchen mit den EasyRadio Modulen könnte sein das die keine Fehlerkorrektur integriert haben?? (hab ich mir schon ewig nicht mehr angeschaut kann mich auch vertun)
d.H. einzelne Zeichen könnten durchaus mal fehlerhaft sein. Das mag der Bootloader allerdings nicht so gerne daher ist es sowieso ratsam die programmierung normal übers Kabel laufen zu lassen. Funkmodul und USB Interface sollten dabei allerdings niemals gleichzeitig angeschlossen werden.

MfG,
SlyD