Editor Version ×
recommended

Pro Edition

free

Brand new interactions and interfaces

Smooth support for design sizes of over 3W

devices or 10W pads

More rigorous design constraints, more

standardized processes

For enterprises, more professional users

Std Edition

Easy to use and quick to get started

The process supports design scales of 300

devices or 1000 pads

Supports simple circuit simulation

For students, teachers, creators

Completed

PRO MakerLab JLink-OB_32f072, with virtual serial port (CDC)

JLink-OB_32f072, with virtual serial port (CDC)

Project tags

License

GPL 3.0

License: GPL 3.0

Mode:

Mode

Editors' pick

Editors' pick

  • 15
  • 0
  • 0
Update time: 2024-12-18 10:04:52
Creation time: 2024-12-18 05:41:06
Description

Description

Preface:

I have made a JLink-OB debugger based on 32f103 before, but the firmware itself does not support the virtual serial port function, but in the actual application and debugging, the serial port is often used to view and send data, so I came up with an OB debugger with VCOM virtual serial port function. There are a lot of OB debuggers made based on the 32f103 scheme on the Internet, and with virtual serial port function, I have copied one myself, but the effect is not very good in use, and occasionally there will be a problem that SWD cannot be recognized, it is not as stable as the original firmware extracted, so I turned my mind to seek the official OB scheme with VCOM.

 

Prologue:

Among the official solutions, VCOM functions are supported: J-Link-OB-K22, J-Link-OB-RA4M2, J-Link-OB-STM32F072, and J-Link-OB-SAM3U128. Based on the cost, difficulty of implementation, data acquisition and other aspects, a JLink-OB_32F072 simulation debugger based on the J-Link-OB-STM32F072-Cortex-M-64KB scheme was finally selected.

 

Preparation:

The schematic diagram of this solution is relatively simple to obtain, and it is available on the official website and the Internet, and there are many ready-made firmware on the Internet, and of course, there are many tutorials for extraction. However, most of the firmware on the Internet is many years old, and after burning, it will be recognized by the software as expired, allowing you to perform an upgrade operation. The frequent pop-ups are really annoying, and when you perform the upgrade operation, it is inevitable that the firmware will be lost and unusable (the reason for this is that you can know the name of it). I have carried a little information on the Internet for your reference, and interested students can study and study:

X893's DIY JLink-OB-072 (JLink+COM) : X893 (akb77.com)

This should be the original version that many people in China have referenced,This X893 god doesn't know who it is,But its ability has to be praised,Forcibly extracted the firmware belonging to J-Link-OB-STM32F072 from the official firmware,I only give a thumbs up to praise! As the saying goes, "the predecessors planted trees, and the descendants enjoyed the shade", "drinking water and not forgetting to dig wells", with the help of the big guys, it is easy and feasible for a little white like me to imitate.

不起名大大’s jlink ob latest firmware extraction

This should be the more detailed firmware extraction tutorial I have found so far, which is more friendly to novice friends. The firmware extraction methods are all the same, and combined with other 32F103 firmware extraction tutorials, the firmware extraction of 32F103 can be completed.

< Summary> There are a lot of information available for reference on the Internet, I won't list them one by one, as long as you find what you need and what is feasible, it is a good resource.

 

Body:

[Hardware]

This JLink-OB_32F072 solution not only supports SWD interface (+SWO), but also supports VCOM (virtual serial port) function, and the serial port supports four-wire serial port mode, but considering the limited number of pins and the relatively small use, CTS and RTS are not added. In addition, it is worth mentioning that this solution does not require additional crystal oscillators, which saves another amount of money on materials. Due to the built-in pull-up resistor of the DP, the USB port can be directly connected to the USB male data cable, and can be recognized by the computer without an external pull-up resistor. In terms of speed, the official reference is: interface speed 2MHz, download speed 100KiB/s, such a speed is enough for general small projects and daily use. The virtual serial port is used for the sending and receiving of serial port data, which is beautiful.

Without further ado, let's go straight to the dish:

This is the front of the PCB simulation diagram, the new use of a small package of ESD: ESDR0502N, the ESD is used for the electrostatic protection of the USB port, it is better that the USB data cable can run directly from the bottom of the chip, and the power access and ground terminal are located on one side, in terms of layout and signal flow direction, can reach a better level. There is nothing special to say about the rest.

This is the back of the PCB simulation diagram, there are relatively few devices on the back, only two resistors connected in series with the serial cable for isolation, and a pin header for connection. In addition to the four necessary contacts for downloading, the reserved test points also have a reset pin for the chip, which can be used for manual reset operation if the SWD interface is not recognized when downloading/reinstalling the firmware.

 

[Tips]

The PCB of this JLink-OB_F072 debugger is the same as the previous JLink-OB_32F0103 debugger, which is adapted to the USB shell.

 

[Firmware]

