磨削技术网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 546|回复: 0

可编程双路12位数模转换器TLC5618及其C51高级语言编程

[复制链接]
发表于 2010-9-13 21:34:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

您需要 登录 才可以下载或查看,没有账号?注册会员

x
! \: d$ |. b x. H r f2 y/ s, u/ \& m. G$ M% D' I& L/ | T- y/ F
8 C% z0 Q7 v6 |% k" ~% ?

1概述
1.1一般说明
        TLC5618是美国TexasInstruments公司生产的带有缓冲基准输入的可编程双路12位数/模转换器。DAC输出电压范围为基准电压的两倍,且其输出是单调变化的。该器件使用简单,用5V单电源工作,并包含上电复位功能以确保可重复启动。
        通过CMOS兼容的3线串行总线可对TLC5618实现数字控制。器件接收用于编程的16位字产生模拟输出。数字输入端的特点是带有斯密特触发器,因而具有高的噪声抑制能力。
1.2特点
        (1)可编程至0.5LSB的建立时间;
        (2)两个12位的CMOS电压输出DAC;
        (3)单电源工作;
        (4)3线串行接口;
        (5)高阻抗基准输入;
        (6)电压输出范围为基准电压的两倍;
        (7)软件断电方式;
        (8)内部上电复位;
        (9)低功耗,慢速方式为3mW,快速方式为8mW;
        (10)1.21MHz输入数据更新速率;
        (11)在工作温度范围内单调变化。
1.3引脚排列与引脚功能
        TLC5618的引脚排列如图1所示,各个引脚的功能如下所述:
        (1)DIN(1):数据输入;
        (2)SCLK(2):串行时钟输入;
        (3)CS(3):芯片选择,低电平有效;
        (4)OUTA(4):DACA模拟输出;
        (5)AGND(5):模拟地;
        (6)REFIN(6):基准电压输入;
        (7)OUTB(7):DACB模拟输出;
        (8)VDD(8):正电源。

4 N$ N Q: v4 s9 m3 J; e* A# Z

8 T' W) K# }; A! y7 g( b$ X/ @2 H

1TLC5618的引脚排列

7 o# h& {& X* H$ }& Z

' k5 Q3 R0 B1 o2 Y& l. L; \* V

2TLC5618的典型运用电路

, X, [; W8 r* `) \; y7 u6 a, \$ q; ^- Y

2应用介绍
2.1一般功能
    TLC5618使用由运放缓冲的电阻串网络把12位数字数据转换为模拟电压电平(见图2),其输出极性与基准电压输入相同(见表1)。

1 L% n A4 B# o: s- P: v* ]

1二进制代码表(0V至2VREFIN输出,增益=2)

' } z1 Z, u& Z) H4 X1 F ( @( k% n& p! I' U; v$ j2 [: m& c! ` r; a9 D& W7 b3 g5 {. e( r8 W8 V. N* C6 j! b' H+ E; d$ K% a3 q0 `# Y3 t9 x" U1 O3 @: |: @- v4 G) h: ?6 S( {. U( A5 F% ^& F4 D# @' |% {5 O: Y, ]' T* ~3 M' V: `- B& d2 M+ B# u$ }8 R* k2 I: `$ H2 z3 }$ u% H6 r9 @" r$ [, C* y6 q7 A0 d& Y. ~9 ^. |7 K2 _6 _' J" [- d' a% }& a3 g0 P' w2 o* S) f& i$ s ]6 Q8 `- \/ p% z/ v' r2 T/ N8 R% g7 g9 B/ O; T! k. q' Z. r8 l. V* z8 n- q6 E D; V: ^7 ?; P7 q) f3 h& E0 z) o7 P+ Z. L5 g4 g( S6 ?3 M$ x, m7 V. ^. G3 T+ b+ r, _1 G% L; |, m+ r: s3 X& ]) ]6 V" q2 V$ v. t8 H7 S4 }3 L- J! g& Q' r- _/ H ^: }, p) M; b+ l9 {" r$ C/ j2 I' ]5 H6 K% N! o# H( b8 Z) L: _/ ?- ~4 F4 @- ^- I
% b2 O9 d4 R W# X# p1 l

输入+

" X+ P! {+ R- o; [; j5 r) u: z

输出

- y7 U" o' f J$ u5 C" h

111111111111

: f2 O( q! t5 p+ \! T# j e) C2 R: A

2(VREFIN)4095/4096

6 @& q) U- V. w! W

3 Z% \$ F7 r- L7 g4 R& ^

# t3 x$ J, T7 `) P) |$ W: a

100000000001

0 M$ f% J8 _ l7 ]

2(VREFIN)2049/4096

" s2 ^8 f. W# _- N1 }$ a! }

100000000000

