Hi,
I am using a tms570 microcontroller and I am trying to use the PBIST module.
The spna128 application report ( http://focus.ti.com/lit/an/spna128/spna128.pdf ) talks about an example which performs the PBIST test on different memories, but I can't find it anywhere.
I think that it is a very interesting and helpful example so I will be very grateful if someone could told be where to find it.
Thanks,
Irune
Irune,
I think we might have forgotten to upload the example code that it references, I am looking into it and will get it to you ASAP.
Regards,
Michael Sherman
The owner of that app note is currently out of the country, I will try to get it from him as soon as possible.
Thanks for your attention, I will be waiting for it.
This is a CCS3.3 project. You can import it to CCS4.
The code is just example code how to call the function, which is not used for production purpose. The code is provided as it is. We are not responsible for any problem caused by this example.
0876.TMS570_PBIST.zip
Haixiao
Thanks for the example Haixiao,
I have been looking at it and I have a couple of doubts:
1- Both, the TRM and the application note spna128, say in the configuration steps that in case there is no failure the value of both FSRF0 and FSRF1 is going to be '0x00' and that in case of failure, any of these two registers is going to be '0x01'. So, is the following code snippet correct?
if { ((e_PBIST_ST.FSRFO_UN.FSRFO_UL || e_PBIST_ST.FSRFO_UN.FSRFO_UL )==0x00)
e_GIO_ST.Port_ST[0].Dout_UL |= 0x10; // TEST PASSES - Signal GIO Pin
...}
else {
PutText(" FAILED ****\r\n");
e_GIO_ST.Port_ST[0].Dout_UL |= 0x0; // TEST FAILS - Signal GIO Pin
Shouldn't it be an AND instead of an OR and the second term FSRF1? I have had the same trouble when looking at the pbist.c file in the demo software.
2- Is there any way to introduce an error in a memory group to check that PBIST works correctly?
3- The TRM says that a reset is required after PBIST, but this example has no reset, has it? is it always necessary?
1. no failure -> register =0 -> Test Pass. else (failure-> register !=0 -> Test fail). I do not see the problem
2. No
3. PBIST will destory any contents in the SRAM under test. That is the only reason that you might need a reset to restore the contents. It is not a must. If you run it at startup with no valid contents in the SRAM, I don't think you need a reset.