Hello everyone!
I’m working on a quality control setup for a project that measures temperature with PT1000 sensors. Each device has 4 sensors, and I need to test 4 devices at the same time, so that’s 16 sensors total. To do that, I need to simulate different resistance values that correspond to temperature readings.
Right now, I’m going with a setup where precision resistors are switched using MOSFETs, all controlled by a 16-channel SPI I/O expander to avoid wasting too many MCU pins. This keeps it simple, avoids mechanical relays (which are slow and wear out), and lets me control everything from an STM32. The attached image shows the setup for just one device, so I would need three more of these and i wonder if theres a way to make it simpler.
I've looked into analog switches and digital pots but they all had issues (extra resistance, limited range or just low precision). The MOSFET + SPI expander setup seems like a good balance between accuracy, speed, and reliability, but before I lock it in, I wanted to ask:
Is there a smarter way to do this?
I’m working on a quality control setup for a project that measures temperature with PT1000 sensors. Each device has 4 sensors, and I need to test 4 devices at the same time, so that’s 16 sensors total. To do that, I need to simulate different resistance values that correspond to temperature readings.
Right now, I’m going with a setup where precision resistors are switched using MOSFETs, all controlled by a 16-channel SPI I/O expander to avoid wasting too many MCU pins. This keeps it simple, avoids mechanical relays (which are slow and wear out), and lets me control everything from an STM32. The attached image shows the setup for just one device, so I would need three more of these and i wonder if theres a way to make it simpler.
I've looked into analog switches and digital pots but they all had issues (extra resistance, limited range or just low precision). The MOSFET + SPI expander setup seems like a good balance between accuracy, speed, and reliability, but before I lock it in, I wanted to ask:
Is there a smarter way to do this?
Attachments
-
74.2 KB Views: 44