嵌入式linux开发,rtc时钟探测报错:rtc-ds1307: probe of 1-0068 failed with error -5
2023-09-14 09:09:34 时间
嵌入式linux开发中,采用时钟芯片ds1307作为RTC。
一、问题描述。
采用ds1307做为rtc,内核无法探测到时钟。内核打印如下:
rtc-ds1307: probe of 1-0068 failed with error -5
二、问题分析。
采用CR1220钮扣电池给芯片Vbat引脚供电,VCC使用3.3V供电。而ds1307的Vbat引脚不用,必须接地;VCC电压须大于1.25倍的Vbat。VCC=3.3V,Vbat=3.0V,3V*1.25=3.75V。以下摘自芯片手册:
DS1307工作于从设备状态.跟随在”启动条件”之后,主设备提供一从设备寻址字节和要存取的寄存器地址,寄存器就可以被连续地存取直到”停止条件”到来.当VCC低于1.25 x VBAT时,芯片就会中止目前的存取并复位设备地址计数器.这时,向芯片发出的任何信号将被拒绝,以免发生存取错误.当VCC低于VBAT时,芯片就会切换到电池备份模式.当VCC恢复到大于VBAT +0.2V时,芯片就会由VCC供电.当VCC大于1.25 xVBAT时,存取就可以正常进行.
VCC, GND –直流电源供电管脚.当VCC由+5V正常供电时,芯片可以被正常的存取.当VCC低于1.25 x VBAT并且3V电池已连到芯片时,读写被禁止.但时钟保持功能不受影响.当VCC低于VBAT时,RAM和时钟保持器就切换到3V电池供电.
●VBAT –3V锂电池或其他电源供电输入.电池电压必须保持在2.0—3.5V之间以确保正确的操作.一个48 mAhr的锂电池可以在主电源不供电的情况下使DS1307保持数据在10年以上.
三、解决方案。
让Vbat引脚接地,成功探测到,内核打印如下:
[ 2.713407] rtc-ds1307 1-0068: rtc core: registered ds1307 as rtc0
[ 2.719879] rtc-ds1307 1-0068: 56 bytes nvram
因处理器io电压和时钟保持问题,我进行了芯片更换。
相关文章
- linux下64位汇编的系统调用(1)
- [Linux] ubuntu server sudo出现sudo:must be setuid root 完美解决办法
- Linux Supervisor的安装与使用入门---Ubuntun
- 【linux 】服务器异常down 机 NFS挂载失败
- [4G]Linux平台上实现4G通信
- SSH连接linux时,长时间不操作就断开的解决方案
- Linux一切皆文件(包含好处和弊端)
- Linux Centos 6.5网络启动不起来Bringing up interface eth0: Error:Connection activation failed:Device not man
- 查看Linux登陆日志
- 【Linux】OpenSSL升级提示perl版本较低(安装Perl)
- Linux环境下$开头的相关变量的含义
- Linux Ubuntu22.04 安装synaptic包图形化管理工具和cairo-dock(最美观的Linux dock)
- Linux Ubuntu 22.04安装Dash to Panel替换系统自带的dock panel
- [手游项目4]-24-Linux下实现C语言的HTTP请求实现
- centos防火墙操作firewalld and systemctl 打开linux端口的shell脚本
- linux shell 之终端读写文件数据流和重定向>,<,<<,>>
- Linux Kernel 安装和编译
- launch failed.Binary not found in Linux/Ubuntu解决方案
- Linux系统文件权限管理
- 你了解Linux编译器gcc的使用吗?
- Linux启动过程
- 嵌入式linux开发,交叉编译qt4.8.5报错:bin/qmake: Exec format errorThe tslib functionality test failed! You migh