Unable to connect to MCXC444 through USB in ISP mode

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Unable to connect to MCXC444 through USB in ISP mode

Jump to solution
1,490 Views
ali2
Contributor II

I can list MCXA153 using nxpdevscan and connect to it using blhost; I used FRDM-MCXA153 through USB. As for FRDM-MCXC444, I can do none of these. Appreciate any help.

Labels (2)
0 Kudos
Reply
1 Solution
1,379 Views
PakostaP
NXP Employee
NXP Employee

Hello Alireza,

nxpdevscan returns all device names that match the VID and PID of the connected board. Unfortunately, RTs and MWCT have the same VID and PID for mboot. MCXC is not listed among the devices because you are probably using an older version of SPSDK that does not support MCXC. Support for MCXC was added in SPSDK 2.6.0.

Regarding provisioning, did you reset the processor after erasing? If so, you moved the processor into a secure state, making provisioning impossible. You need to call blhost -- flash-erase-all-unsecure to move it out of the secured state. The erase operation sets the SEC field in the FSEC register in the FCF to a secured state. The provisioning process should be as follows:

1) blhost -- flash-erase-all-unsecure
2) Reset
3) blhost -- flash-erase-region
4) blhost -- write

For provisioning and FCF editing, you can use MCUXPRESSO-SECURE-PROVISIONING 25.03, which will be published in the upcoming day

View solution in original post

0 Kudos
Reply
3 Replies
1,451 Views
PakostaP
NXP Employee
NXP Employee
Hello Alireza,

On MCXC, peripherals are controlled by BCA (0x3C0) and boot options by FCF (0x400) setting. In the BCA peripherals can be disabled and in the FCF it is possible to disable ISP mode.
Can you connect the board via UART? 
- If not, load a new demo application via debugger to enable ISP. This can be done by loading new demo app sample from SDK 24.12 or newer. If you have older version, edit Flash_Config in startup_mcxc444.c, set it to the {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF3DFE}; to enable ISP.
- If yes, ISP is enabled and USB is probably disabled in the BCA. Edit register Enabled_peripherals and set USB to enabled. Or you can erase the device by blhost -p COMxxx flash-erase-all-unsecure. Now, the device is set to the default state and a USB connection should be available.
1,427 Views
ali2
Contributor II

Hello,

I have used the Flash_Config you provided and was able to list and connect to the CPU.

nxpdevscan generate the following text:

-------- Connected NXP USB Devices --------

Kinetis Bootloader - Freescale Semiconductor Inc.
Vendor ID: 0x15a2
Product ID: 0x0073
Path: HID\VID_15A2&PID_0073\6&3123388D&0&0000
Path Hash: 782949de
Name: mwct2016s | mimxrt1015 | mimxrt1060 | mimxrt1165 | mimxrt1182 | mimxrt1040 | mimxrt1176 | mimxrt1173 | mimxrt1181 | mimxrt1024 | mwct2014s | mwct2d16s | mimxrt1050 | mimxrt1189 | mimxrt1172 | mimxrt1166 | mimxrt1187 | mimxrt1171 | mwct2015s | mimxrt1020 | mimxrt1064 | mimxrt1010 | mwct2d17s | mimxrt1175
Serial number:

-------- Connected NXP UART Devices --------

-------- Connected NXP SIO Devices --------

-------- Connected NXP UUU Devices --------

===============================================================

I think the bootloader should list the correct CPU like what I saw in MCXA153; it is not a big deal for me as my objective is to program the flash memory of MCXC444 through USB.

I could erase the flash successfully but I could not reprogram it; I used the following command:

blhost -u "0x15a2:0x0073" -j -- write-memory 0x0 C:\Works\firmware.bin

and I got the following response:

{
"command": "write-memory",
"response": [],
"status": {
"description": "10001 (0x2711) Security Violation.",
"value": 10001
}
}

Could you please write what should be the correct steps for programming an unsecured flash memory.

Thanks

 

0 Kudos
Reply
1,380 Views
PakostaP
NXP Employee
NXP Employee

Hello Alireza,

nxpdevscan returns all device names that match the VID and PID of the connected board. Unfortunately, RTs and MWCT have the same VID and PID for mboot. MCXC is not listed among the devices because you are probably using an older version of SPSDK that does not support MCXC. Support for MCXC was added in SPSDK 2.6.0.

Regarding provisioning, did you reset the processor after erasing? If so, you moved the processor into a secure state, making provisioning impossible. You need to call blhost -- flash-erase-all-unsecure to move it out of the secured state. The erase operation sets the SEC field in the FSEC register in the FCF to a secured state. The provisioning process should be as follows:

1) blhost -- flash-erase-all-unsecure
2) Reset
3) blhost -- flash-erase-region
4) blhost -- write

For provisioning and FCF editing, you can use MCUXPRESSO-SECURE-PROVISIONING 25.03, which will be published in the upcoming day

0 Kudos
Reply