$ M, ^' O4 S C' O

2(VREFIN)2048/4096=VREFIN

7 e# n( M0 O/ s" |

011111111111

4 a { F& I4 Y! w# O( W

2(VREFIN)4097/4096

2 }1 V7 Z3 O7 `

8 R; x0 Y3 G9 A x0 H: L2 k

- b) r% f/ l/ p+ l

000000000001

: K" [3 q, _: l

2(VREFIN)1/4096

/ D3 l% N7 z6 A3 {0 R6 l0 p3 E

000000000000

& b7 j) w- ~4 A' Q" ~ w$ W

0V

, p( M4 P* X" [; `# \! Y

    输出电压由下式给出:2(VREFIN)CODE/4096。
    上电时内部电路把DAC寄存器复位至0。
    输出缓冲器具有可达电源电压幅度的输出,它带有短路保护并能驱动具有100pF负载电容器的2kΩ负载。
    基准电压输入经过缓冲,它使DAC输入电阻与代码无关。
    TLC5618的最大串行时钟速率为:
    f(SCLK)max=1/[tW(CH)min+tW(CL)min]=20MHz
2.2串行接口
    当片选(CS)为低电平时,输入数据由时钟定时,以最高有效位在前的方式读入16位移位寄存器,其中前4位为编程位,后12位为数据位。SCLK的下降沿把数据移入输入寄存器,然后CS的上升沿把数据送到DAC寄存器。所有CS的跳变应当发生在SCLK输入为低电平时。可编程位D15-D12的功能见表2所示。

# o* O3 T/ t6 G/ N) B

2可编程位D15-D12的功能

" \! V L$ j- |( Z9 {; c7 _, V. b; @, Q) s- w0 e! R4 f$ Y6 D4 D: d2 B; W) d+ J# G; N" `( X- \9 D' Z3 n7 G3 W1 P* _- g. `* G6 C& w% S- I* \2 D0 S* h+ K2 F7 v s) l. g; h. g1 l. @$ o" @, T! W9 V& S* x; o* F# j5 x9 Q$ {+ |+ J$ s2 [: X! U/ \8 N, }+ C4 U8 C( m( A: {9 b1 c6 H+ e0 m4 x, L" f! I6 f1 g j0 x T. e7 E" t4 g- a5 L5 p0 e2 N% p. V o' e% X( s; H' p% D3 W" s. @3 N; H9 i$ D h( A& u5 W, J& ]9 d$ U& S2 m' N" m* L1 [ I$ p, I6 f3 c1 M" D& W" o$ G& Q9 K9 W" O$ \# f# W% r' r) p) T) R( B5 T! Q! H0 ~' ^- H& ~0 f* u, X: K$ e) O2 f$ F$ u" ^) K4 e7 C* _3 N, x. s8 B7 E# J7 X# I. h2 y1 f4 t6 {- w+ V( b. Z1 |2 a/ H5 ]1 x; {0 p6 K4 \* d3 d+ r; l, v- T9 n( t) s8 Z9 C$ x- l: ~* K% e5 o$ H$ e( R! x' D, m% o# b; ]5 q! U) ^( r$ G. y4 K4 J4 ~* ?0 K" \& Q# O, ~9 E4 j1 o2 G3 O: H# P( l5 Y# }7 K, N5 s- }* X$ e2 D, d6 m8 _0 C5 q+ s' q' K2 `* m0 O# \3 }/ f; [/ ]- m3 B" T7 w9 W, X4 Q g9 t* N9 P/ X& f/ Q t, r7 O2 x0 J+ ]& `* L& ~6 h8 X7 y' m, M p% u% q5 b3 `% N5 N( r" q: v6 N; i4 X1 u3 ]6 `4 `, _+ k3 I* e9 g4 D0 e; U7 D* |1 F0 n+ Y3 o3 S* U3 t2 S7 W% F H% l3 h' }9 q( Q( ], _9 z! i% a4 c& d* d/ B) R( B4 G+ e6 }7 a+ A0 P* [; {2 x' B; P/ i/ y* K4 I* I) c, Z1 W8 T& N9 ~2 q, h. L% _0 k3 |) [$ F& L( ]+ c$ n# B# i5 r/ e6 |/ ?& Q: \0 ?3 s: {1 r) t5 r# v. d: @2 M
. s* z7 b8 u) m, ^5 b9 h

编程位

j$ k9 [8 E; M0 O( q0 Q6 R1 L

器件功能

! O, R; z: u& o& }) [, ^3 o

D15

) n% }' K3 h) ]2 p. q

D14

% I, n+ P- K* m& K1 U

D13

i) I- V A+ z5 J5 X/ Q

D12

8 M" _% ~/ E% N% C/ q9 Y/ y: E

1

