DS18B20驱动程序调试总结

发布时间:2023-03-27  

DS18B20是一款精度比较好的温度传感器,最重要的是它通过一根导线,既完成通讯,又给芯片供电,在MCU引脚数量比较紧张的时候,确实是个不错的选择。这颗芯片看起来简单,但真正让它跑起来,从里面读出温度数据可没有想象的那么容易。这不,群里的Ryan Wang同学就被折磨得不行。难能可贵的是,在王同学终于搞定它之后,无私地分享出心得和代码。如果你觉得这篇文章能帮到更多的同学,就帮忙转发,或点个在看吧。


通过CUBE使能TIM2定时器,Clock Source使用internal Clock,MCU主频为32Mhz,故Prescaler=32-1=31,Counter Mode为UP,这里注意Counter Period 官方手册要求最低为1,经测试设置为2时,定时器更为准确。


完成以上配置后,需要在程序手动调整和增加功能代码:


1. Cube配置TIM2定时器的基础上,在程序编写delay_us(uint16_t us)函数,delay_us的精确度将直接影响DS18B20温度数据的读取结果。本程序使用了HAL库(CUBE勾选配置)


void delay_us(uint16_t us)

{

 /* 中断会打断微秒延时函数,

  * 但计数器计数不会停

  * 防止计数器增加到65535之后重新开始计数

  */

    uint16_t differ=50000-us;

 

    HAL_TIM_Base_Start(&htim2);

    __HAL_TIM_SET_COUNTER(&htim2,differ);


    while(differ<50000)

    {

        differ=__HAL_TIM_GET_COUNTER(&htim2);

    }


    HAL_TIM_Base_Stop(&htim2);

}

2. 注意程序工程中DS18B20.H的定义,及DS18B20.C文件,(同文件夹下附件)其内部函数定义根据DS18B20官方手册进行操作,DS18B20为one wire 通讯,对时序的要求相对严格,DS18B20的数据通讯通过DS18B20的data管脚进行单片机通讯,主要流程为:

1. DS18B20初始化

2. DS18B20接入自检

3. DS18B20写0xcc(SKIP ROM)

4. 写0x44(通知传感器进行温度数据采集与转换)

5. DS18B2再次初始化

6. DS18B20再次接入自检

7. DS18B20写0xcc(SKIP ROM)(倒序即0011 0011,如下图左)

8. DS18B20写0xbe(通知传感器进行数传)(倒序0111 1101,下图右)

9. DS18B20读一个字节

10. DS18B20再读一个字节

11.数据的预处理



3. 以上每步操作都需要微秒级延时等待,参考DS18B20官方手册关于“DS18B20初始化与check”,“写0”,“写1”,“读0”,“读1”的具体时序要求,注意针对不同MCU的主频配置,在保证1微秒延时准确的前提下,具体的微秒延时将有所调整;特别注意在读时序时的延时,针对32MHZ的本机,在DS18B20.C中已做延时调整(参考正点原子DS18B20试验(72MHZ),使用示波器抓取各个阶段波形,结合DS18B20手册,对比调试,)若时序不对,则读数一直为0或者85。着重理解DS18B20_data管脚的输入和输出模式,拉高和拉低(如DS18B20标准电路要求在data管脚接上拉电阻,那么在管脚IN和OUT模式下,如未人为拉高或拉低,则管脚电平会自动拉高)。







文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>