NAND flash program not reliable on MPC8308

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

NAND flash program not reliable on MPC8308

Jump to solution
1,755 Views
intrado_guy1
Contributor II

Hi,

 

We have designed a board with a MPC8308 and a NAND (Micron MT29F2G08). On some cards , when we try to reprogram the NAND flash with a new image, the write is failing during the verify stage. When we retry it always fails until we change the chip. We sent the defective chips to Micron and they say the chips are perfectly functionnal. If we install a new chip on a board the problem will go away but might return later. To program the NAND flash we have 2  options: using u boot driver or using our Lauderbach COP debugger. When the problem is present, both options fails to program the NAND.

It looks like something is marginal on our boards but we cannot find yet the source of the problem.

Anybody here had problem programming a NAND with a PowerQuicc II pro? How did you debug the problem? Is there a guideline for NAND flash detailing the timing, register settings, the algorithm, the things to double check in hardware...

 

Thanks

0 Kudos
1 Solution
1,289 Views
intrado_guy1
Contributor II

Hi,

 

I finally found the problem with the my flash. The signal LWE0_N had too much ringing on the falling and rising edges. As a patch, I've added a 27 pF capacitor on LWE0_N near MPC8308, this slow it down just enough  to eliminate all reflexions. I was able to remove all wait states and now the read / write accesses are very reliable.

 

Thanks everyone for the help,

 

View solution in original post

0 Kudos
4 Replies
1,289 Views
TomE
Specialist II

> Is there a guideline for NAND flash detailing the timing, register settings, the algorithm,

> the things to double check in hardware...

 

I've just had a look at the MPC8309 manual which I assume is close enough to the MPC8308.

 

There's lots of things you can fiddle in the FCM registers. You could try changing the Option Register timing (to relax and slow it down as much as possible) to see if that fixes it. You might also be able to slow down the LocalBus clock to see if that changes things.

 

I'd recommend going through EVERY timing parameter in the Micron Data Sheet "AC Characteristics" table and then comparing with the FCM programming. Then try to verify every one with a CRO.

 

Do you have a Development Board? Does it work OK? Does it use similar/same/different-brand chips? If it works, look for differences in the memory chip parameters, your board design or compare the signals side-by-side with a CRO.

 

Tom

 

0 Kudos
1,290 Views
intrado_guy1
Contributor II

Hi,

 

I finally found the problem with the my flash. The signal LWE0_N had too much ringing on the falling and rising edges. As a patch, I've added a 27 pF capacitor on LWE0_N near MPC8308, this slow it down just enough  to eliminate all reflexions. I was able to remove all wait states and now the read / write accesses are very reliable.

 

Thanks everyone for the help,

 

0 Kudos
1,289 Views
TomE
Specialist II

Check for over and undershoots on the address and data buses. We had SDRAM that was unreliable on a ColdFire part until we reduced the drive strength. See if you chip has that option.

 

Tom

 

0 Kudos
1,289 Views
intrado_guy1
Contributor II

Unfortunately the MPC8308 does not provide driver strength control for its local bus. The undershoot is indeed a bit high on the data bus. I agree with you that it is the next thing I should improve as an attempt to fix the bug.

0 Kudos