-         

Ergebnis 1 bis 9 von 9

Thema: FS20 Empfänger an Ethernut 1.3

  1. #1

    FS20 Empfänger an Ethernut 1.3

    Anzeige

    Hi Leute,
    ich bastele seit einiger Zeit mit dem Ethernut 1.3 Board (www.ethernut.de) herum. Das Board basiert auf einem ATmega128.
    Ich möchte nun einen FS20 Empfänger mit dem Board verbinden um auf FS20 Funkbefehle reagieren zu können.
    Ich habe mich schon ein bißchen in das FS20 Funk-Protokoll eingelesen.

    Ich weiß jetzt nur nicht, wie ich überhaupt den Empfänger mit dem Board verbinden soll.

    Hier mal ein Bild von dem Empfänger:


    Der Empfänger wird mit 3V betrieben, das Board läuft mit 5V. Ich meine die Versorgungsspannung von 3V kann ich noch irgendwo herkriegen aber wie krieg ich das Datensignal in den Atmel?

    Gruß,
    Thomas

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    Hi Thomas,
    ich hatte auch mal vor den FS20-Empfänger mit einem AVR zu verbinden, hab das aber aus Zeit- und Interessenmangel dann aber nie angefangen. Statt ethernut wollte ich etherrape einsetzen:
    http://www.lochraster.org/etherrape/
    Die Anbindung an den AVR sollte ganz einfach sein, da der Mega128 einen Komparator(Spannungsvergleicher) besitzt. Der Komparator kann sogar einen Interrupt auslösen und ist somit wahrscheinlich prima geeignet für die Aufgabe. Du musst beim Komparator nur die interne Bandgap-Referenz (ca. 1,25V) einschalten und kannst dann Spannungen unterscheiden die größer oder kleiner 1,25V sind. (3V >1,5V ... 0V<1,5V)
    Ich hab vor knapp 2 Jahren das gleiche mal mit einem PIC16F84 getestet und konnte schon erste Erfolge feiern... aber im Endeffekt lief es doch nicht zuverlässig. Ein Problem mit dem Empfänger ist, dass bei fehlendem Funksignal irgendwelche Störungen aufgefangen werden und die Datenleitung ein undefinierbares Signal ausgibt. Mit einem analogen Oszi konnte ich nur ein wirres durcheinander erkennen. Sende ich allerdings ein FS20-Protokoll, so kann man das gut auf dem Oszi erkennen.

    Gruß,
    SIGINT

    P.S.: Hier mal ein Video: http://youtube.com/watch?v=_5cKufQUh3o

  3. #3
    Hi Thomas,

    Und hi @All im Forum. Bin hier schon eine ganze Weile "aktiver Leser".

    Ich habe das hier einen FS20 Empfänger mit einem Atmega8 gebaut.
    Der Atmega läuft auch mit 5V. Data geht bei mir direkt auf Pin 14(PB0/ICP). Ein 10K Widerstand geht von Data noch auf Masse. Das war's.

    Die Spannung für den Empfänger bekomme ich durch drei in Reihe geschaltete Dioden (je ca. 0,6-0,7V Spannungsabfall) pro Diode. Das ganze läuft hier schon seit ca. 7 Monaten ohne Probleme.

    Gruß
    kc-capain

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    3 V Ausgangssignal sehr knapp, reichen aber gerade aus um als H erkannt zu werden. Laut Datenblatt liegt die Grenze bei 0.6*Vcc = 3 V. Wenn man sicher gehen will, kann man ein 74HCT14 Gatter dazwischenschalten, oder den Komperator Eingang (mit 1.2 V interner Ref.) benutzen. Auch eine einfache Transistorstufe kann den Pegel auf 5 V bringen.

    Eine Möglichkeit etwas mehr Reserve zu bekommen wäre die Masse des Empfänger mit einer Diode auf ca. 0.7 V zu legen, dann sind die 3 V Signalhub etwas mehr in der Mitte der 5 V vom Prozessor. Man könnte auch etwas weniger als 5 V für den Prozessor nehmen, wenn sonst nichts dagegen spricht.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    Der Komparator vom AVR bietet sich aber an, da dieser auch einen Interrupt auslösen kann. Ich werd mich mal wieder an das Projekt ransetzen, wenn ich wieder etwas Zeit habe.... im Moment bin ich mit Weihnachten beschäftigt

    Gruß,
    SIGINT

  6. #6
    Ok Danke schonmal, ich habe momentan wieder ein wenig Zeit mich damit zu beschäftigen...
    Wenn ich mir die Protokollbeschreibung angucken, dann steht da:

    0: 400µs High, 400µs Low 600-1000µs Periodendauer
    1: 600µs High, 600µs Low 1000-1450µs Periodendauer

    Wie programmiere ich das ein, damit der µC die logische 0 bzw 1 richtig erkennt? Ich programmiere in C

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Den Datenempfang sollte man im Interrupt machen. Der Comperator löst am einfachsten ein ICP event aus. In der ISR wird dann die Zeit seit dem letzen ICP mit 500 us verglichen und etweder eine 0 oder 1 als daten erkannt und in einem Puffer gesammelt. Wenn ein Byte voll ist kann man dann dem hauptprogramm signalisieren das Daten da sind. Ganz logisch ist die Beschreibung des Protokolls oben nicht, denn bei 400us high+800us low komme ich immer auf 800us. Man müßte noch klären welche Zeit wirklich für die daten wichtig ist (Periode, high oer low). Je nach dem welche Zeit wichtig ist, muß dann noch die ICP Flanke umgestell werden.

  8. #8
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Hallo,

    das ganze ist schon ein wein weilchen her, habt Ihr erfolge damit erzielen können? Ich hätte interesse an einem Bascom ATMEGA32" FS20 Empfang. Senden klappt bei mir schon.

    Gruß
    Thomas

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    12.02.2004
    Beiträge
    14
    Mach es dir nicht so schwer...

    nimm Einfach einen CUL mit der FHEM-Firmware :http://busware.de/tiki-index.php?page=CUL

    Werde ich mir jetzt auch zulegen um meinem misterhouse FS20 beizubringen.


    Gruß,
    Thorsten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •