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.

PBIST Example



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

  • Irune,

    The owner of that app note is currently out of the country, I will try to get it from him as soon as possible.

    Regards,

    Michael Sherman

  • Hi,

    Thanks for your attention, I will be waiting for it.

    Regards,

    Irune

  • 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

    Regards,

    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?

    Thanks,

    Irune

  • 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.

    Regards,

    Haixiao