zynq-7000系列基于7015的linux下IIC->RTC的扩展使用(DS3232)

zynq-7000系列基于7015的linux下IIC->RTC的扩展使用(DS3232)

                             

                             作者:卢浩  

                                  时间:2017.3.6

                                   转载请注明出处

         在7015上通过I2C挂在RTC(DS3232),首先我们需要在vivado工程里面确认I2C控制器已经被选中。

         如下图:

         

我们可以看到I2C0 I2C1控制器都已经被PS端选中,我的实验中,是把DS3232挂载在I2C1控制器上。

首先了解一下原理,I2C通过读取DS3232的地址来进行通信,我们可以看一下DS3232的datasheet。

http://datasheets.maximintegrated.com/en/ds/DS3232.pdf

里面有这一句

The slaveaddress byte contains the 7-bit DS3232 address,which is 1101000,16进制0X68。

在zynq-zed.dts文件添加如下配置

        aliases {
                ethernet0 = &gem0;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                serial0 = &uart1;
                spi0 = &qspi;
                mmc0 = &sdhci0;
        };

&i2c1 {
        status = "okay";
        clock-frequency = <100000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c1_default>;
        #address-cells = <1>;
        #size-cells = <0>;

        rtc@68 {
                compatible = "dallas,ds3232";
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x68>;
        };
};
&pinctrl0 {
pinctrl_i2c1_default: i2c1-default {
                mux {
                        groups = "i2c1_0_grp";
                        function = "i2c1";
                };

                conf {
                        groups = "i2c1_0_grp";
                        bias-pull-up;
                        slew-rate = <0>;
                        io-standard = <1>;
                };
        };
};
在kernel的makemenuconfig里面选中关于DS3232的驱动;

<*>   Dallas/Maxim DS3232/DS3234 


如下图:


然后编译kernel和dts文件。上电启动,第一次使用的时候,才能会报错如下:

# hwclock

hwclock: RTC_RD_TIME: Invalid or incomplete multibyte or wide character

这里就需要把系统的时间设置到时钟芯片或主芯片自带的rtc里面去,如下

#hwclock –w

然后rtc就可以用了。


如果在调试过程中,内核启动log没有打印出关于ds3232的信息,那么就需要用示波器看一下I2C总线上的地址了,是不是0X68,然后是NCK还是ACK,判断硬件是否存在问题。






  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值