Anyone have experience with NXP ARM micros? Or anybody else's for that matter. Looking at the embed proto board & wanting to know if the on-chip boot rom is present in all the NXP ARM chips & how is it activated in ones own board. It looks like it is wired into one of the USB ports in some way...anyway, just looking for experiences with using those parts. TIA, bill m
Get the datasheet and user manual, as well as the mbed documentation. They're nice chips but you need to know the how to's and what for's. From the UM, 32.3:
"The flash boot loader code is executed every time the part is powered on or reset. The loader can execute the ISP command handler or the user application code. A LOW level after reset at pin P2.10 is considered an external hardware request to start the ISP command handler. Assuming that power supply pins are on their nominal levels when the rising edge on RESET pin is generated, it may take up to 3 ms before P2.10 is sampled and the decision on whether to continue with user code or ISP handler is made. If P2.10 is sampled low and the watchdog overflow flag is set, the external hardware request to start the ISP command handler is ignored. If there is no request for the ISP command handler execution (P2.10 is sampled HIGH after reset), a search is made for a valid user program. If a valid user program is found then the execution control is transferred to it. If a valid user program is not found, the auto-baud routine is invoked."
Thank you Rich. There sure are a lot of them. I know I don't need everything in the "embed" demo board, but it sure looks simple to start with. It's not at all obvious from the nxp web site which of their devices have the built-in boot loader in rom, I see a few other part numbers that mention on-chip rom drivers, but there is no real conclusion that I can draw as to exactly what functionality these roms provide. Also I suspect that the lower-end parts may not have this nice feature. I got the part data sheet for the chip in the "embed" board, will see what it has to say. Looks like I may have to buy one to get the full doc package!
The mbed and lpcxpresso boards use a 2nd micro to go usb->jtag. You can actually cut off the programmer part on the lpcxpresso board but you have to use the code red ide (others may work but I did not go that far).
I think all of the M3 have the boot loader. You can check the data sheets. It's a simple setup that lets you program the part via UART0. If you are just playing around with the parts you can use FlashMagic to program. Some of the chips have ROM drivers for the peripherals. Kind of a built in driver library. This is not the same as the flash programming/ boot loader code.
The mbed and lpcxpresso boards are both easy ways to get started. Mouser has the lpcxpresso board for $23.75 now days.
Actually there is. I always use the internal bootloader to load software through the serial port. Some devices with USB have an extended bootloader which can make the microcontroller act as a USB stick so you can drag & drop the firmware into the controller using Windows explorer. How about that :-)
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
I don't see anything looking like another micro on the mbed board, but since all I get from the schematic link on nxp.com is a black box, it's hard to be sure...have not checked out the lpcexpresso board yet but will have a look.
I pulled out my mbed board. There is a micro on the back side. No part number, just "mbed". I suspect it's a LPC31xx version similar to the lpcxpresso board. I used the mbed for a short time but did not like the IDE. At the time the libraries were all closed source. Might be different now.
The lpclink boot loader part of the lpcxpresso runs under the codered IDE. The free version is limited to 128K program size but you can do a lot in that space. I had a SparkFun magjack in the parts bin and had a web server up and running in short time using the example code.
There are instructions on how to disconnect the lpclink part and use jtag to program the micro directly. Basically you cut the traces and put in a header. CodeRed will run on windows or linux but I had issue at the time getting everything to work with linux. Probably operator error. Now I use Eclipse, OpenOCD and TinCan Tools Flyswatter jtag programmer. Total cost for that setup was $49 for the flyswatter programmer.
It's pretty common for these sorts of parts to include a boot function. Sometimes it is in ROM and sometimes it is in the Flash and can be overwritten if you wish (or by accident).
I haven't worked with any of the CM3 parts yet (or CM4s for that matter) but have worked with older Atmel ARM 7TDMI parts. They included a boot loader that would work through the serial port or USB. I think it required a proprietary comms program on the PC which likely means Windows only.
I think you will find all of the major vendors do something similar.