Temperature calculation improvements #111
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Improves the temperature calculations to account for vdda, which is 3V when the temperature sensor is calibrated but may vary in the target application. Additionally, updates the ADC examples to use VDDA (in two cases,
adc-one-shot-dma.rs
uses a hardcoded value to minimize changes).I implemented the calculation using both floating point and integer arithmetic. The integer version is less accurate, but the promised accuracy is quite low (datasheet quotes +/- 5C) so I think in most cases the integer version is more than sufficient.
Note that in the standard peripheral library (link) the CAL2 temperature used is 110 degrees C, which is inconsistent with the STM32G4 datasheet. I assume this is a mistake.
I don't have access to the equipment to test this accurately at this time, but I get plausible readings at room temperature and after the part has warmed.