Kann mir denn niemand helfen?
Hi @ all!
Ich habe die beiden Funkmodule ER400TRS und RF04/400 von www.roboter-teile.de .
Ich bin auch sehr zufrieden mit den Modulen, aber irgendwas muss ich falsch gemacht haben!?
Als Antenne habe ich jeweils ein 16,4cm langen Draht genommen.
Ich habe das Modul mit dem USB-Anschluss (RF04/400) an den PC angeschlossen und es funktioniert einwandfrei (glaube ich zumindest *g*).
Das andere Modul mit der seriellen Schnittstelle (TTL) (ER400TRS) habe ich an den AVR angeschlossen.
RXD (PinD 0) an Data Out (Pin 5) und TXD (PinD 1) an Data In (Pin 6).
Ich habe dann ein Assembler-Programm für den AVR (AT-Mega8) geschrieben:
Wenn ich dann HyperTerminal starte und den AVR starte, dann erscheint folgendes auf dem Bildschirm! :o(Code:.include "m8def.inc" .def temp = r16 .equ quarz = 4000000 .equ baudrate = 19200 .equ ubrr_wert = quarz/(baudrate*16)-1 stack_initalisieren: ldi temp , low (RAMEND) out SPL , temp ldi temp , high (RAMEND) out SPH , temp uart: baudrate_einstellen: ldi temp , low (ubrr_wert) out UBRRL , temp ldi temp , high (ubrr_wert) out UBRRH , temp frame_format_8bit: ldi temp , 0b10000110 out UCSRC , temp tx_aktivieren: sbi UCSRB , TXEN loop: ldi temp , 'T' rcall ausgabe ldi temp , 'e' rcall ausgabe ldi temp , 's' rcall ausgabe ldi temp , 't' rcall ausgabe ldi temp , '!' rcall ausgabe ldi temp , 10 rcall ausgabe ldi temp , 13 rcall ausgabe rjmp loop ausgabe: warten_bis_udr_bereit: sbis UCSRA ,UDRE rjmp ausgabe ausgabe_des_bytes: out UDR , temp ret
Ich denke mal es liegt an dem Code für den AVR, aber selbst mit Pausen hinter "rcall ausgabe", um den Datenstrom langsamer zu machen und um einen Stau bzw. ein Überschreiben zu verhindern, funktioniert es nicht! :o(Code:<Tí$¡[136]UÍÑ[133]CUÖÑ[133]ýtH¡[136]UÍÑ¡WR <TesÑ[133] <TestÍ[136]UÍÑ[133] < <Test! < <Test![23ETB]WR <TestH¡[136]UÍÑ[133] <Tÿl¡[136]UÍÑ <Test!ýt! <TestH¡[136]UÍÑ[133] <Tü[136]UÍÑ[133]TestÑ[133] < <TesH¡st! <Test <Test!ý?WR <TesÍ.WR <TestCUÖÑ[133]ÿ <Ñ! <TesH¡[136]UÍÑ <Test!ÿ.WR <Tes`H¡[136]UÖÑ[133]CUTest![136]UÍÑ[133]ý
Kann mir vielleicht jemand helfen? :o)
Ich glaube aber nicht, dass die Hardware kaputt ist, die ist 1. ganz neu und 2. scheint sie ja zu funken!
Könnte es daran liegen, dass ich die AVR-Schaltung auf einem Steckbrett aufgebaut habe?
Danke für Eure Hilfe! :o)
Kann mir denn niemand helfen?
Ich habe das problem gelöst!
@ Frank:
Du kannst von mir aus diesen Thread löschen, da er ja keinem von Nutzen ist! *lol*
Könntest du vllt beschreiben, worin der Fehler lag und wie du es gelöst hast?
Gruß, Trabukh
"Der Mensch wächst am Widerstand" (Werner Kieser)
Hi Trabukh!
Also, als Erstes hatte ich die beiden Pins (RXD/TXD) vertauscht. *ja, ich bin blöd* *lol* *peinlich*
Dann kamen aber noch immer Störungen:
Immer periodisch nach 128 Byte!Code:<Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <TeTest! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <Test! <TeTest!
Da viel mir ein, dass der ER400TRS ja 128 Byte Buffer hat.
Also schlussfolgerte ich, dass nach 128 Byte eine Pause sein muss, da der Transciever erstmal die alten Daten senden muss.
Ich werde jetzt die BUSY-Leitung in dem Programm abfragen, ob der ER400TRS bereit ist, oder noch nicht.
Damit möchte ich das Problem verhindern.
Wenn es funktioniert kann ich ja den Code hier posten! :o)
Könntest du mal zeigen, wie du das Ding beschlatet hast?
Warum gibts da einmal digital aus und analog out?
Und warum ein modulated in, muss man das Signal irgendwie modulieren?
...
MFG Moritz
Hi Moritz!
Ich verstehe Deine Fragen nicht ganz, aber ich hoffe ich kann Dir so weiterhelfen:
Meine Schwester hat leider die Digi-Cam mitgenommen, sonst könnte ich n Foto machen! :o(
Der Transciever hat ja 9 Pins!
Pin 1 - ANT: Antenne, z.B. 16,4cm langen Draht.
Pin 2 - RF GND: Ground der Antenne, kann aber bei einer normalen Drahtantenne nur auf GND liegen.
Pin 3 - RSSI: Da kommt ein Analog-Signal raus, das angibt, wie gut der Empfang ist. Kann man z.B. an den ADC des AVR's anschließen.
Pin4 - BUSY: Wenn der Transciever gerade beschäftigt ist, dann ist der Ausgang High/1/5V wenn nicht, dann Low/0/ca. 0V. In der BUSY-Zeit darf man keine Daten senden.
Pin5 - DATA OUT: Da kommen die seriellen Daten raus, die der Transciever empfangen hat.
Pin6 - DATA IN: Da kannst Du z.B. über UART des AVR#s Daten hinsenden, die gesendet werden sollen.
Pin7 - HOST RDY: Dieser Eingang ist dafür gut, um dem Transciever zu sagen, dass der angeschlossene Empfänger bereit ist die Daten seriell zu empfangen.
Pin8 - VCC: +5V
Pin9 - GND: GND
Das alles steht auch im datenblatt! :o)
Konnte ich Dir helfen, oder habe ich Dich jetzt falsch verstanden? ;o)
Ja, genau das meinte ich! Danke!
Nur noch eine Frage zu RF Ground, die Antenne, kommt doch an ANT, also lege ich RF Graund an GND? Und ist also nur bei so richtigen Antennen von nützen oder?
Wie weit sendest du damit ungefähr?
MFg Moritz
Hi Moritz!
Ja genau, nur bei richtigen Antennen wird RF GND benutzt, ansonsten wird der Pin auf GND gelegt, wobei er bei richtigen Antennen auf GND und an die Antenne gelegt wird.
Naja, derzeit beschränken sich meine Experimente auf mein Zimmer, 3-4 Meter, aber ich habe demnächst mal vor den Sender draußen zu testen.
Überigends kann man die Sendeleistung einstellen, von 1mW bis 10mW!
Ich kann die Module wirklich empfehlen, sind richtig cool! :o)
Lesezeichen