Not applicable
Jun 18, 2020
08:42 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 18, 2020
08:42 AM
Hi, Which flag should I be looking at to generate an interrupt when the asynchronous UART has completed receiving a message and the line is now idle for some number of bit periods?
How do I configure that number of bit periods?
I am getting confused by the different meanings for different protocols.
Thank you,
Charlie
How do I configure that number of bit periods?
I am getting confused by the different meanings for different protocols.
Thank you,
Charlie
- Tags:
- IFX
7 Replies
Not applicable
Jun 23, 2020
06:23 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 23, 2020
06:23 AM
the manual gives this description:
• Interrupt generation
– On a configurable transmit FIFO level
– On a configurable receive FIFO level
– On an error condition (frame, parity, overrun error)
– On various module internal events (end of ASC/SPI frame, LIN events)
which is what I want to take advantage of. I have enabled the flags one at a time but can't seem to get a message complete interrupt. Yes, I can get a RX interrupt for every byte, but not one at
the end of the message.
maybe I am asking the wrong question? How do you detect the end of an asynchronous frame?
thank you,
Charlie
• Interrupt generation
– On a configurable transmit FIFO level
– On a configurable receive FIFO level
– On an error condition (frame, parity, overrun error)
– On various module internal events (end of ASC/SPI frame, LIN events)
which is what I want to take advantage of. I have enabled the flags one at a time but can't seem to get a message complete interrupt. Yes, I can get a RX interrupt for every byte, but not one at
the end of the message.
maybe I am asking the wrong question? How do you detect the end of an asynchronous frame?
thank you,
Charlie
Jun 23, 2020
06:39 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 23, 2020
06:39 AM
Hi Charlie. UARTs are generally byte-oriented - there's no predefined frame protocol.
A typical implementation might use one DMA channel to handle a transmit buffer, and use another DMA channel to receive into a circular buffer. A slower periodic task might read that circular buffer and parse out the bytes.
LIN does have a defined protocol, which is why the AUTOSAR MCAL has an available LIN driver.
A typical implementation might use one DMA channel to handle a transmit buffer, and use another DMA channel to receive into a circular buffer. A slower periodic task might read that circular buffer and parse out the bytes.
LIN does have a defined protocol, which is why the AUTOSAR MCAL has an available LIN driver.
Not applicable
Jun 23, 2020
06:48 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 23, 2020
06:48 AM
thank you. I am coming over from the Atmel AVR32 and the Motorola 68360 before that. They both had counters in the UART that counted idle bit periods and could trigger an
interrupt after reaching that amount of idle time. We used these a lot because we would then know that the message was complete without knowing how long the message was.
Do you think that the manual refers to a "frame" as a single byte wrapped in start, stop, and parity bits? where as I was thinking it was a collection of bytes in a long message.
interrupt after reaching that amount of idle time. We used these a lot because we would then know that the message was complete without knowing how long the message was.
Do you think that the manual refers to a "frame" as a single byte wrapped in start, stop, and parity bits? where as I was thinking it was a collection of bytes in a long message.
Jun 23, 2020
07:18 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 23, 2020
07:18 AM
For UART, a frame is absolutely one start/data/parity/stop bit sequence.
Not applicable
Jun 24, 2020
05:44 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020
05:44 AM
Is there any chance the 2nd generation Aurix supports this feature? I am awaiting the NDA and eventually want to use the TC375.
Jun 24, 2020
05:59 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020
05:59 AM
The ASCLIN peripheral hasn't changed in the TC3xx.
What protocol are you trying to decode? There are lots of tricks you can do with DMA - check out conditional linked lists, where you can stop on a "pattern" (e.g., a particular termination byte value).
What protocol are you trying to decode? There are lots of tricks you can do with DMA - check out conditional linked lists, where you can stop on a "pattern" (e.g., a particular termination byte value).
Not applicable
Jun 24, 2020
07:03 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020
07:03 AM
good tip, maybe i can do something clever. I will look more closely at the streams. Thanks.