接口的ADS7822与同步
THE 80X51单片机串口
由格布哈特豪格和邦妮·贝克C.
模拟 - 数字转换器可以由一个正常控制
I / O端口,或用80X51的同步串行端口
微控制器。同步串行端口是更高效
cient ,但是,也有一些缺陷需要注意的时
配置的8引脚A / D转换器( ADS1286 , ADS7816 ,
ADS7817和ADS7822 )从伯尔 - 布朗。本应用
化公告描述了如何克服这些缺陷和
获得最佳性能了这个组合。
该ADS1286 , ADS7816 , ADS7817 , ADS7822以及全
12位的转换器,可在多种8针的
包。这些设备是传统的逐次逼近
符号
t
SMPL
t
CONV
t
CYC
t
惩教署
t
SUCS
t
HDO
t
DDO
描述
模拟输入采样时间
转换时间
吞吐率
CS下降沿到DCLOCK低
CS下降沿到DCLOCK上升
DCLOCK下降到电流D
OUT
无效
DCLOCK下降到下一页
OUT
有效
息寄存器(SAR ) A / D转换器。其体系结构是
基于电容的再分配,其固有地在 -
附有采样/保持功能。所有这四个转换器
在它们的接口三种数字通信线路。
这些通讯线路CS / SHDN ,D
OUT
和
DCLOCK 。在CS / SHDN引脚提供片选功能
化时低。当此引脚拉高时, A / D
转换器进入它的关断模式。基本时序
图对这些A / D转换示于图1中。
定时规范为单独的A / D转换器是
所谓如表1所列。
ADS7816
1.5(分钟)
2.0 (最大)
12
200 (最大)
0 (最大)
30 (分钟)
15 (分钟)
150 (最大)
ADS7817
1.5(分钟)
2.0 (最大)
12
200 (最大)
0 (最大)
30 (分钟)
15 (分钟)
150 (最大)
ADS7822
1.5(分钟)
2.0 (最大)
12
75 (最大)
0 (最大)
30 (分钟)
15 (分钟)
200 (最大)
单位
CLK周期
CLK周期
千赫
ns
ns
ns
ns
ADS1286
1.5 (典型值)
12
20 (最大)
0 (最大)
30 (分钟)
15 (分钟)
150 (最大)
表一,定时规范的ADS1286 , ADS7816 , ADS7817 , ADS7822和。
t
CYC
CS / SHDN
t
SUCS
DCLOCK
t
惩教署
D
OUT
高阻
零
位
零
位
动力
下
高阻
B11 B10 B9
B8
B7
B6
B5
B4
B3
B2
B1
B0
(1)
B11 B10
B9
B8
t
SMPL
(MSB)
t
CONV
t
数据
注: ( 1 )在完成数据传输,如果进一步的时钟脉冲CS
那么低, ADC将输出LSB优先数据,随后用零下去。
t
CYC
CS / SHDN
t
SUCS
DCLOCK
t
惩教署
D
OUT
高阻
零
位
高阻
B8
B7
B6
B5
B4
B3
B2
B1
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9 B10 B11
(2)
掉电
t
SMPL
B11 B10 B9
(MSB)
t
CONV
t
数据
注: ( 2 )在完成数据传输,如果进一步的时钟脉冲CS
低电平时,ADC的输出零下去。
t
数据
:在此期间,偏置电流和所述比较器断电,参考输入
变为高阻抗节点,而CLK的运行时钟出LSB优先数据或零。
图1.时序图的ADS1286 , ADS7816 , ADS7817 , ADS7822和。
1997年的Burr-Brown公司
AB-122
1
美国印刷1997年9月
如图1所示,下降,CS信号启动
转换和数据传输。此外,任何转换
从前面的转换数据被擦除的下落
CS的边缘。的第1.5至2.0个时钟周期
转换周期是用于采样输入信号。后
第二下降DCLOCK边缘,D-
OUT
被启用并且将
输出一个时钟周期的低电平值。在接下来的12
DCLOCK时间,D
OUT
将输出转换结果,
最显著位( MSB)开始。后的至少显著
位( B0 )被发送,后续的时钟将重复
的输出数据,但在一个至少显著位(LSB)先
格式。
这些A / D变换器和所述建议的电路
80X51示于图2中的80X51的串行端口
构造成在正常模式(或模式0)。在这种模式下,
串行数据输入,并通过RxD进出。八位
发送或通过RXD接收( LSB在前) 。在这
电路中,当RxD / P1.2端口是专门用于串行
端口接口模式和配置以接收串行数据
从A / D转换器。 TxD输出的移位时钟
微控制器。波特率TxD脚被固定在1/12
振荡器的频率。对于该电路,的TxD / P1.3是用在
串行端口接口模式,以及I / O模式提供
所需要的A / D变换器的DCLOCK信号
在转换过程中。最后的的P1.1引脚
80X51微控制器被选择为驱动芯片选择(CS)
销在A / D转换器的。该微控制器的选择
脚是任意的。
为80X51型串口时序图
单片机示于图3。注意,串行端口
由该80X51装置产生时钟正常空转
HIGH 。这就产生了一个潜在的问题与这些A / D
转换为CS / SHDN信号被拉低开始
转换。在一些情况下,一个转换将发生
通过要求一个额外的时钟这个时间安排
周期,以完成该数据传送。在其他情况下,一个
转换将不会发生,除非DCLOCK为低的
时间在CS / SHDN变低。
时钟问题
有两种可能的解决方案,这些问题:1.使用
外部反相器反转控制器的时钟(时钟
将闲置LOW)或(2)对软件的修改
与80X51控制器。
与第一溶液,定时变得至关重要。在80X51
必须锁存数据到其内部移位寄存器中的
该A / D转换器采用提前同一时钟沿其
串行输出流。的80X51定时的关系
和A / D转换器的时序图示于图4。有
两个计时问题,使这一切成为可能。第一个是
逆变器的延迟时间已放置的RxD之间
和DCLOCK或A / D转换器。二是保持
在A / D转换器的时间。在设置和持有的本次
系列转换器示于图5中。
更好的方法是修改软件,而不是包括
在时钟线额外反相器。在该第二解决方案
灰,控制器的CLK,在这种情况下,P1.3 ,被带到
LOW设置CS / SHDN前低。作为下一个指令
化, P1.3被拉高再允许串行端口
正常操作。所需的所有未来的时钟信号
转换由控制器的串行端口内部完成
(TXD / P1.3 ) 。图6给出了该算法的代码。
80x51
ADS1286
ADS7816
ADS7817
ADS7822
DCLOCK
D
OUT
CS / SHDN
TxD/P1.3
RxD/P1.2
P1.1
图2电路图ADS7816 , ADS7817 , ADS7822或与通用80X51微处理器。
写SCON (清除RI )
RI
接受
移
RXD(数据输入)
D0
S5P2
的TxD (移位时钟)
D1
D2
D3
D4
D5
D6
D7
接受
图3.串口时序图的80X51型微控制器。
2
写SCON (清除RI )
RI
接受
移
RXD(数据输入)
D0
S5P2
的TxD (移位时钟)
D1
D2
D3
D4
D5
D6
D7
80x51
调节器
接受
倒置的TxD ( DCLOCK )
的Burr-Brown公司
ADS78xx
接口
Hi-Z状态
B11
B10
B9
B8
B7
B6
CS / SHDN
RXD (D
OUT
)
图4.时序图的ADS7816 , ADS7817 , ADS7822或与通用80X51微处理器。这样的时间安排
操作要求TxD输出与外部门倒。
测试点
DCLOCK
V
IL
t
DDO
D
OUT
t
HDO
V
OH
V
OL
D
OUT
3k
100pF
C
负载
V
CC
t
DIS
波形2 ,T
en
t
DIS
波形1
图5.建立(T
DDO
)和保持(T
HDO
)的ADS1286 , ADS7816 , ADS7817以及ADS7822的时代。见表一对
时序细节。
CLR
CLR
SETB
SETB
CLR
GetAD10 :
JNB
ads_clk
ads_cs
ads_clk
-REN
Σri
;
;
;
;
;
;
确保DCLOCK低( P1.3 ) ,当CS下降
P1.1
置位( P1.3 ) ,使串口
使串口接收数据
清晰的接收寄存器
开始转移
_RI ,获取AD10
;等到完成
图6.代码需要实现对时钟冲突之间的软件解决方案(如图4所示)
80X51型单片机和的Burr-Brown的8引脚A / D转换器。
3
调整控制器的位阶
这些SAR转换器的输出始终在高位在前一个时
新样本被转换。另一方面,在80X51
设备期望的数据要传送到串行端口与
LSB在前。如果第2个字节( 1字节= 8比特)是
传输时,数据位必须被重新排序,由软件
控制器。
对此的一种替换的方法是转移的第三字节
从A / D转换器的控制器。如前所述
此前在该应用报告,该A / D转换器
第一,然后传输12位的转换的MSB的
通过转换同样12位LSB优先紧随其后。
微控制器之间的“第三个字节办法”时机
和A / D转换器示于图7 (参考图
1,用于这些细节在A / D转换器的时序图)。
试看密切在图7中所示的时序,它们
会发现, 11位( MSB )丢失。这是由于这样的
事实,即LSB不启动在字节或半字节
边界。它显示为如果控制器仍然必须
位进行移位,终于捕捉CON组的数据
变频器。与此相反,该软件可以创建一个更
时钟周期,在该转换过程的开始。在
这种方式下,串行系统将产生所需的
结果示于图8中对这种增强的代码
给出了图9中。
在80X51汇编语言编写一个简短的程序显示在
图10.该程序也可从Burr-下载
布朗的WEB站点( http://www.burr-brown.com/ ) 。它的题目是
“ ADS78xx VS 80X51接口。 ”这短节目demon-
strates如何接口ADS7822的同步
在80X51设备的串行端口。
CS / SHDN
DCLOCK
高阻
PORT
I / O
B11 B10 B9 B8
最高位
串行字节1
B7
B6
B5
B4
B3
B2
B1
B0 B1
最低位
B2
B3
B4
B5
B6
B7
B8
B9
B10
D
OUT
串行字节2
串行字节3
图7.由于80X51型控制器需要LSB首先, A / D转换器必须输出它的前12位( MSB在前)
与12多个位(低位在前) 。请注意, 11位失踪是在传输结束。
CS / SHDN
DCLOCK
D
OUT
高阻
PORT
I / O
B11 B10 B9
最高位
B8
B7
B6
B5
B4
B3
B2
B1
B0
最低位
B1
B2
B3
B4
B5
B6
B7
B8
B9 B10
B11
最高位
串行字节1
串行字节2
串行字节3
图8.小软件变更更正问题如图7所示。
CLR
CLR
SETB
CLR
SETB
SETB
CLR
GetAD10 :
ads_clk
ads_cs
ads_clk
ads_clk
ads_clk
-REN
Σri
;确保DCLOCK低( P1.3 ) ,当CS下降
; P1.1
;发送一个额外的DCLOCK周期( P1.3 )
;置位( P1.3 ) ,使串口
;使串口接收数据
;清晰接收寄存器开始转移
图9.本准则的要求实施,提供了LSB首先到80X51类型的软件解决方案
从单片机的Burr-Brown的8引脚A / D转换器。
4
; 80x51.ASM
;
; [目的]
;通过接口同步ADS7822达拉斯微控制器。串口
;***********************************************************************
;使用串行端口
_SCON
EQU
0c0h
;串行端口配置寄存器
写SBUF
EQU
0c1h
;串口数据缓冲区
Σri
位
_SCON.0
ΔTi
位
_SCON.1
-REN
位
_SCON.4
ads_cs位P1.1
;片选位
ads_dta位P1.2
ads_clk位P1.3
; DCLOCK位
ORG
08100h
RESET :
MOV
SP , # 07FH
;初始化堆栈指针第一
通话
INIT
;做全球初始化的东西
循环:
通话
GetAD
;获得阅读
通话
ADDisplay
;显示它
通话
CRLF
;和后藤下一行
JMP
环
;**********************************************************************
INIT :
MOV
_SCON , # 00H
;对于同步I初始化串口/ O
RET
;**********************************************************************
; [ GetAD ]
;获取一个读数的ADS7822
; [参数]
;无
; [返回]
; Hibyte在单元020h
; Lobyte在021h
GetAD :
CLR
ads_clk
;确保CLK为低电平时CS下降
CLR
ads_cs
SETB
ads_clk
;一个额外的时钟周期,使
CLR
ads_clk
;第0位作为第3位中的第二个数据字节
SETB
ads_clk
SETB
-REN
;启用串行端口接收数据
CLR
Σri
;清晰接收寄存器开始转移
GetAD10 :
JNB
_RI , GetAD10
;等到完成
CLR
Σri
;再掀转让
GetAD20 :
JNB
_RI , GetAD20
;等到完成
MOV
一, _SBUF
CLR
Σri
;去年开始传递
ANL
一,# 0F0H
;屏蔽不需要的位
MOV
021h ,一
;保存低字节
GetAD30 :
JNB
_RI , GetAD30
MOV
一, _SBUF
;获得高字节
mo
单元020h ,一
;保存高字节
SETB
ads_cs
;转换完成,复位CS
RET
图10.本计划将界面的ADS7822到80X51类型设备的同步串行端口。
5