i am thinking of creating a PCB with a NXP - LPC1756FBD80. It has a cortex m3 chip on it. I want to be able to program the chip on the pcb using a usb cable which i can directly connect to my laptop. But im not sure if im doing this right ive checked the datasheet for the chip and it has a section on suggested USB interface solutions. This section has a circuit but im not sure if this is enough to implement the functionality that i want. Any inputs from you guys would be appreciated. thank you
For a new chip, you need to get code into it through something like a JTAG port or the chip's serial (UART) port & primary bootloader. "Out of the box", you can't load new code into it over USB.
You need to implement a secondary bootloader that runs after the MCU's on-chip bootloader runs.
Check out NXP's App Note AN10866 - "LPC 1700 Secondary USB Bootloader".
This is the text from the beginning of the app note:
A secondary bootloader is a piece of code which allows a user application code to be downloaded using alternative channels other than the standard UART0 used by the primary bootloader (on-chip). The primary bootloader is the firmware that resides in a microcontroller’s boot ROM block and is executed on power-up and resets. After the boot ROM’s execution the secondary bootloader is executed. The secondary bootloader in turn will then execute the end-user application.
This application note uses USB as an example for developing a secondary bootloader on a LPC1700 series microcontroller.
If that sounds like what you need (I believe it is), congratulations. Also LPCWARE has some files & info relevant to the topic.