注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
凔海的个人空间
https://home.eeworld.com.cn/space-uid-641902.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
凔海笔记之FPGA(九):玩一玩DS1302
已有 1018 次阅读
2016-5-23 23:31
现在这日子过得,一周四节课,没有考试没有作业更没有实验课,真不知道说什么好,还是来说说DS1302吧。(~ ̄▽ ̄)~
它生有八脚,电源分主备,晶振有要求,时序有讲究,可记年月日,可分闰是非,可显时分秒还有周。
DS1302,资料漫天飞舞,多得就像现在的杨花柳絮,所以学起来到不怎么费劲,
但是为了学习,嗯,为了好好学习,我还是要认认真真干下面这些事、
1、了解DS1302时序
2、写Verilog代码
number one:
看上图
X1、X2:晶振要求32.768kHz=2^15。只是选择晶振时,不同的晶振,误差也较大,估计32.768Khz晶振,分频后,能精确的分出秒信号脉冲吧。
CE:输入信号,在读、写数据期间,必须为高。
SCLK:控制数据的输入与输出,上升沿写,下降沿读。
I/O:双向数据线
就这些应该没了吧。其实,DS1302的操作,就是要整明白如何访问DS1302的寄存器,如何向DS1302写入数据和读出数据。
下面就整吧。
先看, DS1302单字节写操作的时序图
第一个字节是“访问寄存器的地址”,第二字节是“要写入的数据”。在写操作的时候,都是“上升沿有效”,即不管是“地址字节”还是“数据字节”,都是在SCLK的上升沿被采集的。(数据都是从最低位开始发送至最高位结束)
接下来是读操作时序图
读操作基本上和写操作的时序图差不多,区别的地方就是在第二个字节时 “读的数据” 的动作。 第二字节读数据开始时, SCLK 信号都是 “下降沿有效” 。
并且CE信号都是处于高电平状态的,所以在对DS1302进行读写操作前都要拉高CE信号开始,操作结束后拉低CE信号结束。
这是访问寄存器地址的格式表:
读和写操作,都是先发送一个字节的“访问寄存器的地址”。这些寄存器地址格式如上图所示:
Bit 7 固定,为“1”
Bit 6 表示是访问寄存器本身,还是访问 RAM 空间。
注:为“1”表示访问RAM,为“0”表示访问寄存器本身
Bit 5-1 表示是寄存器或者RAM 空间的地址。
注:表示具体的寄存器或者RAM地址,跟bit6相关
Bit 0 表示是访问寄存器本身是写操作,还是读操作,1读0写。
日历、时钟寄存器与控制字对照表如图:
对于写指令,黑金告诉我可以这样来表示这八位地址指令:
{ 2'b10 , 5'd Addr, 1'b RD/W }说是可以提高些解读性。
例如:{ 2'b10, 5'd0, 1'b0 }写秒、{ 2'b10, 5'd1, 1'b1 }读分。
下图为DS1302各个寄存器的地址组成:
这个表述了每一个寄存器的字节配置,我们可以初始化时钟开始时的时间。
如果笔者要初始化分为33,那我就先写指令{ 2'b10, 5'd1, 1'b0 } ,接着写数据{ 4'h3, 4'h3 }。就这样
不过有三个寄存器值得一说,
1、“秒”最到位为0启动,1关闭
2、“时”最高位置一则十二进制,0为24.
3、WP写0关闭写保护,写1打开写保护,所以重新设置时钟时间时需要将此关闭。
那么,因为就6位数码管,所以我们要初始化DS1302位23时59分50秒怎么做?
1、关闭写保护。
2、改变时寄存器
2、改变分寄存器
3、改变秒寄存器
4、不断读取时分秒寄存器。
用Verilog怎么来描述呢?
number two
其实和IIC单字节的读写是差不多的,也是三个模块,
数码管显示模块:Smg_module
DS1302功能模块:DS1302_function_module
控制模块:DS1302
数码管显示模块就不说了,和IIC一样。
DS1302功能模块:DS1302_function_module就是讲读写时序图描述出来,让我郁闷的是,读DS1302的读写时钟是多少呢?百度没找到,然后就参考人家的了。
写到这,我发现我真是闲得蛋疼,这表格画的,啧啧
识浅薄出拙文,如察错误望赐教,小弟在此感涕零
本文来自论坛,点击查看完整帖子内容。
收藏
邀请
举报
全部
作者的其他最新日志
•
凔海笔记之FPGA(十一):SDRAM(づ。◕‿‿◕。)づ
•
凔海笔记之FPGA(十):Verilog描述IIC单字节读写协议
•
凔海笔记之FPGA(八):Verilog描述RS232 UART
•
凔海笔记之FPGA(七):触发器和锁存器
•
凔海笔记之FPGA(六):二进制的加法番外篇
评论 (
0
个评论)
涂鸦板
您需要登录后才可以评论
登录
|
注册
评论
凔海
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
用于Wi-Fi设备的小型2016尺寸晶体谐振器再增新品
如何使用双刀双掷开关(DPDT)实现极性转化?这张图一看就懂
AI赋力银行业务:加拿大皇家银行基于DGX系统构建私有云
瞄准TWS蓝牙耳机市场?近距离接触ams三大优势方案的机会不容错过
给你一天时间,如何理清AI圈儿现状?
用Fusion Complier让你的芯片成为顶流神器
新增数据手册
531NC1247M00DGR
CXS3106A1811P
Z8623316SSC
VEMV8T3.3-160.0-1.0/-10+60
NVD10UC10UBA120
SIT9045AAE73R18DKA25.000625D
热搜器件
FST-22A-22
PCF2512R-23K7BT1
1860000-1
345-070-520-801
RP73D2A464KBTG
2SA1576A-R
推荐下载
TrayPopMenu
LM3S3748开发板原理图
塑料成形性能论述
C语言编程实例100题
FLUENT_13.0 文字命令列表
NUC140,pdf(Cortex™-M0 32
推荐关注
《Linux内核深度解析》-系统调用学习
《Linux内核深度解析》-- 内核互斥技术
电池插入检测电路
过孔的设计孔径是真的很重要,但高速先生也是真的不关心
本地匿名化解决方案:隐私保护、自主掌控和高效运行!
移动式电子汽车衡行业数据分析报告2025