Hello,
I am working with an NXP MCXA185VLH custom board and am trying to modify the default ROM ISP UART pins through the CMPA/PFR configuration.
1. Objective
The default MCXA185 ISP UART pins are:
LPUART2
TX: P2_2
RX: P2_3
I want to change the ROM ISP UART to:
LPUART4
TX: P3_27
RX: P3_28
I am using Secure Provisioning Tool (SPT) / SPSDK 3.10.0 and an MCU-LINK Pro as the debug probe.
2. CMPA ISP_UART_CFG configuration
In the PFR Configuration tool, I configured ISP_UART_CFG as follows:
UART_RX_PIN 0x7C
UART_RX_FUNC_SLOT 0b0011
UART_ISP_FLEXCOM 0b0100
UART_TX_PIN 0x7B
UART_TX_FUNC_SLOT 0b0011
UART_BAUD_RATE AUTO_BAUDRATE / 0b0000
According to the pin encoding, I understand:
0x7B → P3_27
0x7C → P3_28
Therefore the intended configuration is:
LPUART4
TX = P3_27
RX = P3_28
Function slot = 3
Baud rate = Auto baud detection
The MCXA185 documentation also lists LPUART4 as instance 4, which is why I configured the corresponding UART_ISP_FLEXCOM value.
3. CMPA generation and programming
I generated the CMPA binary using SPT/SPSDK.
The generated script executed successfully.
The important commands/results were:
### Create CMPA page - binary ###
pfr.exe export -c pfr_write_cmpa.yaml -o pfr_write_cmpa.bin
Success. (CMPA binary has been generated)
Then the bootloader connection was checked:
blhost -t 2000 -p COM8,115200 -j -- get-property 1 0
and returned:
{
"command": "get-property",
"response": [
1258488320
],
"status": {
"description": "0 (0x0) Success.",
"value": 0
}
}
Then CMPA was erased:
pfr.exe erase-cmpa -p COM8,115200 -f mcxa185
Result:
CMPA page address on mcxa185, Revision: latest is 0x7e000
CMPA page has been erased.
Then I programmed the CMPA:
blhost -t 5000 -p COM8,115200 -j -- write-memory 0x0007E000 pfr_write_cmpa.bin
Result:
{
"command": "write-memory",
"response": [
256
],
"status": {
"description": "0 (0x0) Success.",
"value": 0
}
}
Therefore, CMPA erase and write both reported success.
4. Entering ISP mode through MCU-LINK Pro
I am using an MCU-LINK Pro:
NXP Semiconductors MCU-LINK Pro (r0CF) CMSIS-DAP V2.241
Serial: JE3OY43UTRELI
The debug mailbox starts successfully:
nxpdebugmbox -i pyocd cmd -f mcxa185 start
Result:
Start Debug Mailbox succeeded
I then force the MCU into ISP mode:
nxpdebugmbox -i pyocd cmd -f mcxa185 ispmode -m 0
Result:
Entering into ISP mode succeeded
So the debug mailbox reports that the MCU has successfully entered ISP mode.
5. UART connection to the new ISP pins
I have a USB-to-UART adapter connected to the custom board.
The adapter is connected to:
MCXA185 P3_27 / P3_28
The serial port is:
COM27
The connection is crossed:
USB-UART TX → MCXA185 P3_28 (RX)
USB-UART RX ← MCXA185 P3_27 (TX)
GND → GND
I am testing at:
115200 baud
6. BLHOST does not respond on the new ISP UART
After entering ISP mode, I run:
blhost -t 10000 -p COM27,115200 -j -- get-property 1
However, I get:
SpsdkNoDeviceFoundError: No devices for given interface 'uart' and parameters 'port=COM27, baudrate=115200, timeout=10000' was found.
Therefore, the ROM ISP bootloader is not responding through COM27/P3_27/P3_28.
I have also observed the following on the serial monitor when entering ISP mode:
[RX] - 00
but I do not receive a valid BLHOST response.
7. COM27 is physically detected
nxpdevscan shows the MCU-LINK Pro and related USB devices correctly, but:
Scanning UART devices... Nothing found
The USB-UART adapter itself is available as COM27 in Windows and is being used by the serial monitor/BLHOST.
8. Original ISP UART works
Before changing the ISP UART configuration, I was able to communicate with the MCU through the original ISP UART using:
blhost -t 10000 -p COM8,115200 -j -- get-property 1
which returned successfully:
{
"command": "get-property",
"response": [
1258488320
],
"status": {
"description": "0 (0x0) Success.",
"value": 0
}
}
This confirms that:
The MCU is functional.
ROM ISP is functional.
BLHOST/SPSDK is functional.
The USB-UART adapter and serial communication setup work.
The problem appears after changing the ISP UART configuration to P3_27/P3_28.
9. Debug memory access issue
I also attempted to verify the CMPA contents directly through the MCU-LINK Pro.
CMPA is located at:
0x0007E000
I used:
nxpdebugmbox -i pyocd mem-tool read-memory -f mcxa185 -a 0x0007E000 -c 0x100 -h
but received:
SPSDKAppError: SPSDK: The memory access port is not found!
I also tried:
nxpdebugmbox -i pyocd mem-tool test-connection -f mcxa185
which returned:
The test connection ends NOT successfully.
I tried enabling recovery reset:
nxpdebugmbox -i pyocd -o enable_recovery_reset=True mem-tool read-memory -f mcxa185 -a 0x0007E000 -c 0x100 -h
but received the same:
The memory access port is not found!
However, the debug mailbox itself can still be started:
Start Debug Mailbox succeeded
and ISP mode can be entered:
Entering into ISP mode succeeded
10. SPT connection issue
When I tried to use the PFR Configuration window again, it showed:
PFR Configuration, MCXA185, COM8[baud=115200]
and reported:
Connection problem. Check the connection dialog for configuration.
Failed to open UART port with:
Could not open port 'COM8'. Access denied.
This appears to be a separate COM-port access issue because COM8 was already being used by another application/process.
PS. Ive also configured the ISP_MISC_CFG : ISP_UART_CUST in the secure provisioning tool and done a power cycle too. Literally I've done everything that i could find via documentation and even support and there is no chance for silly mistakes from my side. Please help me resolve my issue.
Thank you.
Hello @Alice_Yang ,
I have already performed a full power reset after programming the CMPA.
I also tried entering ISP mode using the ISP pin as suggested. However, the MCXA185 still does not respond through the configured ISP UART, and blhost reports that the device does not respond to the PING.
Thank you.
Regards
Uday