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.