linux pcf8563开发文档,Linux下i2c与时钟芯片PCF8563的通信

本文介绍了在Linux环境下,如何通过i2c驱动与PCF8563时钟芯片进行通信。通过模拟`hwclock -w`命令的执行过程,详细解析了从rtc层到i2c层再到CPU层的数据通信路径,并展示了关键的代码片段,包括`pcf8563_set_datetime`和`i2c_master_send`函数,以实现对时钟芯片的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下的i2c驱动以及与时钟芯片PCF8563通信过程。

为更深入的了解linux下的i2c总线驱动以及通信原理,可以用一个用户程序模拟,这个程序,可以使用一个addr, 一个offset,对i2c的从设备地址为addr,寄存器地址为offset的寄存器读写操作。

在我们的版卡上时钟芯片pcf8563的i2c地址为0x51  , pcf8563有00—0f个寄存器,通过读写秒,分钟,小时等的寄存器,可以验证我们的程序是否执行成功。

一,这个测试程序怎么写?

思路是:  hwclock -w /hwclock -s 这些命令都是对始终芯片pcf8563执行了读写的操作命令,那么我们的程序,就模仿hwclock -w 的执行过程,最后实现通过cpu(octeon) 与i2c从设备的数据通信。 这样就看到了i2c总线在处理器octeon的控制下的通信过程。

二,怎么观察hwclock -w 的执行过程?

hwclock -w 读写了时钟芯片pcf8563,那么从pcf8563的驱动程序入手,在pcf8563中的read,write 函数中进入i2c层。再有i2c层进入octeon。

即从rtc层进入i2c层, 再进入cpu层。 在这之间的执行函数分别加printk,在版卡上观察dmesg, 这样就可以找到执行的层层路径。

知道了数据的发送路径,再观察出hwclock -w 实现了哪些数据的包装和发送,那么我们的程序就可以在以用户层模仿这些操作。

注意:

我们版卡的cpu是CaviumNetworks OCTEON CN52XX

******************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值