MCB900 ISP-ICP CRC Check Failure

Started by Gabe, May 31, 2006, 07:10:57 AM

Previous topic - Next topic

Gabe

I've got a problem programming the LPC9107 using an MCB900 using FM 3.0 (just upgraded from 2.52 - no change in the problem) with bridge code 1.7.

FM appears to program the device, but the CRC is not correct.  Programming the same hex file consistantly gives the same incorrect CRC, it is not different every time the device is reprogrammed.  Simply erasing all flash gives 0x00FF00FF in every block.  I do not have the fill unused flash button checked.  Setting the device configuration to double internal RC clock speed and then reprogramming has no effect on the CRC read from the device.

The MCB900 is set up using an NPN exactly as in the ApNote, which I know some people had problems with, but I'm not confident that's the problem in this case as I am able to read the correct device signature every time.  From my interpretation, the device signature will read all FF's at least occasionally when there is a hardware/power problem.  I'll order some parts in case I am wrong on this aspect, but I'll have to wait until they come in to try, so I'm hoping someone may have a suggestion other than the power problem.

Thank you,
Gabe

Andy Ayre

Erasing the flash should give a CRC of 00000000H, so something is wrong, either with the device or with the ICP to ISP translation.

Please complete the following steps:

Start Flash Magic
Press F1 to enter debug mode (Debug appears at the top of the window)
Go to ISP -> Read device signature
Go to ISP -> Erase and erase the flash blocks
Go to ISP -> CRC and read the device CRCs to show they are not 00000000H
Press F2 to exit debug mode
Email me the generated debug file C:\flashmagic.fmd
Delete the debug file.

My email address is at the bottom of this posting and in Flash Magic's Help -> About window.

Embedded Systems Academy, Inc.
support at esacademy dot com

Gabe

I figured out the problem.  I took the 1 nF caps off of the clock and data lines and it started working.

ESD protection + ICP = correct device ID, incorrect CRC

For future reference, reading device ID doesn't guarantee proper ICP circuitry.  The read device signature was a short command, while the calculate CRC involved much more data.

The board still isn't working, but at least the checksum matches now.