-
-
Neuer Benutzer
Öfters hier
EasyRadio Transceiver Funkmodul Probleme
Hallo!
Habe mir die Easy Radio Transceiver Funkmodule besorgt,
das problem ist wenn ich von Atmega128 zu PC ein zeichen über Funk schicke, empfange ich nicht dasselbe zeichen am Hyperterminal des PCs.
Obwohl es über Serielles Kabel von Atmega128 zu terminal von PC einwandfrei funktioniert.
Hat jemand Erfahrung mit den Funkmodulen, woran könnte es liegen.
Brauche dringend Ratschläge,denn ich weis nicht mehr weiter.
Danke!
-
Erfahrener Benutzer
Fleißiges Mitglied
hast du vieleicht einen logikdreher aus 1 wird 0 und umgekehrt?
gruß
stageliner
-
Neuer Benutzer
Öfters hier
so weit ich weis nicht.
laut Datenblatt des Funkmoduls (unter www.wirelessworldag.com.) steht auf Seite 8 folgendes:
Die Daten sind invertiert, d.h. das Start Bit ist ‘logic low’. Die Eingänge sind für den direkten Anschluss an ein Mikrocontroller-UART oder -RS232 Eingang vorgesehen und die Ausgänge via RS232 Pegelwandler wie z.B. Maxim MAX232, welcher die Logik des RS232 Signals invertiert.
Habe auch probiert das Zeichen invertiert zu schicken, aber ohne erfolg.
z.b.: wenn ich ein Ascii zeichen 'g' über den AVR schicke , bekomme ich am PC ein Ascii Zeichen 'L'.
Ich finde da keine zusammenhang zu den beiden zeichen(das eventuell ein bit dazu addiert oder LSB und MSB vertauscht, habe keine Ahnung)
gruß
malius
-
Erfahrener Benutzer
Robotik Einstein
Hallo malius!
Könnte es sein, dass Du die Sendefrequenz oder Baudrate zu hochgestellt hast!?
Oder hast Du zu schnell die Daten in das Funkmodul gestopft ohne, dass es vernünftig senden konnte!?
-
Also Du hast wirklich nur einen max232 in Deiner Schaltung? (Microcontroller->EasyRadio Sender->EasyRadio Empfänger->Max232->PC)
So wäre es denke ich richtig.
'g' entspricht: "01100111"
wenn ein invertierungsfehler vorliegt folgt also
"10011000"
Jetzt mutmaße ich einfach mal ohne mir genauere Gedanken gemacht zu haben, dass durch den Invertierungsfehler auch das Startbit falsch interbretiert wird und sich dadurch eine Null davorschummelt:
"010011000" die hintere Null fällt runter und wir sind bei 'L'
Man bräuchte noch ein zwei Beispiele oder die Schaltung ums im einzelnen nachzuvollziehen.
-
Neuer Benutzer
Öfters hier
Hallo Forian!
Sendefrequenz kann ich nur eine verwenden die andere ist für den amerikanischen Raum. Und die Baudrate habe ich auf 4800 gestellt (aufgrund meiner späteren Anwendung).
Die Daten werden ja sofort von PC übers terminal abgeholt, glaube ich nicht das es zu einen Pufferüberlauf kommt.
MFG
malius
-
Neuer Benutzer
Öfters hier
Hallo LoD,
Ich habe die Schaltung genauso aufgebaut wie du es beschrieben hast.
das mit denm invertierungsfehler werde ich mal mit ein paar weiter zeichen durchchecken.
Aber mir ist nochwas in den sinn gekommen:
Der ATmega128 arbeitet ja mit einer "glatten" Frequenz von 16 Mhz.da es ja üblicherweise eine kleine oder auch größere Abweichung gibt, abhängig von Taktfrequenz, Baudrate und Registereinstellungen,beträgt die Baudrate nie genau den gewünschten Wert.
Um die Baudrate genau zu bekommen, benötigt man einen "krummen" Quarz, z.B. 14,745 MHz.
Durch die Abweichungen können die ausgegebenen Werte des AVR vom
ER800TRS falsch interpretiert werden.
ist das möglich, und wie checke ich die Quarzfrequenz ab.
MfG
malius
-
Erfahrener Benutzer
Roboter Genie
Hi!
Mir sieht das doch sehr nach dem beschriebenen Invertierungsfehler aus.
hast du irgendeinen komischen Verstärker oder so in der Txd oder RxD-Leitung?
Mormalerweise liefert der AVR ein picobello RS232-Signal!
Hast du deine Invertierungsroutinen wieder herausgenommen?
Die RS232-Signale sind TRUE = LOW also negativlogik. Der Easyradio akzeptiert dies ohne weiteres.
Am 16MHz-Quarz kanns nciht liegen, der erzeugt meines Wissens nicht mal 1% Fehler!
Die Reelle Baudrate bei 16MHz und 9600Baud beträgt 9615Baud, das ist nichtmal 1%.
Bei 4800 Baud Ist das 4808 Baud bei 16Mhz, was wiederum unter der 1%Marke liegt.
Das Tool von Roland walter zeigt 0% an!!
Liebe Grüße,
Tobi
-
Neuer Benutzer
Öfters hier
Hallo Tobi!
Ich habe mal noch ein paar andere Zeichen durchgecheckt und siehe da tatsächlich das zeichen wird invertiert.
Also kann es nur mehr an den max232 liegen oder das Modul hat selber einen tasch.
werde mal mit einen anderen max232 probieren.
schöne Grüße,
malius
-
Erfahrener Benutzer
Roboter Genie
Hi!
Normalerweise invertiert der MAX232 die Signale nicht!!
Kannst du das auf einem Oszilloskop anschauen?
Liebe Grüße,
Tobi
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen