How to save the bricks with the RVB2601 board
[Copy link]
This post was last edited by bigbat on 2021-7-31 19:16
Today, the Pingtou Ge RVB2601 board I tested became a brick, but fortunately it was finally saved. I will record the whole process.
I wanted to test whether CH2601 can use openocd, so I tried to see if it can communicate with openocd.
Step 1: Open CSKYFlashProgrammer.exe, select the file, and click Start.
No success, the program prompts: Debugger server is not started.
Step 2:
Go to F:\rvb2601\CSkyDebugServer\bin directory and start CSkyDebugServer.exe
Found that the debugger could not connect
Maybe the information is not like this, anyway, I can’t connect.
This screen is correct. There is no option in ICE Device Select (Idle). I pressed the Jtag reset button several times, but nothing happened. I unplugged the signal cable connected to the Jtag. When I opened it again, it seemed that there was something in ICE Device Select (Idle). I clicked OK and saw that the debugger seemed to be connected.
I clicked here, started the Server, and opened CSKYFlashProgrammer again, but still couldn't connect. So I decided not to use CSKYFlashProgrammer anymore and decided to use the openocd script to manually connect to the system.
Unfortunately, I searched around but couldn't find any settings for openocd connection. I tried many ways, including modifying the "scripts" of other chips, but all failed. I wondered: Is it the problem of jtag USB driver? Then I found the driver in libusb library and installed several waves of USB drivers, including winusb, usbk, and CDC, but none of them could connect to the openocd service. I gave up.
I decided not to try it and continued testing according to the normal development plan. After writing the program, I started downloading it. At this time, an error occurred. I tried to reconnect the board. Tragic! The board was "bricked" at this time.
The phenomenon is: there is no problem with the board program and it has not been modified. The original program can continue to be used, but the jtag cannot be connected. Then I reinstalled the csky and still could not connect. At this time, I went to another machine and installed it again, but the result was still unable to connect to the board. It seems that the jtag firmware of the board may be damaged.
Then I found the schematic.
I found that the SWD pin is floating. Even if I find the firmware, I can't write it into the STM32103. It seems that I have no choice but to buy a programmer. I really don't know what's wrong.
I came to my senses and thought that since it was all broken, I would try to fly two wires, so I found the enameled wire removed from the transformer and scraped it clean with a razor blade. I soldered it on SWDCLK and SWDDIO, found a programmer, and then looked for the hex file in F:\CSky\CDK\CSKY\CSkyDebugServer\bin\links\CK-Link.
When I wrote the first file cklink_lite.hex, I tried it but it didn't work. Except for cklink_lite_iap, I tried other files but they didn't work. I didn't think cklink_lite_iap would work. I burned cklink_lite_iap in the end. I didn't expect: Hi! MD works. So I quickly tried a few more projects and they all worked. Only then did I feel relieved to remove the flying wires. Later, I opened the latest version of T-HeadDebugServer, and the program prompted me to upgrade! The upgrade was also successful.
I found out from the upgrade instructions that the original version of the USB driver had problems. I guess the bricking may be caused by the USB driver itself and my tinkering may also have something to do with it.
Through this rescue, I have a few suggestions
1. It is best to bring out the SWD for upgrading next time you design.
2. JTAG itself has a serial port, so it is best to bring it out.
3. The information should provide certain reminders for some risky operations.
|