Other Parts Discussed in Thread: F28M35H52C, CONTROLSUITE
Hello,
I'm trying to use the programmable built-in self test and it's not working. I'm using an F28M35H52C, and I've tried both Rev 0 and Rev B chips.
I think I am following the procedure as recommended in the technical reference manual. This is a portion of my code...
uint32 RunPBist()
{
HWREG(SYSCTL_CRESCNF) = 0; // Hold the C28 in reset during the test
HWREG(PBIST_PACT) = 1; // Enable the PBIST internal clocks
HWREG(PBIST_OVER) = 9; // override register
if((HWREG(NVIC_PEND2) & 0x08000000) == 0x08000000) {
return 1; // Return error code 1 - PBIST interrupt already pending. Device not reset properly.
}
HWREG(PBIST_ALGO) = 0x1FF00001; // Choose ALGO (March13N for all Single Port, Two Port Memories; Triple Read for ROM's) .
HWREG(PBIST_OVER) = 1; // Memory Override. This forces the PBIST controller to override the value in the RINFOL and RINFOU registers..
HWREG(PBIST_DLR) = 0x21C; // Configure PBIST to run in Go/No-Go testing mode and kick off the PBIST Test
// Wait for the PBIST test to complete by polling bit 27 of the NVIC_PEND2 register
while((HWREG(NVIC_PEND2) & 0x08000000) != 0x08000000) {}
// Once complete, clear bit 27 of the NVIC_UNPEND2 register
HWREG(NVIC_UNPEND2) = 0x08000000;
------------------------------
I'm getting stuck in the while loop. It's as if the test never finishes. Am I missing something?
Thanks,
Joel
