Background
LPC55(S)XX and MCX series products support updating firmware (ELF, HEX, BIN or SREC/S19) in ISP mode, including USB, UART, SPI, and I2C connection interfaces. There was no official host software tool supporting SPI-ISP and I2C-ISP before, so it was difficult for customers to update firmware files through I2C and SPI in ISP mode. Now NXP has launched MCUXpresso Secure Provisioning Tool(SEC or SPT), a graphical interface tool that makes it easy to connect through the four ISP interfaces. Based on the SEC, this article takes LPCXpresso55S69 as an example to introduce the methods of updating firmware in four modes: USB-ISP, UART-ISP, SPI-ISP and I2C-ISP.
Preparation
(1)Software
MCUXpresso Secure Provisioning Tool is a graphical user interface tool, which is mainly used for security configuration. When MCU is in the ISP mode, you can use this tool to connect and communicate, it support all interfaces of ISP. LPC55(s)xx series include four ISP download interfaces: USB, UART, SPI, and I2C. This article is based on this to introduce.
(2)Hardware
LPCXpresso55S69-evk development board (chip version is 1B)
Steps
Make chip into ISP mode before using SEC tool connect. When power-on, BOOT ROM determines whether enter the ISP mode, based on the CMPA configuration in bit DEFAULT_ISP_MODE and ISP pin status. As shown in following tables:
Keep the default value of EFAULT_ISP_MODE to “000”, and enter the ISP mode by pulling down the ISP pin PIO0_5. The first valid probe message on USART,
I2C, SPI or USB locks in that interface. On LPCXpresso55S69 development board, connect the ISP interface cable (USB\UART\SPI\I2C), press and hold the ISP button, power on, it will enter ISP mode.
3.1 USB HID ISP mode
(1)In LPC55(s)xx, HS-USB is default USB-ISP port, LPCxpresso55s69-evk uses P9 port, use USB cable to connect P9 and PC.
(2)Press and hold ISP button, reset board, entered ISP-USB mode.
(3)Configure MCUXpresso Secure Provisioning Tool: select USB connection mode, test connection.
First, click "File->New Workspace", open the option to create a new workspace, and select the processor model you are using.
Then, click "Target->Connection" to open the connection configuration.
In configuration, select USB interface, click “Test Connection” button, if the result shows " ok", connected successfully.
(4)Select the source file in "Source executable image". This tool can build plaint image, signed image, and encrypted image. You can configure it according to your own requirements. For example, use a plain image file "lpcxpresso55s69_gpio_led_output.hex", this file is a binary file generated from MCUXpresso IDE under the SDK example.
Click the "Build image" button, ensure that the compilation was successful.
(5)Download the image file
Choose “Write Image” view, in “Image path” select the image generated by the previous step, then click “Write Image” button.
If download successfully, the following picture will be displayed:
3.2 UART ISP mode
(1)LPC55(s)xx use UART0 as UART-ISP interface, you can use USB cable to connect P6 of LPCxpresso55s69-evk and PC, or use USB-UART convertor to connect UART0 TX/RX and PC.
(2)Enter ISP mode, refer to 3.1.
(3)Configure MCUXpresso Secure Provisioning Tool, refer to 3.1, select UART connection mode, and perform connection test.
Step 4 and step 5 are the same as 3.1.
3.3 SPI ISP mode
(1) LPC55(s) 2x/6x currently includes two versions, 0A and 1B, which can be checked from the chip mask. The 0A version supports SPI3 and HS_SPI ISP interface, and the 1B version only supports HS_SPI ISP interface. This article uses version 1B for the experiment.
Both SPI and I2C use LIBUSB interface, LPC-LINK2 and MCU-LINK pro support this function interface, so as long as there is LPC-LINK2 or MCU-LINK pro, SPI-ISP and SEC tool connection can be realized. Special reminder: LPC-link2 and MCU-LINK pro must be updated to CMSIS-DAP debugging interface, J-link does not support this function.
In the LPCxpresso55s69-evk development board, SPI3 is connected to LPC-LINK2 by default, and HS_SPI is not connected, so an external connection is required, connect SCK, MOSI, MISO, and SSEL1 of HS_SPI to the corresponding positions of LPC-link2. For details, please refer to the lpc55xx manual and the development board schematic. It can also be connected according to the figure below.
The connection of the development board is shown in the below picture
(2) Connect the USB cable to the P6 port.
(3) Enter ISP mode, refer to 3.1.
(4) Configure MCUXpresso Secure Provisioning Tool, refer to 3.1, select the SPI connection mode, and perform a connection test.
Step 5 and step 6 are the same as 3.1.
3.4 I2C ISP mode
The I2C-ISP mode is the same as SPI, with the help of the LIBUSB interface, that is, the LPC-link2 on the development board.
Special reminder: LPC-link2 and MCU-LINK pro must be updated to CMSIS-DAP debugging interface, J-link does not support this function.
(1) Connect the USB cable to the P6 port.
(2) LPC55(s)6x/2x uses I2C1, and LPCxpresso55s69-evk development board has already connected I2C1 and LPC-LINK2, no need additional connection.
(3) Enter ISP mode, refer to 3.1.
(4) Configure the MCUXpresso Secure Provisioning Tool, refer to 3.1, select the I2C connection mode, and perform a connection test.
Step 5 and step 6 are the same as 3.1.
Summary
(1) All ISP interfaces (USB/UART/SPI/I2C) are supported by MCUXpresso Secure Provisioning Tool.
(2) LPC-link2/MCU-LINK pro must be configured as CMSIS-DAP debug probe.
(3) Check the chip version and make sure use the correct SPI port.
(4) Make sure that the usb cable interface is connected correctly and must enter the ISP mode before testing the connection.
View full article