As mentioned in the preparations, most of the firmware circulating on the Internet was extracted many years ago, so when used on the new version of the software, there will inevitably be pop-up warnings, but it is impossible to use the official upgrade, so if you want to use the new version of the software, you need to extract the firmware from the new one, and the specific method can be found in the anonymous jlink ob latest firmware extraction 。 But there will also be a problem, if the extracted firmware is upgraded in the next version of the new software, then the previously extracted firmware cannot be used, but if you master the method, it is naturally not difficult. Again, if you don't upgrade the software, then this problem is not a problem. However, as the old saying goes, "there is a road in the book mountain and a diligent path, and there is no end to the hard work of learning the sea", for us who love to toss, is there any way to "once and for all" the method? As the saying goes: there are always more ways than difficulties, as long as you are willing to specialize, there must be a solution to this problem.

Through the analysis of the firmware in the software package, it is found that the firmware update deadline of JLink-OB_32F072 version has not been updated since 2019-01-07, and the latest extractable firmware version of J-Link OB-STM32F072 is: J-Link OB-STM32F072-CortexM compiled May 4 2017 14:44:00, extracted from JLink_V634h, Subsequent versions cannot be extracted (JLink_V640 and later). The problem is obvious, even if its firmware has not been updated for so many years, but the firmware that can be extracted is dated 2017-05-04, and the known firmware deadline is 2019-01-07, it is obvious that the 2017 version is not the latest firmware, and after burning the 2017 version of the firmware, it is bound to be a pop-up warning. So is there a way to solve this problem, the answer is yes. Based on the previous JLink-OB_32F0103 debugger research, a method of modifying the compilation date to avoid software recognition warnings was obtained, and the same can be followed here. In the attachment, I attached the firmware with a compilation date of 2019-01-07 and the original 2017-05-04 firmware modified by the 2017-05-04 version.

 

[Firmware Burning]

Firmware Flashing Instructions:
a. The firmware is divided into two sections, one is the first 8-byte head (header) part, and the burning address is: 0x8000000; The other part is the main part of the extracted firmware, and the burning address is: 0x8004800. When burning, you only need to flash the head and main by the specified address.
b. It should be noted that in the actual extraction process, there is a place that is different from the content described by the unnamed Dada. What he introduced is the use of 0x00 padding between head and main, and I concocted it according to the law, and after burning the firmware, I found that the initial S/N=0, isn't this the end of the calf. It is important to know that in order to use the debugger in the future, it is inevitable to load the SN, and by default, when the initial S/N=-1, you can use the command: Exec SetSN=XXXXXXXX (8 is a number) to modify the SN. It's over, Barbie Kora。。。。。。 However, fortunately, Huangtian has lived up to its intentions, and through many experimental studies, it has been found that when the data is 0xFF between head and main, the initial S/N=-1 situation can be realized, and after the chip erases the data, its internal data is formatted as 0xFF by default, so it is simply burned separately from head and main, and it is only necessary to burn it according to the correct programming address. This kind of intermediate filling 0xFF is the same as the situation of the OB-SAM3U128 debugger, which was difficult to use the firmware at that time, but the ...... could not be used, and then the intermediate data was filled with 0xFF to solve the problem. However, the 0x00 of using intermediate padding data is applicable to OB-32F103, and I haven't delved into the reasons for this.

c. As for why I didn't integrate the two pieces of firmware together, firstly, I did not find a more suitable and fast way to fill the 0xFF data, if I found a suitable way to update it later, and secondly, because it is not necessary to do so, because after the chip is erased, the default data is 0xFF, and there is no need to do more. As for why it needs to be filled with 0xFF or 0x00, I believe that you can understand the unknown exploration and extraction process, and I will not repeat it again. OB this kind of thing, the pursuit of a stable and reliable, as for whether the firmware is the latest, has little impact on daily use, here the firmware is modified, but also to get a long-term use, after all, the tool, with stability and hand, just like life, the most important thing is to be happy.

The first is a screenshot of the connection situation after the firmware flashing of the middle segment filled with 0x00:

Then there is a screenshot of the connection situation after the firmware flashing of the middle segment filled with 0xFF:

Finally, use the earlier version of JLink Commander to run the following command: Exec SetSN=XXXXXXXX (8 is a number) to take a screenshot of the connection after modifying the SN:

 

End:

Finally, it should be noted that the original version of this project is drawn by KiCad, and the schematic diagram and PCB provided are converted, although I have repaired and modified them, but I cannot guarantee that all places have been perfected, in order to avoid friends who want to make "incomplete" documents for production problems, so the original Gerber file and schematic pdf are added to the attachment for production. As for the original engineering file, it will not be uploaded, because the difference is not big, and it does not affect the understanding and use of this project. I made this debugger at the end of last year, and after several iterations, it meets the requirements of a basic debugging tool. Since most of the work is on hardware, there are not many opportunities to use it personally, but after many times of use and debugging, I have not found any problems for the time being. Of course, friends are also welcome to combine the actual use and put forward more existing problems and suggestions for improvement.

--------------------------------------------------------------------------------------

 

Follow-up 1:

