[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+模拟I2C驱动DS1307日历模块

[复制链接]
461|4
手机看帖
扫描二维码
随时随地手机跟帖
hu9jj|  楼主 | 2021-1-16 15:16 | 显示全部楼层 |阅读模式
    模拟I2C驱动DS1307日历模块是我常做的测试项目,本次测试时却不顺利,读芯片勉强通过,但写芯片却不成功,用逻辑分析仪抓取时序,发现延时达数百微秒,而正常情况下应该是5微秒左右。下面是抓取的时序截图:
I2C_01.jpg

    放大之后看时钟周期接近1毫秒(0.994ms):
I2C_00.jpg

    而代码中的延时已经接近最低限度,仅仅是一行NOP()指令。之后进入MCC查看时钟配置,原来是我的时钟配置不正确,频率仅为1MHz(见下图):
open_10.jpg

    将时钟修改为32MHz后,速度提高了,读写操作就正常了。
    然而又遇到了一个问题,编译时从main函数直接对DS1307日历模块设置日期时,编译却出错了:
DS1307_1.jpg

    出错提示如下:
DS1307_0.jpg

    在主函数中注释掉这行,将设置日期改在初始化函数中调用就不出错:
DS1307_2.jpg

    尚不清楚是什么原因造成的,似乎是代码中找不到什么词吧。
    下面是测试过程的照片:
I2C_02.jpg

    这是屏幕中显示的日期,时间每秒刷新一次,日期每分钟刷新一次:
I2C_03.jpg

    这是DS1307日历模块的正面:
I2C_04.jpg


    这是日历模块的反面:
I2C_05.jpg
open_11.jpg

使用特权

评论回复
名字是啥样| | 2021-1-16 16:30 | 显示全部楼层
microchip使用好了,确实不错的一款芯片,开发工具也是很强大的。

使用特权

评论回复
hu9jj|  楼主 | 2021-1-16 16:41 | 显示全部楼层
本帖最后由 hu9jj 于 2021-1-16 16:42 编辑

    前述出错的原因似乎还是代码太多的原因,我将汉字的字符集(8个汉字占用约192字节)注释掉之后,编译就通过了。字符集数据我是作为常量保存的,按理只占用储存空间,真是不明白。
DS1307_4.jpg

    之前我的汉字字符集有近百个汉字,也是编译出错,缩小到8个汉字时才编译通过,看来此单片机的容量有限,无法运行较大的代码,可看起来我目前的测试代码并不多,但已经占用了82%左右的存储空间了。
DS1307_5.jpg

使用特权

评论回复
两只袜子| | 2021-1-17 14:39 | 显示全部楼层
开发工具也是很强大的,赞

使用特权

评论回复
南来之风| | 2021-1-18 18:38 | 显示全部楼层
厉害!学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:Microchip
简介:让我们来为您提供帮助。我们可提供各种资源来帮助您解决一切问题。是否需要与我们的客户支持团队联系?您可以通过电话、在线聊天功能或电子邮件与他们联系。

144

主题

1031

帖子

11

粉丝