, N% T6 E& u& n# W

X

) g6 ]( w3 {% ~6 |

X

0 Q Z5 ?3 I5 e2 s3 H" |* t% ?

X

0 f. h! N% q8 |4 t

把串行接口寄存器的数据写入锁存器A并用缓冲器锁存数据更新锁存器B

9 f( s; o* t6 `% g

0

6 a, i0 S! b, J" e, N8 \. E

X

" L1 r2 [# u( s+ z3 G) V9 l$ r& e8 v

X

' c# B! v/ ]# {" A0 W

0

7 W+ z2 b! D* V* x! B

写锁存器B和双缓冲锁存器

& N$ n5 p. k7 C. p4 e1 @3 \# G

0

! S/ z5 t! i0 ?

X

F, i$ B( ~. Y' P1 X

X

$ e/ a# _3 n3 k- O/ a

1

) n$ L+ f9 i- ]8 b* b7 x/ S3 X# r

仅写双缓冲锁存器

$ `7 W) O; a3 x0 W4 K! l

X

; M" ?. o( v, j9 m2 e

1

7 S E @- _% W1 @ n2 S

X

0 Z( \/ e7 T! S0 K- @2 q( W5 R7 g

X

6 U* T! G+ e7 U0 O- g

14μS建立时间

2 d& U1 ?) H U& M4 O4 Z

X

& n" J0 n/ X0 V9 a: _) h+ i

0

& {8 \1 ~5 x# I1 v" m& D( O

X

9 r, W8 o/ w$ K8 u3 N& Y

X

$ F6 k; ~0 H5 r0 q$ P8 h$ Y

3μS建立时间

4 @- `' q+ }6 s

X

3 E; T8 B- F4 G+ t$ S9 m, X2 V% C

X

# T. y+ X: g5 m4 H

0

! c! n8 t/ B$ G2 {' P0 F' X- L

X

6 J. ]. V" U. V- u/ ?: _

上电(Power-up)操作

3 I; c# |, [* s+ B- X

X

9 k8 V, z7 o1 b) U l7 P

X

5 d% B2 p* W t9 U4 P' ~" C* D" Z

1

$ ~% ]1 w: V& ^7 U

X

, T3 K/ B3 {* `2 C2 h5 x

断电(Power-down)方式

& ]9 I2 \" @( A% F* R

3TLC5618与单片机的接口

/ E1 \. p9 x( e( z- Z: L$ T

6 o9 ]+ a- u+ Z$ X

3TLC5618与单片机的三线串行接口

) M% ~# L) T7 q7 p$ r0 j# L

    TLC5618与8031单片机的接口见图3。
    串行数据通过P2.1口输入TLC5618,串行时钟通过P2.2输入,P2.3接片选端。
4TLC5618D/A转换的C51高级语言编程
    C语言是一种通用的计算机程序设计语言,在国际上十分流行,它既可以用来编写计算机系统程序,也可用来编写一般的应用程序。对单片机应用系统来说,虽然用汇编语言编写的程序生成的目标代码效率最高,但其可读性和移植性都较差,而且程序编写周期长,调试和排错困难。而C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,并且采用C语言编写的程序比较简洁,能够很容易地在不同类型的计算机之间进行移植,因此,用C语言开发单片机应用系统已经获得长足的发展。用基于51系列单片机的高级语言工具C51编写的TLC5618程序如下。
#include
intvcon;输出电压变量
sbitDIN=0x91;定义P2.1为串行数据口
sbitCLK=0x92;P2.2为串行时钟端
sbitCS=0x93;P2.3为片选端
voiddac5618(intvcon)TLC5618DAC子程序,三线串行方式
{
chari;
intsvcon;
svcon=vcon|0x8000;vcon最高位置1,选择
TLC5618的A通道
CS=0;置5618的CS=0,允许片选
for(i=0;i<16;i++)
{
DIN=svcon&0x8000;串行方式送16位
数据
svcon<<=1;
CLK=0;
CLK=1;
}
CS=1;禁止片选
return;
}
voidmain0
{
dac5618(0x7FF)
}
    采用2.048V的参考电压,可获得0~4.096V的模拟电压输出。当系统不使用DAC时,应当把DAC寄存器设置为全0,以便使基准电阻器阵列和输出负载所消耗的功率最小。

}# B6 M8 `4 t1 F, ]

5结束语

; _, F& O/ j+ h9 o2 I( ?

    由于TLC5618的体积小、功耗低,控制简单,因而可以方便地用于电池供电测试仪表、移动电话、数字失调与增量调整、机器和机械控制等领域。

+ V7 n( Z$ o( w/ \& u! j1 v
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|小黑屋|手机版|Archiver|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2024-5-5 14:27 , Processed in 0.116791 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表