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.
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.
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
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. ;-)
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.;-)
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.
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?
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.
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
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


