Forum: Mikrocontroller und Digitale Elektronik STM32F030 ParityError nur bei aktiviertem RXNEIE?


von Thomas H. (flaretom)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich schlage mich gerade mit folgendem Problem herum:
Mehrere Konten hängen an einer Art LIN-Bus. Die Daten dort sind 
normalerweise alle mit 7bit Odd-Parity gesendet. Ein neues Paket 
hingegen wird mit 0xAA (Even-Parity) gestartet, was bei den Empfängern 
einen Paritätsfehler auslösen soll. Die Idee ist dabei, dass die Knoten 
den normalen Empfangsinterrupt deaktivieren können und die HW erst beim 
Detektieren des Paritätsfehlers einen Interrupt auslöst und damit das 
Empfangen startet.
Bei der Implementation des Empfängers auf einem STM32F030 habe ich dafür 
während des Wartens RXNEIE deaktiviert und PEIE aktiviert. Allerdings 
bekomme ich jetzt gar keine Interrupts von der UART mehr. Sind RXNEIE 
und PEIE aktiviert bekomme ich Interrupts und der Paritätsfehler wird 
auch angezeigt.
Laut Datenblatt (RM0360 Reference manual, z.B. Diagramm Seite 627) 
sollte nach meinem Verständnis der PE Interrupt auch ohne RXNEIE kommen.

Hat jemand eine Idee, oder den gleichen Effekt beobachtet?

Anbei die Uart-Routinen (eine Mischung aus STM32CubeMx und meinem Zeugs, 
um mit CMSIS und HAL warm zu werden ;)).
Paritätserkennung funktioniert nicht (Zeile 17):
1
const uint32_t RECEIVER_WAIT = USART_CR1_UE | USART_CR1_RE | USART_CR1_PEIE;
Paritätserkennung funktioniert (Zeile 17):
1
const uint32_t RECEIVER_WAIT = USART_CR1_UE | USART_CR1_RE | USART_CR1_PEIE | USART_CR1_RXNEIE;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.