完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
帮我把文件中的点连接起来,读PIC32核心温度传感器,并解释结果。我看到它是AN44,它连接到共享的高速ADC 7。我看到AN44(AN_SELECT的一部分)和ADCHS_AN44(enum ADCHS_AN_INPUT_ID)之类的符号,但是还没有看到API使用它们。我已经使用HARMony配置了前三个外部ADC输入,并且像这样操作:一旦我得到了核心temp作为数字返回,我如何解释它?在芯片参考手册中有一个部分要查找吗?
以上来自于百度翻译 以下为原文 Help me connect the dots in the documentation to read the PIC32 core temperature sensor and interpret the result. I see that it's AN44 and it's connected to the shared high-speed ADC 7. I see symbols like AN44 (part of AN_SELECT) and ADCHS_AN44 (enum ADCHS_AN_INPUT_ID) but haven't yet seen the APIs to use them with. I've configured the first three external ADC inputs using Harmony and operate them like this: void ADC_Initialize(void) { memset(&adcData, 0, sizeof adcData); } void ADC_Init(void) { // called once at app init state DRV_ADC0_Open(); DRV_ADC1_Open(); DRV_ADC2_Open(); // use the 256 oversampling filter DRV_ADC_DigitalFilter0_Open(); DRV_ADC_DigitalFilter1_Open(); DRV_ADC_DigitalFilter2_Open(); DRV_ADC_Start(); } void ADC_Task(void) { // when all are ready, read them and start another sample if ( DRV_ADC_DigitalFilter0_DataIsReady() && DRV_ADC_DigitalFilter1_DataIsReady() && DRV_ADC_DigitalFilter2_DataIsReady() ) { adcData.reading[0] = DRV_ADC_DigitalFilter0_DataRead(); adcData.reading[1] = DRV_ADC_DigitalFilter1_DataRead(); adcData.reading[2] = DRV_ADC_DigitalFilter2_DataRead(); DRV_ADC_Start(); } } Once I've gotten the core temp back as a number, how do I interpret it? Is there a section in the chip reference manual to look for? |
|
相关推荐
2个回答
|
|
|
由于PIC32 MZ错误,我禁用了代码中的过滤器。我的代码现在如下:我得到一个在0x033和0x03a(51-58十进制)之间飘动的原始读数。这是由于芯片(PIC32MZ2048EFG144)的触摸非常温和,可能是38摄氏度。因此,根据上面的数学计算,读数似乎非常低。我们在3.3伏直流电供电。
以上来自于百度翻译 以下为原文 I disabled the filters in the code due to the PIC32MZ errata. My code is now as below. I'm getting a raw reading that flutters between 0x033 and 0x03a (51-58 decimal). This is with the chip (PIC32MZ2048EFG144) very mildly warm to the touch, perhaps 38 degrees C. So that reading seems very low given the math above. We're powering at 3.3 vdc. #include "app.h" #include "adc.h" #include "driver/adc/drv_adc_static.h" #include // ADC usage: // AN0 (RB0 pin 36) -12v monitor // AN1 (RB1 pin 35) +12v monitor // AN2 (RB2 pin 34) thermistor // AN44 internal core temperature sensor #define TEMPERATURE_INDEX 44 ADC_Data adcData; void ADC_Initialize(void) { memset(&adcData, 0, sizeof adcData); } // currently digital filters are broken as of silicon A1 and A3 #define USE_DIGITAL_FILTER 0 void ADC_Init(void) { // called once at app init state DRV_ADC0_Open(); DRV_ADC1_Open(); DRV_ADC2_Open(); DRV_ADC3_Open(); #if USE_DIGITAL_FILTER // use the 256 oversampling filter DRV_ADC_DigitalFilter0_Open(); DRV_ADC_DigitalFilter1_Open(); DRV_ADC_DigitalFilter2_Open(); #else #endif DRV_ADC_Start(); } void ADC_Task(void) { // when all are ready, read them and start another sample #if USE_DIGITAL_FILTER if ( DRV_ADC_DigitalFilter0_DataIsReady() && DRV_ADC_DigitalFilter1_DataIsReady() && DRV_ADC_DigitalFilter2_DataIsReady() ) { adcData.reading[0] = DRV_ADC_DigitalFilter0_DataRead(); adcData.reading[1] = DRV_ADC_DigitalFilter1_DataRead(); adcData.reading[2] = DRV_ADC_DigitalFilter2_DataRead(); adcData.timestamp = appData.lastHRTimer; DRV_ADC_Start(); } #else if ( DRV_ADC_SamplesAvailable(0) && DRV_ADC_SamplesAvailable(1) && DRV_ADC_SamplesAvailable(2) && DRV_ADC_SamplesAvailable(TEMPERATURE_INDEX) ) { adcData.reading[0] = DRV_ADC_SamplesRead(0); adcData.reading[1] = DRV_ADC_SamplesRead(1); adcData.reading[2] = DRV_ADC_SamplesRead(2); adcData.reading[3] = DRV_ADC_SamplesRead(TEMPERATURE_INDEX); adcData.timestamp = appData.lastHRTimer; DRV_ADC_Start(); } #endif } |
|
|
|
|
|
请小心使用数字滤波器:1)错误,但解决办法是可能的....2)数字滤波器不能用于上面31号码的输入.3)请记住参考资料,以防使用GND以外的作为参考...
以上来自于百度翻译 以下为原文 Be careful using digital filter: 1)errata, but workaround is possible.... 2) digital filter is't working for input above on number 31. 3) please remember about reference in case using other than GND as -ref..... |
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 11:48 , Processed in 0.697105 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2540