03: Failed on chip setup: Ec(01). Invalid, mismatched, or unknown part
When you set up a project, one of the things that you do is select the MCU that you will be running your code on. You can see which MCU is selected by checking in Project Properties, or more visibly it can be seen at all times in the IDE's status bar.
When the tools connect to your target board, one of the things they will do is check this MCU setting against the part that is found on the board. This is done for two reasons:
- Downloading code built for one MCU to another MCU is typically a bad idea, as peripherals, memory and even the CPU may differ. Hence you code is unlikely to function correctly.
- Certain versions of the Code Red IDE - for example the LPCXpresso IDE - are restricted in the parts that they can actually connect to.
If the MCU the code is built for is found to be different from the actual target, then an error will be given as both a pop up window, and also in the MCU Debug Log in the console view. Thus for example, if you try to download an LPC1764 project to an LPC1768 board then the MCU debug log will report:
LPCXpresso Debug Driver v2.0 (Oct 27 2010 12:23:24) Looked for chip XML file in C:/nxp/lpcxpresso_3.5.6_234/bin/LPC1764.xml Looked for vendor directory XML file in C:/nxp/lpcxpresso_3.5.6_234/bin/nxp_directory.xml Found generic directory XML file in C:/nxp/lpcxpresso_3.5.6_234/bin/crt_directory.xml Emu(0): Conn&Reset. DpID: 2BA01477. Info: RDBV20002 SWD Frequency: 3000 KHz. RTCK: False. Vector catch: False. Packet delay: 0 Poll delay: 0. Invalid LPC1764 Part ID: 0x26013F37 Known LPC1764 ID(s): 0x00011922, 0x26011922 03: Failed on chip setup: Ec(01). Invalid, mismatched, or unknown part
[Recent versions of the tools display more information in the log than earlier versions, so you may not see all of this information if you are running an older version.]
If you see this error, then typically you simply need to reconfigure your project to use the actual MCU on your target board.
Note that where this involves changing from one MCU to another within the same family (for example LPC1768 to LPC1764), then you can simply change the selected MCU in the "MCU settings" of Project Properties. However if you need to change the MCU from one family to another (for example from LPC1343 to LPC1114), then care needs to be taken, as you will also need to change the startup code, linker scripts, etc. In many cases, you may find the simplest way forward is to create a new project with the correct MCU selected and copy your source files across.
