www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Parityfehler-Erkennung MSP430

Autor: Michael H (Gast)
Datum: 16.05.2008 08:34

hi!

momentan bastle ich an einem rs485-koppler. über schalter kann man u.a.
parity anpassen (ja/nein ; even/odd).

jetzt zur frage: ist der msp430f1611 in der lage parityfehler in
irgendeiner weise zu detektieren, oder muss das von hand zu fuß gemacht
werden?
wenn vom bus daten mit parity kommen und der schalter am koppler auf
"parity aus" steht, soll das mit einer led als fehler angezeigt werden.
Autor: Rufus t. Firefly (rufus) (Moderator)
Datum: 16.05.2008 08:42

Im Register UxRCTL gibt es die Statusbits FE (framing error), PE (parity
error) und OE (overrun error).

Das ist im User's Guide (slau049f.pdf) auf Seite 13-24 (273)
beschrieben.
Autor: Alex (Gast)
Datum: 16.05.2008 08:46

Hallo,

habe ich zwar noch nicht gemacht, allerdings hat er MSP430F1611 eine
automatische Paritygeneration (PEV Bit - UxCTL).

Die Fehlererkennung wird im Kapitel: Automatic Error Detection Seite
13-8 User Guide. Das PE Bit zeigt demnach einen Parity Error an.

mfg Alex
Autor: Michael H (Gast)
Datum: 16.05.2008 08:50

Danke für die schnelle Antwort!
Kapitel 13 bin ich durchgegangen...keine Ahnung, warum ich das vorher
nicht registriert habe. Mal wieder den Wald vor lauter Bäumen nicht
gesehen. ;-)
Autor: Michael H (Gast)
Datum: 16.05.2008 09:56

So ich hab das mal getestet (mit RS232 Treiber, UART-Mode) und alles
läuft wie es soll...aber irgendwie wird das PE bit nicht gesetzt.

Also am MSP ist PENA auf 0 gesetzt , über HTerm schicke ich Daten mit
"Parity even". Am Empfänger steht Parity auf none. Natürlich kommt beim
Empfänger nur Müll an, aber das PE bit in UxRCTL wird nicht gesetzt.
Hier mal die entsprechende Codezeile:

if ((U0RCTL & PE) || (U1RCTL & PE))
    {
     P5OUT |= 0x01;                    //Parityfehler-LED
    }

Im Users Guide findet man bei PE : "When PENA = 0, PE is read as 0."
Was will mir das sagen? Arbeite zum ersten Mal mit einem Mikrocontroller
und bin deshalb noch sehr unerfahren solche Informationen zu deuten.;-)
Autor: Michael H (Gast)
Datum: 16.05.2008 10:12

Hab gerade noch etwas merkwürdiges festgestellt:

Gleiche Einstellungen wie oben beschrieben.
Wenn ich "hallo" mit parity even sende kommt "ha" an, wenn ich mit
parity odd sende kommt "llo" an.
Für die Buchstaben die nicht ankommen wird kein RX-Interrupt ausgelöst.
Kann mir das jemand erklären? Es wird doch trotzdem in RXBUF
geschrieben, auch wenn die Parity nicht stimmt. Es müsste doch zumindest
ein Interrupt ausgelöst werden und irgendwas beim Empfänger ankommen.
Autor: Jörg S. (Gast)
Datum: 16.05.2008 10:20

> Also am MSP ist PENA auf 0 gesetzt , über HTerm schicke ich Daten mit
> "Parity even". Am Empfänger steht Parity auf none. Natürlich kommt beim
> Empfänger nur Müll an, aber das PE bit in UxRCTL wird nicht gesetzt.
Wenn am MSP die Parity ausgeschaltet ist, kann es auch kein Parity Error
geben. Eigentlich logisch, oder?
Autor: Jörg S. (Gast)
Datum: 16.05.2008 10:25

> wenn vom bus daten mit parity kommen und der schalter am koppler auf
> "parity aus" steht, soll das mit einer led als fehler angezeigt werden.
Man kann nicht 100%ig erkennen ob die Daten die gesendet wurden stimmen
oder nicht. UART ist halt asynchron, d.h. man ist darauf angewiesen das
Sender und Empfänger identisch eingestellt sind. Sind sie es nicht, kann
man evt. Fehler erkennen (Parity Error, Framing Error) das ist aber
Zufall und hängt von den Daten ab die reinkommen.
Autor: Rufus t. Firefly (rufus) (Moderator)
Datum: 16.05.2008 10:28

Auszug aus bereits erwähnter Dokumentation:


PE Bit 6   Parity error flag. When PENA = 0, PE is read as 0
              0 No error
              1 Character received with parity error
Autor: Michael H (Gast)
Datum: 16.05.2008 10:30

Das Problem mit den ausbleibenden Interrupts lag einfach nur daran, dass
URXEIE nicht initialisiert war. Noch ein dummer Anfängerfehler. Sorry!

@Jörg:
Hmm ok. Also wenn der MSP auf even steht und odd reinbekommt wird PE
jetzt auch gesetzt. Umgekehrt geht auch. Danke für die Hilfe!

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net