Hello,
I am designing a board around LPC51U68. When I put the chip in MSC USB ISP I can see the device on my PC and I can see the firmware.bin file on it. So far so good.
I noticed that the size of the firmware.bin file on the device is 260KB. I also noticed a bit too late that the bin file I generated from MCUXpresso IDE (using the Create binary on the project axf file), only was about 7KB.
I deleted the firmware.bin file on the device (LPC51U68) and I renamed my smaller bin file to firmeware.bin and copied it to the device(LPC51U68).
I proceeded to set the chip to boot from flash to see if my application software did what I wanted, it did not so I needed to create a new version. But when I switched back to MSC USB ISP, the device will no longer show up on my PC at all. Is the chip bricked?
I think I need some clarification on how to generate the correct bin file (from MCUXpresso IDE?) and how to recover from a corrupted firmware.bin file on the chip.
All help is appreciated.
Best regards,
Christian.
My board is very simple at the moment, I only have:
*)Pwr, GND
*)USB
*)UART to FTDI USB (PIO0_0 and PIO0_1)
*)Jumpers for ISP Boot pins.
I only use internal clocks on chip.
My board will boot up and show the CRP DISABLD device on my PC (when I boot from USB/MSC).
I tried the hello world example in the LPC51U68 SDK, and I changed SDK Debug consle to UART console. I downloaded the app, and set the MCU to boot from flash. I did not get any printouts on the UART (I use TeraTerm on PC setup according to NXP guide with FTDI TTL-232R cable).
And then when I switch back to boot from USB it will no longer show the CRP DISABLD device. The hello world example is really small so I am not sure what I am doing wrong. As long as the hello world uses internal clocks then there should be no problems with my board.
int main(void)
{
char ch;
/* Init board hardware. */
/* attach 12 MHz clock to FLEXCOMM0 (debug console) */
CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
BOARD_InitPins();
BOARD_BootClockFROHF48M();
BOARD_InitDebugConsole();
PRINTF("hello world.\r\n");
while (1)
{
ch = GETCHAR();
PUTCHAR(ch);
}
}
So in conclusion I have two problems:
1) USB Device no longer shows up after change of firmware.
2) No printouts on the UART to FTDI USB.
I managed to solve the problem, it was related to the boot pins not beeing correctly grounded, and was read as "one" and not "zero".
Best regards,
Christian.
Do I need to add code for USB in my application to make the MSC USB ISP boot process work?
Hello Christian Grosse,
- In normal way, after copy .bin file into device, just re-power board, it can work well, I test on my side.
- "how to generate the correct bin file (from MCUXpresso IDE?)"
-> Config Debug Console to "UART console", build, then refer to the below screenshot to generate .bin file:
-" How to recover from a corrupted firmware.bin file on the chip."
-> Do you mean your chip now can't run into USB Mass storage mode ? Can't show "CRP DISABLD" device?
BR
Alice
Hello Alice,
Yes, I no longer get "CRP DISABLD" device on my PC.
When I built my project in MCUXpresso IDE, I did not Configure Debug Console to "UART console".
My application size was only 7k, while the firmware-bin on device was 260k. Do I need to add code to my application to make USB MSC BOOT work?