Tilføjelse af temperatursensorfunktionalitet til CH32V003 MCU

Tilføjelse af temperatursensorfunktionalitet til CH32V003 MCU

Kildeknude: 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="

Plot af temperaturmålingen ved hjælp af den improviserede CH32V003-baserede temperatursensor. (Kredit: eeucalyptus)

” 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 =”Plot af temperaturmålingen ved hjælp af den improviserede CH32V003-baserede temperatursensor. (Kredit: eeucalyptus)” 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 400w, https://platoaistream. net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png?resize=800,428 800w, https://platoaistream.net/wp-content/uploads /2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.png?resize=1536,821 1536w” sizes=”(maks. bredde: 400px) 100vw, 400px”>

Plot af temperaturmålingen ved hjælp af den improviserede CH32V003-baserede temperatursensor. (Kredit: eeucalyptus)

Så billig som WCH CH32V003 MCU er, ser dens pris på omkring $0.10 langt mindre attraktiv ud, når du skal begynde at tilføje eksterne IC'er for manglende grundlæggende funktioner, såsom temperaturmåling. Dette er en funktion, der almindeligvis findes på selv grundlæggende STM32 MCU'er. Frygt dog ikke, som [eeucalyptus] viser, du kan improvisere en fungerende løsning ved at finde alternative kilder der kan fungere som et termometer.

CH32V003 er en low-end, 32-bit RISC-V-baseret MCU af den Kina-baserede Nanjing Qinheng Microelectronics, almindeligvis kendt forkortet som 'WCH', og vist på Hackaday tidligere. Selvom den har en enkeltkerne, 48 MHz CPU, er dens udvalg af perifere enheder ret grundlæggende:

<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="

Internt diagram af CH32V003 MCU. (Kredit: 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 ="Internt diagram af CH32V003 MCU. (Kredit: WCH)” width=”800″ height=”267″ srcset=”https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003 -mcu-1.jpg 1200w, https://platoaistream.net/wp-content/uploads/2023/11/adding-temperature-sensor-functionality-to-the-ch32v003-mcu-1.jpg?resize=250,83, 250 2023w, https://platoaistream.net/wp-content/uploads/11/32/adding-temperature-sensor-functionality-to-the-ch003v1-mcu-400,133.jpg?resize=400 2023w, https:// platoaistream.net/wp-content/uploads/11/32/adding-temperature-sensor-functionality-to-the-ch003v1-mcu-800,267.jpg?resize=800 800w" sizes="(maks. bredde: 100px) 800vw , XNUMXpx">

Internt diagram af CH32V003 MCU. (Kredit: WCH)

Så hvordan opretter du en intern temperatursensor ved hjælp af netop dette? [eeucalyptus] regnede med, at alt, der behøves, er at måle driften mellem to interne ure – såsom LSI og HSI – når temperaturerne ændres og bruge dette til at kalibrere en temperaturgraf. Desværre er LSI'en ikke let tilgængelig, selv gennem Timer-udstyret. Dette efterlod AWU (automatic wake-up unit), som også bruger LSI som en urkilde. Ved at lade den gå i dvale og vågne efter N LSI-cyklusser, muliggjorde AWU indirekte adgang til LSI.

Efter kalibrering mod stuetemperatur (~22 °C) og isvand (0 °C) blev der opnået et temperaturplot, som kunne tænkes at være noget nøjagtigt. Som [eeucalyptus] advarer, er dette en slags kalibrering, der sandsynligvis adskiller sig fra MCU, og der er endnu ikke gjort noget forsøg på at kvantificere den absolutte nøjagtighed af denne metode. Alligevel, som en rå temperaturmåling, er den måske bare god nok.

Tidsstempel:

Mere fra Hack A Day