MCXC242VFM don't program with MCU-Link PRO

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

MCXC242VFM don't program with MCU-Link PRO

31,538 次查看
rodrigodws
Contributor I

I am trying to program the MCXC242VFM microcontroller using the MCU-Link Pro programmer. I tried with both MCUXpresso and VSCode, but was unsuccessful. I researched the programmer and tried to update its firmware, but I couldn’t.

I have two questions:

  1. Is the MCU-Link Pro programmer compatible with the new MCXC microcontroller series from NXP?
  2. Is it possible to establish any type of communication (command line) between the PC and the programmer?

 

Infos:

  • MCUXpresso IDE V24.9.25
  • MCU-Link Pro (r0CF) CMSIS-DAP V3.148

 

MCU-LINK-PRO  MCU-LINK-ARCHITECTURE 

标签 (1)
0 项奖励
回复
7 回复数

31,487 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @rodrigodws 

Yes, MCU-LINK Pro supports MCXC. Firstly, I recommend you use MCUXpresso IDE to test. Please check the following points:

  1. Hardware design: Is your board a custom board? If yes, please check the hardware design part for SWD. Refer to the schematic of the FRDM-MCXC242 for guidance:

  2. ISP Mode: Verify whether you can enter ISP mode using blhost or the Secure Provisioning tool.

  3. Debugger Firmware: Change the debugger firmware of the MCU-LINK Pro, for example you can change to J-link firmware to test.

 BR

Alice

0 项奖励
回复

31,471 次查看
rodrigodws
Contributor I

Hello @Alice_Yang,

I am working with a custom board that includes only the microcontroller, an SWD connector, and the necessary resistors and capacitors. This setup was designed primarily for testing purposes, as I plan to use the MCXC242VFM in my project (which has a different package than the FRDM-MCXC242).

When I attempt to program the microcontroller, I receive the message: "0 available SWD devices detected." I believe the system detects the presence of a microcontroller but is unable to identify the part number. I have attached a screenshot for reference.

I double-checked the SWD connections and compared them to the FRDM-MCXC242 board (which I also have). According to the MCXC242 datasheet, it suggests using a 10k pull-up resistor on SWD_DIO and a 10k pull-down resistor on SWD_CLK. However, on the FRDM-MCXC242, I noticed that 100k resistors are used instead.

I have two observations:

I also observed that I initially did not use a pull-up resistor or the 100nF capacitor on the reset_b pin. Could this omission be causing an issue with the microcontroller?

The MCXC242 does not appear in the list of supported devices in the MCUXpresso Secure Provisioning Tool (version 9). Additionally, I could not find blhost in my environment. As a result, I was unable to check if the microcontroller is in ISP mode.

Thank you for your support, and I look forward to your guidance!

Best regards,
Rodrigo Dorow

0 项奖励
回复

31,446 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @rodrigodws 

Please send the schematic of your board. I help you check. Thanks.

 

BR

Alice

 

 

0 项奖励
回复

31,432 次查看
rodrigodws
Contributor I

Hi Alice,

I’ve attached the schematic of my board for you to take a look at. Let me know if you need anything else!

Best regards,
Rodrigo Dorow

0 项奖励
回复

31,270 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @rodrigodws 

I have reviewed your attachment. It appears that there is no issue with the SWD design. You might try changing the 10k resistor to a 100k resistor, as shown in the schematic of the FRDM-MCXC242. If it still doesn't work, please try using a different debugger and USB cable for testing.

 

Alice_Yang_0-1731296176788.png

 

BR

Alice 

0 项奖励
回复

30,884 次查看
rodrigodws
Contributor I

Hi Alice,

I tried using the 100k resistors, but it still didn’t work.

 

I also tried using another debugger, a Segger, which was able to program the FRDM board but not my custom board. While communicating with the Segger through the J-Link Commander, I made several connection attempts. Attached is the .txt file for your review.

Summary of the three cases:

Case MCXC242VFM (custom board)

Initial Setup:

  • Interface speed set to 4000 kHz.
  • Device “MCXC242” selected.
  • Connected via SWD.

Issues Encountered:

  • Timeout while trying to halt the CPU.
  • Multiple reset attempts failed.
  • CPU was not halted after reset, resulting in a final error.

Case FRDM-MCXC242

Initial Setup:

  • Interface speed set to 4000 kHz.
  • Device “MCXC242” selected.
  • Connected via SWD.

Successful Initialization:

  • JTAG to SWD switching sequence executed successfully.
  • Device correctly identified as Cortex-M0 r0p1.
  • Resets executed as expected.

Without  Microcontroller 

Initial Setup:

  • Interface speed set to 4000 kHz.
  • Device “MCXC242” selected.
  • Connected via SWD.

Issues Encountered:

  • Timeout while trying to unsecure the device.
  • Unable to read the CPUID register.
  • Multiple attempts to connect to the device under reset failed, resulting in a final error message.

Key Differences

  • Timeout and Failure to Halt the CPU: In the VFM connection, there was a timeout while trying to halt the CPU, and multiple reset attempts failed, resulting in a final error. In the FRDM connection, the CPU was identified, and the resets were executed without issues.
  • Component Detection: In the FRDM connection, CoreSight components were detected and listed, whereas in the VFM connection, there were difficulties in halting the CPU and resetting the device.

Overall Summary

  • MCXC242VFM (custom board): Significant issues halting and resetting the CPU.
  • FRDM-MCXC242: Successful connection and initialization, with resets executed correctly.
  • Without Microcontroller: Failed to unsecure the device and connect to the core, resulting in a complete connection failure.

BR,
Rodrigo

0 项奖励
回复

30,448 次查看
rodrigodws
Contributor I

I have good news: I managed to program the firmware on our QFN32 board. Problem solved!

Summary of the Solution

I believe the issue was related to the reflow temperature. Here’s a detailed explanation:

I manually soldered three boards using a hot air soldering station. The second board was adjusted for the MCU-Link Pro programming connector, and the third was due to the first two lacking the RC circuit on the RESET pin, which I suspected might have damaged the microcontroller. The third board was being detected until yesterday when I decided to take some signal measurements and removed the RESET pin to understand what was happening during programming, using a logic analyzer. After undoing these changes, the microcontroller stopped being detected.

This morning, I replaced the microcontroller on the third board and noticed the prolonged heating time for the microcontroller and PCB. They were exposed to high temperatures for over a minute to solder (using wire solder and paste flux).

To send the board to Alessandro in the same previous condition, I decided to do one last assembly: using solder paste and reflowing it in an oven, as would be done in the SMT process (except for Pick and Place).

After reflow soldering, I reworked the board, assembled the connector and necessary jumpers, and checked resistances and continuity (I took this care with the other boards as well). I tested it, and it worked:

  • It is connecting and programming via J-Link Commander (the third board only connected but did not program).
  • It also worked in the IDE.

I was worried there might be an issue with this package since it is a new microcontroller. I apologize for the concern, but I needed to reach out to you.

BR,
Rodrigo

0 项奖励
回复