STM32F030 ParityError nur bei aktiviertem RXNEIE?

OP #4636250
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;
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren