Digital Pulse Processing

This work builds upon previous efforts to develop a complete hardware solution for X-ray spectroscopy.

After achieving promising results with the RedPitaya project, I decided to explore the use of modern 32-bit microcontrollers for handling all the necessary processing in X-ray spectroscopy.

Commercial systems typically rely on FPGA for signal filtering from X-ray detectors due to its speed, but they come with drawbacks such as complex electronics and high power consumption. Microcontroller-based systems, on the other hand, offer unique advantages, including:

  • High level of integration
  • Easy development using high-level programming languages
  • Rich analog and digital peripherals
  • Low power consumption
  • Cost-effective development and production
  • Flexibility to adapt to new functionalities
  • Compact form factor with minimal external components required

And the disadvantages:

  • Still slower than FPGA

The main disadvantage is that microcontrollers are still slower than FPGA. In this initial test, a small board with minimal external components was designed, featuring an Arm Cortex-M4 microprocessor with advanced analog peripherals.

The signals are sampled by the integrated ADCs operating at maximum speed, and a dedicated algorithm performs real-time analysis to extract X-ray events (represented as peaks). The microcontroller’s rich peripheral set enables necessary signal filtering and drives X-ray detectors without the need for additional components. Almost all available blocks of the microcontroller are utilized.

The obtained spectra are then transferred to a PC using the USB protocol, where a dedicated software interface handles the data.

The successful results achieved with the DPP (Digital Pulse Processing) led to the development of a more comprehensive spectrometer comprised of eight microcontrollers operating in parallel. These microcontrollers simultaneously process signals from 16 X-ray sensors. In this configuration, a ninth processor serves as the main controller, overseeing the operations of all the microcontrollers and managing data transfer from all the channels to the PC.