- LiTime Speicher und Akkus         
Ergebnis 1 bis 6 von 6

Thema: TowiTek RFID-Reader mit ATMega32 auslesen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.10.2009
    Beiträge
    5

    TowiTek RFID-Reader mit ATMega32 auslesen

    Anzeige

    Praxistest und DIY Projekte
    Hey Leute...

    habe mich in den letzten Tagen durch unzählige Artikel und Foreneinträge gelesen,
    aber leider ohne einen Erfolg zu erzielen.

    Aber erstmal zum Problem:
    Ich habe mir bei Conrad den TowiTek RFID-Reader und dazu zwei passende Transponder.
    Nun habe ich vor, den Key der Transponder mit dem Board: RN-Control auszulesen und auf nem LCD anzeigen zu lassen.
    Bis jetzt habe ich immer nur undefinierbare Zeichen rausbekommen.

    Wäre sehr dankbar, wenn mir da jemand helfen könnte.


    Zum RFID-Reader:
    Datenschnittstelle: seriell TTL, 9600bps / 8N1

    Jedes Byte beginnt mit einem Startbit (Low)
    Es folgen 8 Datenbits
    JedesByte endet mit einem Stopbit (High)

    Es werden insgesamt 5 Bytes übertragen.

    Daten werden alle ca. 200ms erneut gesendet.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von w00za Beitrag anzeigen
    Hey Leute...

    habe mich in den letzten Tagen durch unzählige Artikel und Foreneinträge gelesen,
    aber leider ohne einen Erfolg zu erzielen.

    Aber erstmal zum Problem:
    Ich habe mir bei Conrad den TowiTek RFID-Reader und dazu zwei passende Transponder.
    Nun habe ich vor, den Key der Transponder mit dem Board: RN-Control auszulesen und auf nem LCD anzeigen zu lassen.
    Bis jetzt habe ich immer nur undefinierbare Zeichen rausbekommen.

    Wäre sehr dankbar, wenn mir da jemand helfen könnte.


    Zum RFID-Reader:
    Datenschnittstelle: seriell TTL, 9600bps / 8N1

    Jedes Byte beginnt mit einem Startbit (Low)
    Es folgen 8 Datenbits
    JedesByte endet mit einem Stopbit (High)

    Es werden insgesamt 5 Bytes übertragen.

    Daten werden alle ca. 200ms erneut gesendet.
    Und was willst Du jetzt wissen? Das RS 232 Protokoll ist genormt und im AVR fest verdratet. Du brauchst also nur 9600.8.N.1 einstellen und eine 5 Byte große String Variable einlesen und diese mit Print oder LCD Befehl ausgeben. Wenn kein Quarz sondern der interne Oszillator verwendet wird, kann es allerdings passieren das "Müll" gelesen wird weil das Timing Grotten schlecht ist. Obwohl bei 9600 bps sollte es gerade noch klappen.

    "Jedes Byte beginnt mit einem Startbit (Low)" das sieht nach PC üblicher invertierter Logik aus, Bascom kennt bei Config Seriell den Parameter (Inverted), der biegt das wieder zurecht. Oder Du empfängst einzelne Bytes und invertierst die selber ehe sie Ausgegeben werden...

    Code:
    input a
    
    a= a xor 255
    
    Print a
    Gruß Richard

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    24.10.2009
    Beiträge
    5
    Danke erstmal für die Antwort.

    Das Problem ist, dass das Signal etwa alle 200ms gesendet wird und ich nicht weiß, wie ich das Signal nur einmal in einer Variablen abspeichern kann.
    ich müsste also irgendwie Start und Ende abfragen und alles dazwischen abspeichern.
    Nur das bekomm ich nicht hin.

    Wenn mir da vielleicht einer helfen könnte...

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von w00za Beitrag anzeigen
    Danke erstmal für die Antwort.

    Das Problem ist, dass das Signal etwa alle 200ms gesendet wird und ich nicht weiß, wie ich das Signal nur einmal in einer Variablen abspeichern kann.
    ich müsste also irgendwie Start und Ende abfragen und alles dazwischen abspeichern.
    Nur das bekomm ich nicht hin.

    Wenn mir da vielleicht einer helfen könnte...
    Du Liest das Signal in eine Variable (wert_neu) ein und Kopierst diese nach (Wert_alt). beim nächsten Einlesen prüfst Du ob Wert_neu = Wert_alt ist und wenn ja, wird Wert_neu verworfen. Wenn nein Wert_alt = Wert_neu und es geht von vorne los.
    Ausgegeben wird dann immer nur Wert_alt wenn dieser sich geändert hat.

    Aber ehe Du nicht lesbare Daten bekommst wird das eh nichts! Oder klappt das jetzt? Start und Ende erkennt die Schnittelle selber am Start und Stopp Bit, was bei Dir ankommt sind schon die eigentlichen Nutzdaten. Das problem ist das Format der Daten, ein PC RS232 Signal ist gegenüber einem µC Signal invertiert.

    µC...........0101010101
    PC...........1010101010

    Damit sich die beiden verstehen muss das PC signal inverteit werden und das macht man mit einer XOR Verküpfung.

    PC..........10101010
    EXOR.....111111111
    ---------------------------
    ...............01010101

    Wie schon erwähnt, Bascom kann das auch automatisch erledigen. Das Start/Stopp Bit auswerten braucht man NUR wenn man die Empfangsroutine komplett in Assembler selber baut. Habe ich vor 20 Jahre mal gemacht, inklusive auto Baud Erkennung.

    Gruß Richard

    Gruß Richard

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Datenschnittstelle: seriell TTL, 9600bps / 8N1
    Besitzt das RN-Control nicht einen Pegelwandler für den direkten Anschluß einer RS232-Schnittstelle? Dieser Wandler ist vermutlich vor den RS232-Pins eingebaut. TTL-Signale sind direkt am Port-Stecker verfügbar (PD0 und PD1 bzw. RxD und TxD)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von radbruch Beitrag anzeigen
    Besitzt das RN-Control nicht einen Pegelwandler für den direkten Anschluß einer RS232-Schnittstelle? Dieser Wandler ist vermutlich vor den RS232-Pins eingebaut. TTL-Signale sind direkt am Port-Stecker verfügbar (PD0 und PD1 bzw. RxD und TxD)
    Stimmt. Aber TTL wird ja schon angeliefert allerdings (nach Beschreibung) in negativer Logik (Start Bit = L/H) µC's arbeiten mit normaler Logik (Startbit = H/L). Deshalb (meine) Xor Behandlung, einfache Inverter in TX/RX würden auch klappen. In den üblichen Max 232 Typen sind auch welche damit das Signal nicht nur Spannungsmäßig sondern auch Pegel Richtig um gesetzt wird.

    Gruß Richard

Ähnliche Themen

  1. AD7715 mit Atmega32 auslesen
    Von silvio12 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 04.09.2010, 08:43
  2. Atmega32 TXD RXD eeprom auslesen
    Von MOsfetgrille im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 17.10.2009, 17:35
  3. rfid reader IC für HDX Transponder und 134kHz
    Von Mandi Nice im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 04.04.2008, 21:18
  4. Conrad Rfid Reader an µController
    Von hdtvfreak im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 17.03.2008, 08:07
  5. Wie GPS-Modul mit AtMega32 verbinden zum Daten auslesen?
    Von ensacom im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 31.10.2007, 20:41

Berechtigungen

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

LiFePO4 Speicher Test