
【STM32H7体验】+ 驱动RX8025,建立时钟控制 利用GPIO模拟I2C,完成对RX8025的操作,实现时钟控制 驱动RX8025,建立时钟控制 RX8025是一种高精度,内藏32768Hz晶振时钟I2C总线接口的实时时钟芯片。由于内部集成了32768Hz石英晶振,减少了PCB设计,同时也降低了功耗。 1 ![]() 内部寄存器设置: 2 ![]() 3 ![]() 系统中引入这个时钟芯片的目的,是为了建立起浇水计划。是系统在必要的时间里按照计划启动浇水,实现无人状态下的自动浇水。为了连接这个时钟芯片,利用PE10、PE12这两个GIO口模拟I2C通讯,读写RX8025,结合其他部件,实现时钟控制。 4 ![]() 连接RX8025时,注意除了VDD、GND、SCL、SDA,TEST管脚也要引出来,接到VDD上。VDD的可用电压范围是1.8V - 5.5V。开发板上有一个JP2,提供了一排5V,刚好可以用上。在对RX8025的日期、时间数据进行读写的时候,要注意BCD码和16进制数据之间的转换。以适应RX8025的要求。否则,写入错误的日期、时间数据,有可能导致RX8025不工作。 RX8025的程序代码,我没有从头编写,是直接把以前用于51单片机的代码,进行改造以后,拿过来用的。但结果,很遗憾,竟然不能被正常执行。于是寻找RX8025的资料,按照它的读写时序,重新改造代码,进行测试。还是不行。最终无奈之下,只好到EPSON的官网去查找,找到一份日文版的资料,资料中的部分内容如下: 5 ![]() 6 ![]() 按照上面的说明改造程序后,运行起来,能够读写数据了,但是取出来的时间数据还是不正常,表现为数据错位,有时候还是完全不正常的数据。秒数据跑到分钟的位置上了,从寄存器0取得的数据,总是固定为10。 7 ![]() 数据能读写,但不正常,肯定是处理时序不对,不知道是不是和那个Ack信号有关。没办法,继续研究文档。就在准备要放弃的时候,看到如下说明: 8 ![]() 资料中很明确说明了,SCL脉冲的宽度要保持在0.6微秒(tLow)和1.3微秒(tHigh)以上才行,而这个主板的时钟高达280MHz,很可能脉冲宽度不对。如醍醐灌顶,马上加长脉冲延时长度,调整时间常数为280,这样可以保证提供1微秒以上的脉冲宽度。编译、下载、运行,日期时间终于能正常读写、显示也正常了。 ![]() 到现在为止,所有外围模块的处理都已经调通了,之后就是开始调整主程序,建立整个工程了。 下面是RX8025的驱动代码 ![]() |
【STM32F769I-DISC1】移植LVGL
【GUI板卡测评】1.H750开箱及简单模拟时钟
【STM32H745I-DISCO】测评:1、TouchGFX Designer初体验
【STM32H745I-DISCO GuiDemo 】GuiDemo 添加仪表应用
【STM32H745I-DISCO GuiDemo 】GuiDemo 适配LTDC驱动
【STM32H745I-DISCO】-谁能拒绝一款高性能的MCU开发板
【GUI板免费申请活动】STM32H745I-DISCO 环境监测
H723尝试LWIP_UDP
【圣诞专享活动】使用STM32H750显示圣诞图片和个人logo
【GUI板免费申请活动】STM32H745I-DISCO 调光小台灯