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.

TMS570LC4357 EMIF timeout

The EMIF in our application is configured to perform asynchronous transactions.  We are performing some power-up testing that causes the EMIF_nWAIT input to the microcontroller to not be asserted.  The test is simulating a fault and this is the expected result of the test.  This causes the MAX_EXT_WAIT value in the AWCCR register to be exceeded.  The AT_MASK_SET bit of the INTMSKSET register is 0 meaning the Asynchronous Timeout Interrupt is disabled.  The peripheral does terminate the transaction, however we are receiving a Data_Exception which we believe is a SyncExternalAbort. 

Is there a method to work around this exception while we are running this test?

  • Hello Tom,

    I am not certain if there is a work around so I am going to ask some of my colleagues if they are aware of anyone that might have some experience with what you are trying to do. I will get back to you with an answer soon.
  • Hi Tom,

      Before you do the test, can you not first set a flag in the internal RAM? This flag indicates you are entering a test mode. You will then read from EMIF forcing the extended wait  to expire. In the data abort handler you first test to see if the flag is set. If set, it means the EMIF timeout is intentional and expected. You can just clear the 'at' bit in the interrupt raw register. After the test you can clear the test flag so from now on you are no longer in test mode.  When you are not in test mode, you will have a real handler to handle this timeout situation.

      There is no way to suppress the error generation to the CPU. The EMIF module replies an error response to the CPU in the event when a read times out. The EMIF does not know what is a real or a diagnostic operation. So somehow you have to handle the timeout in the data abort exception service routine.