Other Parts Discussed in Thread: C2000WARE
Tool/software:
The FSI section of the TRM indicated the data buffer is circular in nature. But does not give good, detailed definitions for this operation nor the events generated. I do not see the examples handling the data buffer. I don’t see any other forum responses addressing this either.
CURR_BUF_PTR – is this the last data word of a message or the first data word? The TRM says this is the number of data words not read. Does this go down as I read words out? If not what resets it? Does it just change one every new message (TRM says it’s words not read out, so reading make it update)?
CURR_WORD_CNT – is the size or number of data ints last received. Similar questions to CURR_BUF_PTR.
Are these updated on every Reception?
BUF_OVERRUN - How does this get generated? The TRM is says it is generated when an overrun condition has occurred. Is it when the buffer wraps or goes over 16 with out a read or something? What exactly makes this tracking or detection of this reset/restart (not the EVT status).
BUF_UNDERRUN - How does this get generated? Is this the software reading a location that has not received any data since last read? What exactly makes this tracking or detection of this reset/restart (not the EVT status).
What happens when the buffer is not Circular and the buffer ptr is reloaded or set back to zero on each Rx and before every Tx?
I am interpreting that the buffer BUF_OVERRUN and BUF_UNDERRUN errors will be generated as the buffer pointer is being forced to a value and making it disagree with what the FSI controller thinks they should be? Again, the TRM is lacking enough details make any conclusions on this.
The FRAME_OVERRUN actually has a decent definition. It is generated when a new frame is received, but the previous Rx has not cleared the error or frame received status. This type of information is more helpful.
Thanks in advance.


