This page describes the temperature-sensing element chosen for the sensor node of this project, a 1kOhm RTD.
Component Manufacture Info
The datasheet for our device can be found here.
The Mouser.ca link can be found here.
Resources for the RTD Software Interface in SSv5
The microprocessor that we are using has IADC capability on all the ports.
Some considerations:
- We only need one IADC, so we can look to IADC0.
- Single-ended measurements (as opposed to differential measurements) take the voltage compared to the low-level ground common to all.
- I chose to prefer timing over interrupts, because I wanted to get familiar with other timing functions, like millis()-equivalents for data sync.
For these reasons, I chose to base my test code off of iadc_scan_timer. Ultimately I did not have time to get non-zero values from the IADC.
There are several software examples that could provide guidance for this peripheral - I tried to choose one that would not shut into a lower energy level for testing (since I do not predict wanting to use lower energy modes during data collection), however this could be useful later on if this proves false.
- There is also a useful Arduino example on how to implement the algorithm yourself here.
Resources for the Circuit
To create the circuit around the RTD, a Wheatstone bridge is recommended for RTDs. The following references can be used for an estimate:
- Wheatstone Bridge Calculator - For determining the three resistances needed to create a Wheatstone Bridge in the same range as what is needed for the IADC.
- RTD Calculator - For determining the resistance of a standard RTD. We are using a 1kOhm RTD, which means it will be 1kOhm at 0°C.
- More sophisticated circuit - if there are problems with stability.
References
- How to deal with duplicate IRQ handlers, like those in the examples https://www.silabs.com/community/wireless/zigbee-and-thread/forum.topic.15.15.html/efr32_series_2_andiadc-Jpo8
Potential References
I have listed these in my log as potential sources, however I have not spent much time investigating them.
- Scanning the IADC in DMA mode https://www.silabs.com/community/mcu/32-bit/forum.topic.html/efr32xg21_adc_scandmamode-CF0p
- Troubleshooting the IADC (all zero values) https://www.silabs.com/community/mcu/32-bit/forum.topic.html/_efr32mg21a020f1024iadcmeasuretroublegiving-8TBr
- Look at examples across PBA and PBB https://www.silabs.com/community/mcu/32-bit/forum.topic.html/efr32bg21_iadc_acrosspapb-ChMM
- Understanding the IADC pin assignment (push-pull) https://www.silabs.com/community/mcu/32-bit/forum.topic.html/iadc_is_working_butwhyworkingwithadiffrentsp-HvOQ