22-05-16: Fixed the issue of separate firmware programming. Use WinHex to first fill in 18424 bytes (0x4800-0x08=0x47F8) of 0x00 data, then select the data and perform the "reverse bit" operation, that is, modify the 0x00 to 0xFF, and finally paste the first 8 bytes of the firmware body to the front of the firmware. Note: The last two attachments are the latest merged firmware, and the original discrete firmware has been cancelled; When burning the bin file, you need to fill in the initial address of the firmware: 0x8000000, the hex file already contains the firmware address information, and you can directly load the burning.

--------------------------------------------------------------------------------------

 

Follow-up 2:

22-05-30:

[1] Foreword:

Today, when I was using the debugger, I accidentally opened the J-Link Commander and found that the debugger information was with a license, as shown in the following figure:

So I came up with an idea: if we can find the location of the license and transplant the information to the original firmware, can the original firmware bring its own license? You know, the previous firmware does not contain a license, you need to use a tool to generate the debugger SN corresponding to the license and then add it to J-Flash before it can be used for download, if it can be realized, then you can add a license without burning the firmware, and realize "cross-device" use, so that it can be plug and play.

[2] Exploration:

By reading the debugger that already contains the license information, then saving the read data separately, and then comparing the differences with the original firmware, the location of the license information is found, as shown in the following figure:

[3] Implementation:

Add the license information data to the corresponding address of the original firmware that does not contain the license information, save, burn, and connect to the computer, and find that the debugger already contains the license. As shown in the figure below:

[4] Conclusion:

Through the extraction and fusion of firmware license information, the implantation of firmware license is realized, which avoids the subsequent steps of adding license and realizes plug-and-play replacement. After burning the firmware, SN=-1 can be modified by running a command from the earlier version of J-Link Commander (I used V6.34h). Finally, the original firmware containing the license information has been replaced, so you can download and use it with confidence.

 

---------------------------------------------------------------------------------------

 

Follow-up 3:

23-01-29:

Update content:

1. Remove the useless 1.5K pull-up resistor of the USB circuit;

2. The device adapts to LCEDA, corresponds the components to the mall, establishes the link between the schematic diagram and the PCB netlist, and realizes the display of the 3D model;

3. Optimize the wiring of some circuits.

3D renderings - front

3D renderings - back

--------------------------------------------------------------------------------------

 

Follow-up 4:

23-07-16:

1. Subject: I have to say that the Internet is very big, but it is also very "small". One day, I clicked on the message prompt of the open source platform, and unexpectedly found a reply from a mysterious netizen, and the general content of the content was that he was the "unnamed" big one I mentioned earlier, and then he had a firmware ...... that could be automatically upgraded. I have to say that this is more exciting than meeting netizens, and I am also grateful for the Internet and the spirit of open source, so that we can all know each other and make friends. The specific content is as follows (PS: When it comes to personal privacy information, I will mosaic some of the content, no wonder):

 

2. The firmware he provides, I have also tested it myself, and it does support automatic upgrade of official software, the specific steps are as follows:

a. After downloading the firmware, the pop-up window prompts that there is a new version of the firmware, click "Yes" to confirm the updated firmware;

b. The firmware update process is as follows:

c. After the firmware update is completed, the information displayed is as follows, and the SN serial number is -1, which can be modified by using commands in the lower version of the software;

d. This gives you an OB download debugger that supports automatic upgrades. It can be seen that the OB-f072 firmware information provided by the latest software points to 19 years, which means that its firmware has not been changed in the past few years, which is the latest firmware, which is naturally different from the 17 version of the shell "vest" firmware I extracted before; Paste it out to meet the needs of the little partners in this regard, because the official will be updated one day, and at the same time, it will also record the joy of this "netizen rush".

Finally,Paste the  不起名's firmware address,I won't provide the firmware compressed package,Friends in need,You can go to download it yourself,This is also to avoid reaching out to the party,Resources are not easy,And use and cherish。 The teleporters are on, drop, you have arrived at the door, please click to collect the information》》》》》》

https://download.csdn.net/download/qq_39663845/11109032

--------------------------------------------------------------------------------------

 

Follow-up 5:

24-09-23:J-Link OB-STM32F072-128KB-CortexM firmware support.

J-Link OB-STM32F072-128KB-CortexM is provided by GitHub boss zhangjinke, interested friends can go to download it by themselves, the portal opens: please click ->J-Link OB-STM32F072-128KB-CortexM. The differences between this firmware and the J-Link OB-STM32F072-CortexM firmware are as follows:

Firmware Schematic:

[Statement]

In order to avoid copyright disputes, this OB debugger is only for DIY enthusiasts or personal use, and the production and use must comply with the provisions of the relevant open source agreement, and shall not be used for commercial purposes. OB circuit and related source code firmware, the final interpretation right belongs to Segger official, I do not provide any form of technical support and services, let alone bear the consequences caused by improper use, please be aware, hereby declare.

Designed by LSanor (from OSHWHub)

Link:https://oshwhub.com/lsanor/j-link-ob-stm32f072_v1-2

Design Drawing

Design Drawing

schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
Empty
Project Members

Project Members

Target complaint
Related Projects
Change a batch
Loading...

Comment

Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn