Versatile debugging agent – ReCON

During the process of firmware development two types of tests are initiated: functional and performance test. Each set of tests requires different tools which at the end lead to case where bunch of devices/instruments/probes are connected to device and PC. Having a all-in-one solution for these kind of tests is hard to achieve due to the spectrum of the tests and the range of the device. As such for a range of ST micro-controllers we made such an attempt with the device which incorporates:

  • USB 2.0 1-4 USB Hub
  • STLINK v2.0 programmer via STM32F103 MCU
  • Signal generation and debugging via STM32F446 FS & HS USB interface separately exposed on USB hub
  • ability to daisy chain through USB port

The key role of the STM32F446 is to provide bridge like function through USB CDC VCP class and designated peripheral on the aforementioned MCU. With the total of 15 USB endpoints (FS + HS) a rich set of functions can be simultaneously instantiated through separated USB class. In our case one USB VCP interface is used for device configuration of the remaining USB VCP interfaces which can act as serial probes/converters, digital and analog signal pattern generators, ADC signal capture, complex protocol implementation, etc… All digital IO pins are opto isolated for safe purposes.

The idea for this versatile board came from a sub-project where the multiple UART interfaces where enabled on a small dongle based on STM32F446 MCU. The good side of this approach was compact size, multiple IO’s and protocols exposed. However, no overcurrent/overvoltage protection.

Manual routing vs auto-router

Auto-routers can be a great tool if it is used correctly. Like any tool, it can be used to expedite certain tasks, and has limitations which need to be understood in order to leverage it effectively.

Young engineers entering the world of PCB design might be tempted to use the Auto-router tool expecting that this tool will do entire work for them. But soon they will see that this is not the case.

While we working on the custom development board we got an idea. For us, working on the development boards are always fun because most of the time these boards are symmetrical, and there is something quite mesmerizing about symmetry. (Figure 1).

We wanted to see how will the auto-router perform on this board. With the components already placed, for us humans, this would be a relatively easy task.

But for auto-router this was not an easy task. As you can see on Figure 2, the auto-router wasn’t able to finish the board. It gave us a couple of solution but non of them was finished. (Figure 3,4,5) show some of the solutions that we got from the auto-router.

Conclusion: When creating the auto-router, the creators where not able to replace the PCB engineers with the machine but they manged to give us a tool to increase our productivity.