
第十四期 | 单总线
文章平均质量分 87
开源手册
北京迅为
让学习更简单,让开发更容易
展开
-
RK3568驱动指南|第十四篇 单总线-第155章 单总线简介
与SPI I2C等串行数据通信方式不同,单总线的特点是只需要一根信号线,既可以传输时钟又可以传输数据,而且数据是双向的。单总线用于各种应用,包括温度传感器,湿度传感器,EEPROM存储器,时钟等。:单总线需要一个上拉电阻连接到信号线和电源之间,以确保在没有设备发送数据时,信号线上的电平保持为高电平(逻辑1)。单总线是主从结构,当主机呼叫从机时,从机才会应答,所以主机都必须严格遵循单总线的命令时序。:处理器是单总线上的控制器,处理器负责发送命令,读取响应和控制单总线上的从设备。原创 2024-03-28 11:04:59 · 498 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第156章 DS18B20介绍
其他位依次表示更高的温度精度,分别为2^-3(0.125)、2^-2(0.25)、2^-1(0.5)、2^0(1)、2^1(2)、2^2(4)、2^3(8)。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节,单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如下表所示。除了这些常见的封装类型,DS18B20还可以在其他封装类型中使用,例如SOT-23封装和TO-263封装等,这些封装类型可能具有不同的引脚排列和尺寸。如果符号位为1,表示负温度。原创 2024-04-02 10:30:20 · 1195 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第157章 DS18B20驱动框架编写
RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\。至此DS18b20驱动框架编写完成了,并且编译驱动模块成功了。编写完成的ds18b20.c代码如下所示。原创 2024-04-02 10:47:09 · 423 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第158章DS18B20编写字符设备驱动框架
RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\。接着上个章节的驱动编写,本章节实现DS18b20编写字符设备驱动框架。至此DS18b20字符设备驱动框架编写完成了,并且编译驱动模块成功了。编写完成的ds18b20.c代码如下所示。原创 2024-04-02 14:01:16 · 558 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第159章DS18B20驱动设备树
RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。ls /sys/class/sensors/ //列出位于/sys/class/sensors/目录下的文件和子目录。为了对核心板进行更好的资源利用,迅为对底板进行了升级。ls /dev/ds18b20 //列出位于/dev目录下的名为ds18b20的设备文件。cat /proc/devices //用于查看系统中已加载的设备驱动程序列表。原创 2024-04-02 14:10:08 · 484 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第160章DS18B20驱动复位时序编写
在上个章节的基础上,本章节我们继续编写DS18b20驱动,在驱动中实现获取GPIO和复位时序的驱动编写,并且在加载驱动之后,使用逻辑分析仪对复位时序进行分析。在复位的过程中,首先将GPIO引脚拉低,保持一段时间(通常为480微秒),这是为了确保发送复位信号的低电平持续足够的时间触发DS18b20的复位操作。接下来,释放GPIO引脚,使其回到高电平状态,此时DS18b20将检测到引脚状态的变化,并开始响应复位信号。将捕捉到的复位时序和下图的时序图对比分析,可以看出驱动复位时序是没问题的。原创 2024-04-02 14:28:59 · 1048 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第161章DS18B20驱动写时序编写
RK3568内置独立NPU,可用于轻量级人工智能应用。而在本章节将继续完善驱动程序,对DS18B20采集到的温度分辨率进行读取,然后编写相应的应用程序进行分辨率读取测试。相较于上一章节的驱动程序,本小节编写的驱动程序只是将写操作的步骤进行了完善,并在入口函数中调用了ds18b20的复位和写函数进行测试。从机采样读取,主机拉低总线的15us-60us从机开始采样,如果读取到的是0,从机就会接收0,从而成功写入0。至此,关于DS18B20的写操作相关函数就编写完成了,会在下个小节编写填加写时序相关函数的驱动。原创 2024-04-02 14:54:04 · 743 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第162章DS18B20驱动读时序编写
综合上面读1和读0操作的代码以及时序图,可以将两个代码进行整合在一起,整合之后的代码如下所示,大家可以神奇的发现该函数和读0中的函数是相同的。主机释放总线,从机拉低总线,15us以内主机完成采样工作,如果这时候从机仍旧处于拉低总线的状态,则采集到的就是0.由于读时序的实验需要后续的知识作为支撑,所以会在下个小节的驱动中完善温度读取相关的函数之后,再进行测试。至此,关于DS18B20的读操作相关函数就编写完成了,会在下个小节编写填加写时序相关函数的驱动。【粉丝群】824412014(加群获取驱动文档+例程)原创 2024-04-02 16:02:37 · 772 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第163章DS18B20驱动温度读取编写
在上个章节中讲解了DS18B20的读操作相关的时序以及函数代码编写,但是并没有编写实验函数进行验证,那是因为读操作必然要设计到一些其他的知识,导致知识过于混乱,影响理解和记忆,而本章节将会编写DS18B20温度读取相关的代码及相关的测试应用,最后对DS18B20完整的时序逻辑进行讲解。首先发送了0xbe指令,表示读取暂存寄存器,后面的0xBB和0x01分别表示温度的低八位和高8位,换算成10进制为443,然后乘以0.0625可以得到当前的温度为27.6875,至此关于逻辑分析仪采集到的波形就分析完成了。原创 2024-04-02 16:54:42 · 1148 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第164章DS18B20驱动使用ioctl设置分辨率
在上个章节中成功获取到了DS18B20的温度,默认情况下DS18B20的分辨率为12位,可以通过修改配置寄存器从而改变分辨率的大小,总共支持9位、10位、11位、12位四种分辨率,在本章节中将完善驱动中的ioctl部分,增加分辨率修改相关的代码,然后编写相应的应用程序进行分辨率修改的测试。当我用手触摸DS18B20传感器的时候,可以看到温度明显的上升了,并且温度上升的分辨率位9位,也可以设置其他例如10、11位的分辨率,至此,关于通过ioctl设置ds18b20温度采集分辨率的实验就完成了。原创 2024-04-03 13:25:12 · 1038 阅读 · 0 评论 -
RK3568驱动指南|第十四篇 单总线-第165章DS18B20驱动使用ioctl读取分辨率
第一个打印表示我们的传入参数9,第二个打印为通过ioctl获取得到的ds18b20的温度分辨率,可以看到设置和和通过ioctl获取的分辨率相同,且后面得到的温度确实为9位分辨率,证明试验成功,至此,关于通过ioctl获取ds18b20温度采集分辨率的实验就完成了。iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\100_ds18b20_07\02_app。然后将编译完成的可执行程序拷贝到开发板上。原创 2024-04-03 13:38:04 · 935 阅读 · 0 评论