This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Getting "undefined" INTVECT0 value when using MiB SPI1

When processing interrupts for the MiB SPI (channel 1) I sometimes get a value that according to my reading of the TRM should be unused.  This primarily happens after I have halted the processor for a while while debugging.  Here are the details.

When I process an interrupt I read TGINTVECT0.INTVECT0 to see the cause of my interrupt.  The only interrupts that I have enabled is TG0 and RXOVRNINT.  After the core is halted and then released I sometimes read a value of 19 in TGINTVECT0.INTVECT0 which according to my read of the TRM (please correct me if this is wrong) should be unused.  When I look at the value of SPIFLG I see that TXINTFLG, RXINTFLG, and RXOVRNINTFLG are all set.  Empirically I have found that I can remove this "19" value by writing a 1 to SPIFLG.RXINTFLG.  I am wondering if this is normal behavior, and if so, where is the value "19" defined in the TRM.

  • Hi Andrew,

    I am assuming that 19 value is decimal, which corresponds to "Receive Buffer Overrun" Interrupt which you have enabled.
    If the receive buffers are read after the TG complete and before the next set of data is received you should not get Overrun interrupt. Please check your flow.

    Thanks!
    Prathap

  • That is correct sir.. I had a major "duh' moment just then :)  I did not see the little "h" at the end of the values in the INTVECT documentation, and of course 13h is 19.  Thank you for breaking my tunnel vision, and please disregard this question.