找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于时钟芯片SD3078单片机驱动的问题 [已解决] 及解决方法

查看数: 3702 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-7-21 07:31

正文摘要:

最近在做手表,感觉大部分常见RTC要么太大,要么没内置晶振(误差大) 前几周找到了一款芯片,看上去还不错: 24小时制时读出数据时要把最高位置零(&0x7f),否则读出数据是错误的··· 3、IIC的应答要设 ...

回复

ID:639106 发表于 2023-7-25 19:09
man1234567 发表于 2023-7-24 11:13
先找个任意的IIC器件,调试成功后再上这个东东。
目前,标准的IIC驱动是通用的,RTC也就是读写而已,没多 ...

谢谢指导,之前写的程序确实有忽疏
ID:639106 发表于 2023-7-25 19:07
liixaofei5 发表于 2023-7-23 16:42
if(Sys_Time.second==1)P0=0;else P0=1;    恰好能读到1吗?如果0秒后延时,2秒时才把时间读回来,是不是就 ...

谢谢指导,问题解决了
ID:584814 发表于 2023-7-24 11:13
先找个任意的IIC器件,调试成功后再上这个东东。
目前,标准的IIC驱动是通用的,RTC也就是读写而已,没多复杂,好像3231和1307的通用。
实验证明很多器件用STC准双向I/O无需加上拉什么的也可以用。
也可以找厂家要DEMO,国产可参考“国芯”,说明书写的是理想也可能是现实。
包括记得有些厂家宣传可以免费给样片,然而联系过结果呵呵呵。
如果自己玩且对体积没要求的话用8025的,几毛钱的货就非常好用。
还有就是,目前常见的8025、3231又大又蠢,甚至还有更过的内置了电池,这个小体积的有“核心技术”了 ?
建议仔细查一遍,厂家不给例程自己还调不过就过了罢。

评分

参与人数 1黑币 +5 收起 理由
gqzjl + 5 赞一个!

查看全部评分

ID:821429 发表于 2023-7-23 16:42
if(Sys_Time.second==1)P0=0;else P0=1;    恰好能读到1吗?如果0秒后延时,2秒时才把时间读回来,是不是就没有反应了?这个看你的延时多长时间,按照12MHz1T估算你的延时,应该还是很多时候能进入的,但是也容易出现非预期的情况。
这条语句的第二个问题,如果延时不影响,当且仅当second==1时点亮/熄灭,也就是60秒钟点亮/灭1秒,这个是你预期的效果?我觉得不确定能不能看清楚这个闪烁
关于调试的方法,你是怎么感觉进入死循环的,是测试出来的吗?如果不是必须定位,找到出错点,因为不能在线调试,可以注释现在点亮指示灯的位置,在你觉得可疑的程序后面点亮指示灯,如果能点亮继续找前面的程序。

评分

参与人数 1黑币 +5 收起 理由
gqzjl + 5

查看全部评分

ID:639106 发表于 2023-7-22 17:35
Y_G_G 发表于 2023-7-22 17:13
已经告诉你了,你上传的代码中,你的端口设置是对的,就不要再去找端口的毛病了
SDA和SCL都要加上拉10K电阻 ...

好的,我试试
ID:401564 发表于 2023-7-22 17:13
gqzjl 发表于 2023-7-22 12:03
设置成开漏输出,SDA接了上拉电阻后还是没反应
是我写的驱动有问题吗

已经告诉你了,你上传的代码中,你的端口设置是对的,就不要再去找端口的毛病了
SDA和SCL都要加上拉10K电阻!!!!!!!
IIC可以驱动其它的IIC器件也不一定是对的!!!!!
为什么要叫你用24c01,这个器件是标准的IIC,不支持高速IIC的,在它上面运行正常了,在SD3078就能正常了
不要duang!duang!duang!先写一堆几千行的代码,然后就进行验证,那么多代码,问题出在哪里你都不一定知道

"先验证IIC从机地址对不对,先不管数据读写,先写一个验证代码,向从机发送地址,看一下有没有响应,可以用一个LED或者某个端口的电平来进行验证"
1,什么其它的代码都不要,只要端口设置和IIC写入一个字节函数,外加一个延时函数,延时可以设定为1秒2,P0^1=0;//LED这个端口先灭灯
3,写入从机地址   0x64
4,等待IIC从机应答,如果不应答就是死循环
5,P0^1 = 1;//

while(1);
6,烧录验证,不要仿真!!!!!!!!!

以上6步,从P.01端口的电平信号就可以知道从机是否能响应主机的IIC信号了
低电平:说明从机没有应答
高电平:说明从机已经应答,写字节的IIC代码是对的

再不行,把你的所有代码,原理图上传
还是不行,那就放弃吧

评分

参与人数 1黑币 +5 收起 理由
gqzjl + 5 赞一个!

查看全部评分

ID:639106 发表于 2023-7-22 14:07
够长,把if判断的值改成<20也一样要疯了
ID:384109 发表于 2023-7-22 13:04
看代码,P0需要至少1分钟才会有变化,测试时间够长吗
ID:639106 发表于 2023-7-22 12:03
设置成开漏输出,SDA接了上拉电阻后还是没反应
是我写的驱动有问题吗
ID:883308 发表于 2023-7-22 01:49
可以看看数据手册多试试
ID:1085441 发表于 2023-7-21 22:08
gqzjl 发表于 2023-7-21 12:56
单片机引脚设置为准双向输出,可以吗

看手册是有上拉电阻的,你可以接个上拉电阻试试。
像DS1302的IO口必须接上拉电阻,准双向IO口不行。
ID:401564 发表于 2023-7-21 22:05
gqzjl 发表于 2023-7-21 12:56
单片机引脚设置为准双向输出,可以吗

时钟和数据线必须要加10K的上拉电阻!!!!!
端口设置为标准双向模式,也就是传统的8051模式
ID:639106 发表于 2023-7-21 18:58
lkc8210 发表于 2023-7-21 14:54
注意电平转换时间

时序按照数据手册写的,为400k,我把它调到200k后也没反应
ID:161164 发表于 2023-7-21 14:54
注意电平转换时间


ID:639106 发表于 2023-7-21 12:56
Y_G_G 发表于 2023-7-21 12:32
1,先验证IIC代码对不对,可能用24C01的IIC代码和功能来进行验证
2,先验证IIC从机地址对不对,先不管数据读写 ...

单片机引脚设置为准双向输出,可以吗
ID:401564 发表于 2023-7-21 12:32
1,先验证IIC代码对不对,可能用24C01的IIC代码和功能来进行验证
2,先验证IIC从机地址对不对,先不管数据读写,先写一个验证代码,向从机发送地址,看一下有没有响应,可以用一个LED或者某个端口的电平来进行验证
3,如果单片机没有内置上拉电阻,你就得在时钟和数据端口上增加上拉电阻

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表