2139|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

怎么根据时序图来编写对应的程序过程 [复制链接]

 

刚刚拿到一个芯片,常用的芯片可以参考网上的例程来做深入了解,对于一个不常用的芯片来说,Datasheet几乎是使用芯片的唯一的资料,所以根据Datasheet时序图写出对应的驱动程序就尤为重要。

本文根据一个简单的例子来阐述根据时序图来编写对应的程序过程。旨在讲解对于初学者应该怎么利用芯片的时序图编写符合要求的底层驱动程序(老鸟请跳过)。

好了,直接开始。

首先首先首先(重要的事情讲3遍)

下载芯片的Datasheet,如果芯片使用的是标准的I2C、SPI、UART、1-WIRE等协议,那么直接使用现成的程序代码就行,满足速度的情况下模拟的硬件的怎么都行,(能抓老鼠的都是好猫,管他什么颜色)。

如果芯片采用的读写数据协议并不是常用的通信协议,比如ADC0809这样子的,厂家会提供一个时序图,通常情况下,这时候我们会采用单片机的IO口模拟来对芯片进行控制。就是这样子的图啦
 


有了这个图我们就能够根据它来编写驱动程序。

其次,要清楚芯片与单片机的接线方式,千万不要小看这一步,接线错误导致程序没调出来是很难发现的。有时候线接错了还一个劲的改程序。话说这种蠢事情自己干了就行,千万不要说。

然后,读懂时序图,本例中TLV5619共有4个端口(不是4个引脚),TLV5619是一个2.7 V TO 5.5 V 12-BIT PARALLEL DIGITAL-TO-ANALOG CONVERTER WITH POWER DOWN(2.7V到5.5V 12位带关断功能的并行DAC)。

按照要求连接好线路之后,就要对单片机IO口进行初始化,配置端口的输入输出模式,有时候还会配置上拉下拉等等,不要搞错了,这些准备工作都做好了之后,就正式开始看时序图了。

时序图故名思意就是时间顺序图,简单点说就是按照时间顺序数据和控制信号按照要求变化就是了,这里提供本人看时序图的一种方法,自称“扫描法”,就是用一个竖直的轴从左往右扫描,扫到谁 谁就变。
 
本例中 我们看看初始状态,可以看出控制信号/WE、/CS、和/LDAC都是应该置‘1’,所以程序开始就应该确定端口的初始状态。所以程序开始就是/WE、/CS、和/LDAC置‘1’ 记为状态0
 
接着就是/CS拉低开始时序图的第一步 程序中描述就是 CS_L;  记为状态1

类似的把每个状态的每一端口的变化都标出来 如图
 
随着时间顺序,依次完成状态0到状态9的转换

每个状态对应的代码如下图
 
最后,将代码整理一下做成函数。

整理出来的代码就是这样子啦
 

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表