嵌入式linux开发,rtc时钟探测报错:rtc-ds1307: probe of 1-0068 failed with error -5
2023-09-14 09:15:57 时间
嵌入式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下开发应用程序之JNI(linux使用jni)
- 嵌入式Linux网关:迈向无缝连接的未来(嵌入式linux网关)
- 嵌入式Linux编程:从入门到精通(嵌入式linux编程入门)
- 死Linux 进程被“杀死”:剖析原因及后果(linux进程被杀)
- 全新视角:嵌入式Linux培训(嵌入式linux培训)
- 共享连接Linux内外网共享之路(linux内网外网)
- 升级嵌入式Linux系统的轻松在线升级(嵌入式linux在线)
- 管理嵌入式Linux系统内存管理技术研究(嵌入式linux内存)
- Linux恢复丢失的硬盘数据(linux恢复硬盘数据)
- 嵌入式Linux:你的技术伙伴(嵌入式linux推荐)
- Linux分区挂载入门:简单易学(linux的分区与挂载)
- Linux添加硬盘:一步一步的指南(linux加硬盘)
- Linux的多元分支:挖掘未知的潜力(linux的分支)
- Linux的支柱之力:开源分支的优势(linux的分支)
- Linux查看动态日志:精彩技术要记下来(linux查看动态日志)
- Linux嵌入式开发:拓展编程技能的新突破(linux嵌入式开发培训)
- 快速掌握Linux中复制粘贴鼠标操作(linux复制粘贴鼠标)
- 学习必备:嵌入式Linux基础入门(嵌入式linux基础)
- Linux——最流行的操作系统(流行 的 linux)
- Linux操作系统教程:如何修改启动内核?(linux修改启动内核)
- 探析嵌入式系统中的Linux应用技巧(linux嵌入式)