PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EasyRadio Transceiver Funkmodul Probleme



malius
31.05.2005, 22:39
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!

stageliner
31.05.2005, 23:30
hast du vieleicht einen logikdreher aus 1 wird 0 und umgekehrt?
gruß
stageliner

malius
31.05.2005, 23:43
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

Florian
01.06.2005, 14:26
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!?

LoD
01.06.2005, 15:16
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.

malius
01.06.2005, 16:58
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

malius
01.06.2005, 17:11
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

tobimc
01.06.2005, 17:21
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

malius
01.06.2005, 22:54
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

tobimc
02.06.2005, 12:24
Hi!

Normalerweise invertiert der MAX232 die Signale nicht!!

Kannst du das auf einem Oszilloskop anschauen?

Liebe Grüße,
Tobi

LoD
02.06.2005, 21:34
Moment, wenn meine Erinnerungen mich nicht völlig im Stich lassen ist das was bei der Pegelwandlung passiert schon eine Art Invertierung:
+5V --> -15V
0V ---> +15V
Das ist aber korrekt, da der PC genau dieses Signal erwartet, bzw die UART Schnittstelle des Microcontrollers das passend dafür rausgibt. Du verwendest Doch die UART, oder?

malius
02.06.2005, 21:52
Hallo an alle,

habe das Problem gelöst 1. der Pegelwandler max232 war def. (zum glück lebt das Funkmodul noch) und zweitens bin ich nicht auf einen der TTL Ports auf den µC gegangen sondern direkt auf die Uart mit dem Funkmodul (direk auf Uart ist es aber nicht erlaubt sondern nur über max232).

Nochmals vielen Dank an alle jetzt schauts mit dem fertigwerden des MaturaProjekts schon besser aus.

Nur eines brauche ich noch. Ich schicke 6 byte von µC über Funk zum CO2-sensor der schickt mir dann die Antwort auch über Funk mit 6 byte zurück. Ich weis aber nicht wie ich die 6 Byte von RX des Uart in den µC einlese und der dann das auswertet.
was das programmiern betrifft bin ich ein absoluter anfänger, also wenn mir jemand eine code(mit komentaren) schicken könnte wer das echt super.

schöne Grüße noch
malius

LoD
07.06.2005, 10:35
direk auf Uart ist es aber nicht erlaubt
genau das hätte ich jetzt aber erwartet, bzw sogar für ein MUSS gehalten. Hab noch kein easy Radio verwendet. Hat das wer anders nochmal ausprobiert?

Nochmal die TTL-Pegel Definition der Seriellen Verbindung IST vom Vorzeichen her invers zur RS-232 Deklaration der Pegel.
+5V --> -15V
0V ---> +15V
Kann mir irgentwie nicht vorstellen, dass easyRadio diese Standartpegeldeklaration ignoriert...

pinguin
27.06.2005, 20:58
@malius

Heißt das dass ich nicht direkt vom uC an das Easy Radio Modul gehen kann?
Wie du schon bereits gesagt hast, so steht es in der pdf. Also das man direkt zugreifen kann.

Mache ich es also Falsch...?

Mein Problem siehe Link -> https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=8996&highlight=

Würde mich über Hilfe freuen.

gruss
pinguin