Добавление функциональности датчика температуры в микроконтроллер CH32V003

Добавление функциональности датчика температуры в микроконтроллер CH32V003

Исходный узел: 2368625
<img data-attachment-id="639484" data-permalink="https://hackaday.com/2023/11/05/adding-temperature-sensor-functionality-to-the-ch32v003-mcu/ch32v003_sensor_temp_curve/" data-orig-file="https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png" data-orig-size="1920,1026" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="ch32v003_sensor_temp_curve" data-image-description data-image-caption="

График измерения температуры с помощью импровизированного датчика температуры на базе CH32V003. (Фото: эвкалипт)

” data-medium-file = ”https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu.png” data-large-file= ”https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png?w=800″ decoding=”async” class= ”size-medium wp-image-639484″ src="https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu.png" alt =”График измерения температуры с использованием импровизированного датчика температуры на базе CH32V003. (Фото: eecalyptus)» width=»400″ height=»214″ srcset=»https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003 -mcu-1.png 1920w, https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png?resize=250,134 250w , https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png?resize=400,214 400 Вт, https://platoaistream. net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png?resize=800,428 800 Вт, https://platoaistream.net/wp-content/uploads /2023/11/добавление-температурного-датчика-функциональности-to-the-ch32v003-mcu-1.png?resize=1536,821 1536w» size="(max-width: 400px) 100vw, 400px">

График измерения температуры с помощью импровизированного датчика температуры на базе CH32V003. (Фото: эвкалипт)

Каким бы дешевым ни был микроконтроллер WCH CH32V003, его цена около 0.10 доллара выглядит гораздо менее привлекательной, когда вам нужно начать добавлять внешние микросхемы для отсутствующих базовых функций, таких как измерение температуры. Это функция, которая обычно встречается даже в базовых микроконтроллерах STM32. Однако не бойтесь, как показывает [эвкалипт], вы можете импровизировать рабочее решение, поиск альтернативных источников который может действовать как термометр.

Ассоциация Ч32В003 представляет собой бюджетный 32-битный микроконтроллер на базе RISC-V от китайской компании Nanjing Qinheng Microelectronics, широко известный как WCH. представлено на Hackaday ранее. Несмотря на то, что он оснащен одноядерным процессором с частотой 48 МГц, набор периферийных устройств довольно простой:

<img data-attachment-id="639486" data-permalink="https://hackaday.com/2023/11/05/adding-temperature-sensor-functionality-to-the-ch32v003-mcu/ch32v003_internal_diagram/" data-orig-file="https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.jpg" data-orig-size="1200,400" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="ch32v003_internal_diagram" data-image-description data-image-caption="

Внутренняя схема микроконтроллера CH32V003. (Фото: WCH)

” data-medium-file = ”https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.jpg?w=400″ data-large-file="https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu.jpg" decoding="async" class= ”wp-image-639486 size-large” src=”https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu.jpg” alt =”Внутренняя схема микроконтроллера CH32V003. (Фото: WCH)» width=»800″ height=»267″ srcset=»https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003 -mcu-1.jpg 1200 Вт, https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.jpg?resize=250,83, 250 2023 Вт, https://platoaistream.net/wp-content/uploads/11/32/adding-temperature-sensor-functionality-to-the-ch003v1-mcu-400,133.jpg?resize=400 2023 Вт, https:// platoaistream.net/wp-content/uploads/11/32/adding-temperature-sensor-functionality-to-the-ch003v1-mcu-800,267.jpg?resize=800 800w” size=”(max-width: 100px) 800vw , XNUMX пикселей»>

Внутренняя схема микроконтроллера CH32V003. (Фото: WCH)

Так как же создать внутренний датчик температуры, используя только это? [eecalyptus] решил, что все, что нужно, — это измерить дрейф между двумя внутренними часами, такими как LSI и HSI, при изменении температуры и использовать это для калибровки температурного графика. К сожалению, LSI недоступен, даже через периферийное устройство таймера. Остался AWU (блок автоматического пробуждения), который также использует LSI в качестве источника синхронизации. Позволяя ему переходить в режим сна и пробуждаться после N циклов LSI, AWU обеспечивал непрямой доступ к LSI.

После калибровки по комнатной температуре (~22 °C) и ледяной воде (0 °C) был получен температурный график, который, вероятно, может быть в некоторой степени точным. Как предупреждает [eecalyptus], это своего рода калибровка, которая, вероятно, различается в зависимости от MCU, и никаких попыток количественно оценить абсолютную точность этого метода пока не предпринималось. Тем не менее, для грубого измерения температуры этого может быть достаточно.

Отметка времени:

Больше от Взломать день