2023-02-21 10:42 AM
I have recently created a PCB in which I am attempting to program external FLASH via the QSPI interface. It is a very simple 2-layer PCB. The MCU is the STM32H723ZGT6. I am using an LDO to convert the 5V USB to 3.3V. There is a power LED. There are four discrete I/O LEDs that I am driving from the MCU. I am using two switches with internal pull-up resistors.
Programming is performed using an STLink V3Set on the TMS and TCK lines. I am using STM32CubeIDE as the development software. I have updated the drivers and firmware to the latest revisions.
My problem is that I designed and ordered some PCBs from JLCPCB. I assembled one and began my programming experience. I quickly became frustrated as the board would not program. In my attempt to remedy the problem, I began testing components and replacing anything that I thought might interfere with programming. Each time I would solder a new component on the PCB, the MCU would accept programming. If I let the board cool off, it would not accept programming. I discovered that the MCU will not program at room temperature but it will program if it is just above room temperature.
I populated a second PCB, thinking that I had an error with the first. The second one exhibited the same error. I replaced the MCU with a STM32H730ZET6 with the same results. I redesigned the PCB and ordered a new set. The new one exhibits the same problems.
I've had everyone in my office inspect it to see if they could find anything wrong. The pinouts are correct.
Some of the attempts I've tried:
1-Changing NRST capacitor values from DNP to 680pF to 0.1uF to 10uF (DNP does not work at all.
2-Removing the LDO and using 3.3V from an alternate source.
3-Using a capacitor in parallel to the boot0 resistor.
4-Cutting all traces from the programmer to the MCU and replacing them with wires.
5-Programming a known working PCB with the same MCU with the program and it works.
6-Programming the bad cold temperature PCB with a known working program and it doesn't work.
7-Changing programmers.
8-Changing the programming frequency.
Attached is a screenshot of the error. Has anyone else had this problem? Has anyone else been able to find a solution?
2024-04-04 03:02 AM
Hi @CClar.3
We had ABSOLUTELY same problems and came up with your forum post! We ordered PCBs from JLCPCB and we use STM32F103 for the project.
Your notes in here were complimentary to our trial errors. Our STM32 gets flashed when we heat up the board (or the chip alone) and not flash at all after we cool it down (we refrigerated to see the cold effect).
All of a sudden, we thought that the problem might be caused by residual flux or soldering grease. Then we have rinsed the boards with dishwasher detergent and dried completely. Guess what! It works since then with no problem at all. We will use cellulosic thinner for removing the residual flux or grease from now on.
I hope this could help you or anyone else dealing with the same unknown and annoying problem.
Cheers,