first of all I have to say that I am very unhappy that the auto-detection for the target device was removed in Simplicity Studio v4 and I hope that you will put back. So now I am testing the possibilities of Simplicity Studio v4 and I have some questions.
1. After I choose my device hardware and before I program my target MCU where can I test that the device I entered is the same device that is connected? How can you be sure that both are the same? When I give the production to another department of my company I usually don’t see the results before it goes to the customer. The people working there are no developers so when I let them program the MCU how can I be sure that they don’t break anything by choosing the wrong device?
2. Where can I test the debug connection? Sometimes I have to deliver hardware with a tested debug connection but I don’t have any line of code. So all I want to do / have to do in this kind of situation is to check the power supply of the PCB and to make sure that the debug interface of the MCU is working.
3. When I want to program I BGM12x how do I know what target part I have to choose if it is not auto-detected?
The basic answer to why automatic device detection was removed is because Segger removed that functionality from their J-Link program because it had proved to be unreliable.
So when Silicon Labs updated the J-Link programs included in Simplicity Studio to add support for the latest parts we have released, that functionality was lost (but there is a possible command line option that could help). So there are not any plans to add that functionality back into Simplicity Studio.
1. How to be sure the correct part is specified when programming it?
What is the program flow for the people doing the programming at your company? i.e. how do they know which program file to put on which product? If the Simplicity Commander is being run from a command prompt, the option -d cortex-m3 will detect the part given the basic architecture (doesn't matter is part is cortex-m3 or cortex-m4 based the option will detect for either family). So, for instance, the command: commander device -d cortex-m3 info will display information about the connected device. So a simply batch file could be created that launches Commander with that option along with the file to program (or that takes the program file as an argument).
2. Segger has their J-Link program that can be downloaded for free. It can be used to connect to a device and then to display information about the device or read memory from the device, etc. It can be downloaded here: https://www.segger.com/downloads/jlink
3. All of the modules currently use an EFRBG1 part. The BGMxxx radio board can also be added as a "Solution" in the Simplicity Studio Launcher perspective and it will report which part is on that module.
thanks for the clarification. That was very helpful and informative for me.
1. For programming I never used the command line before. We usually use the Simplicity Studio for programming. There the people only need to do a few clicks and then the system is ready to program. In Simplicity Studio v3 after the pcb is connected through a StarterKit I let the people do a right click on the StarterKit and let them search for the connected Target. Than we started the Flash Programmer, searched for the right hex file (which usually has the same name as the pcb) from our server and then only pressed “Programm”. This way I was sure that nobody chooses the wrong MCU. I will follow your suggestion and see how the command line and batch files are working.
2. I have some StarterKits from SiLabs so I always end up using these Kits together with the Simplicity Studio for programming and debugging. I will check on the Segger programming tool. Can I continue to use the SiLabs StarterKits or do I need to buy an extra hardware from Segger?
3. Thanks for clearing up which controller I have to use. I never use the “Solution”. I basically start all my projects from the “Simplicity IDE” perspective. This is faster and easier for me. I rarely use the Launcher perspective. But I will look into the “Solution” option.
Thanks again for your help and your suggestions.
In answer to your question on point 2, you can use the Segger J-Link software with the SiLabs starter kits, there is no need to buy new hardware from Segger. The Starter kits actually have a Segger J-Link controller on the board.