找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 585|回复: 0

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

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

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

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

×
8 {3 P) T* P6 J5 V9 `3 _8 k% h9 ^& L7 D1 u+ t3 D8 F: {3 }, ?4 Z i: G+ P
# }, x6 B8 \( o. z( `

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):正电源。

- E) X. R' M( ?. S

$ d# u1 v* A8 U% e0 y/ J

1TLC5618的引脚排列

- U B+ d- y. D2 _

9 t1 @7 g9 C2 t! g) a

2TLC5618的典型运用电路

: X M1 T g4 s+ l( P" p7 e% x

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

4 k5 w9 N1 Z' V8 B; f! I

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

' D: e& R) o) T1 t: }) t5 n# d! v9 S9 {* e: b0 E% n; p, {* J" @0 R% k- l; @: n' [) r. Z; I% l% S8 t% U) }0 S/ I( w4 R8 E; |. t4 Q( ?, \& ]/ L$ s( K$ f+ H0 k) B+ e9 Q9 |* S" M1 g7 W8 Y; k+ _1 Q& M' h2 {& e# h9 L& l# `. p6 |' Z7 l9 L/ e4 h# J, s7 n/ `6 D3 g, r. v3 t" m+ i* k/ B3 b7 w! e+ h7 Z$ c1 m$ n# S8 j2 J: B0 C6 V! `+ ^% ?: ?$ |8 f6 X# j6 |9 o; w4 B( w0 w2 O# o6 }( r3 W. L, A( T" b+ V7 R% M) B/ Q5 R" Y8 z* M) R8 G9 d/ a1 A# q$ R- K: ?9 F7 n' C* q# r3 Z- j$ x% L6 |' M/ g2 V. S- r0 y$ f$ U: S+ h% K& `& [8 f& T" n- B/ {. {4 M8 {2 H/ k3 A# m) H0 k2 K; E# H% u3 v8 j$ y! t# n+ p6 ~$ _! |4 x5 l/ q9 X0 ~/ c3 C3 R- X g6 |) f2 z( A6 T& D+ ~$ ~* Q+ h3 p$ V f% {0 E7 v0 L2 L; _3 @$ \- y
: g4 E. I7 u% \

输入+

; I0 n8 q/ s; V9 J/ ^" S

输出

/ B( `) c6 v" H# J% V$ k

111111111111

D8 j5 p$ T) g a! ~1 E' V7 j/ C7 M

2(VREFIN)4095/4096

& u3 x- R0 H/ d ^& v

' S! O7 j) n6 D0 i" T" K. N

& O* g) a) H) ?

100000000001

- _5 x' L: {7 Q) ~* M

2(VREFIN)2049/4096

; p" s \* G% \) R) W. f( z

100000000000

. y5 H, w9 u0 X" y/ b" J

2(VREFIN)2048/4096=VREFIN

2 D7 E/ _/ ?3 E! s8 O6 m

011111111111

, r5 g8 R$ m+ Y4 V& [( z

2(VREFIN)4097/4096

0 P2 Y8 n1 c9 X( d8 A/ l% \7 b

2 {4 m. k! @6 ?9 ^& s

% U- ?2 f% t+ }0 c3 `; S! n9 B s6 Q

000000000001

$ T& x7 Y4 z# i$ u+ `

2(VREFIN)1/4096

& F9 ~( v$ F/ t

000000000000

- ]4 q# p$ X- R! G

0V

: z; y# M+ m8 ]3 x- ?

    输出电压由下式给出: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所示。

1 d9 U) ~' d0 i% V* L

2可编程位D15-D12的功能

! B' L' M. V) {2 T; S9 y0 d4 s/ @& ^ K; c; b% @/ S4 w* ]4 y {0 t: F" c/ T, l1 v# K& E6 E( t& I2 u/ ~8 {; p* Q4 H6 ?* S- b1 c! Y" ~/ l9 l" f9 W, p+ }# p% d& k6 P0 e$ x0 E1 \/ L: T9 j& [' s" B7 B- ?' P2 y3 X) N Y; @7 y9 |3 C0 H! P! r* x7 e; z% t; y) i6 C2 \! k \- _& ?$ l# o$ l* s3 m8 |/ H/ h4 B C; e8 ^/ w5 V: \/ a- v* q& k. _- b9 E& U3 ~ k' d4 K! s" {8 r: I! \- i6 x3 C- ~0 e; {% ^% N6 e" ^5 E8 l9 g1 M+ c; d& ^( i5 U: W/ D( j) L- V3 y. t* @6 R' } m W* s! _ X' P& F1 V0 H Z/ l: u8 @ _2 f7 B+ |( A0 v! ?0 K2 |- K- \$ K& U+ f$ I0 a/ D! f* d0 t0 I" u2 l* Y. a' z, l; y! g8 t7 t% { G2 t. Y) r, W: k) F6 e7 z3 V5 H' j2 U! V* K# ]/ _7 c% Y) X8 ~4 w; M; G r' g5 ^; Q) K: y$ k8 q/ J9 Z' N) O0 a' {% C) p" z k; W; H' v% w' ]7 r3 d" m. M5 p9 V8 p. F# p/ L, T; h! v$ m* _( d/ Q4 g& ~& t1 I# K8 q6 U, p) `0 L5 y {0 D5 z/ J7 s! d2 ~- g5 J9 c$ A/ D( Y8 ?2 p5 R U7 r0 P; G0 a, r; E" l. t6 ^, q; V( e- J5 `& `5 q$ ~- a7 F3 X) z d: G' Q! Z& i# b; y/ h, u, k/ f9 q K! I+ c p& a/ Q+ |: X+ ?4 p5 e: `4 G" [3 o6 X3 S9 e7 A* s% B4 d, F' J4 h- ]/ V& F3 P# n0 V3 P4 I# m) f, j' f4 M9 C# P v$ I* s) n& f' T! @; g& [2 o- @- i, ~$ j i- G2 O# |8 M2 z) R) e2 C; ?4 l# x# I# r1 a1 m
9 K* u4 `: D' m/ _. X1 l

编程位

* G( W$ N+ t+ o1 A% v0 S0 }

器件功能

& b3 j' x! o9 f1 f7 ~

D15

6 L1 t; @+ G# ]9 b; g+ `4 f( B

D14

/ M4 c$ e j! k8 \

D13

. ~% J* r, e1 n& ~

D12

# m. }, g7 r% R7 _1 U

1

% ]% X+ u, Y, Q; V) k/ G

X

2 w$ I3 z! I5 \/ V# A9 N" j

X

W3 T5 [; m% r

X

. ]- K* q; S. Y; x

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

0 W+ o c1 J4 Q9 x: m- Z: G) A

0

5 b6 X8 |1 U2 r7 R2 B$ b

X

1 r/ z* u& C8 _8 r# W( _ Z( W5 g9 o

X

! E+ Q5 J7 n& y% \3 y: ]

0

1 n& V8 v' H+ y$ ^) f" u* t

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

) @6 `. i6 F4 r

0

) g, ^% I' w. l2 X7 P( S0 K- s, a

X

6 d: [3 A M# E

X

5 U" A& Y f8 L

1

6 f* M& G& M- h# Z

仅写双缓冲锁存器

- P& k' X9 L6 g4 O; T0 w

X

* R1 f$ v5 S$ v; s) F

1

8 [3 J+ j0 W! L

X

2 X. `' p1 @8 n" f/ Q+ [, e

X

, `4 I- w m- {! \9 H

14μS建立时间

/ P1 f* [3 G) F" Y' E# ^

X

5 S. A! G( l2 L. \% x9 G

0

& O% U* I3 h. W% R3 { |0 h. {

X

- |% h, S3 ^( `7 l+ @

X

' f- [8 H5 d X1 L* ]" ^

3μS建立时间

% g. M* c( m% o" d

X

2 _( a; n W2 P3 H% t9 s" s

X

4 e+ K1 i" |- i7 b, e0 a

0

5 c3 D( J% b W) S" w

X

% g6 R1 b: R9 G' f3 B0 c

上电(Power-up)操作

! c1 L7 R( n+ q! H7 a

X

$ s) v0 l. v1 a8 }

X

5 r& c' |2 s$ M! k. W( ~

1

: Y% h3 l' ]+ O8 M3 b

X

6 q7 g8 B; k9 O( I

断电(Power-down)方式

1 N8 b, Z9 E$ p( m+ k

3TLC5618与单片机的接口

" e5 m$ f7 @9 L* v5 U' P" @

* t5 [" H% y3 g

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

7 } G+ \9 X$ Q- Q

    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,以便使基准电阻器阵列和输出负载所消耗的功率最小。

/ {' m, z' u; R/ y$ L1 b/ m9 `

5结束语

* R4 k( t+ |% o, u I2 B4 o3 r

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

- s7 K T0 a+ y" _# ?
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2025-3-1 07:33 , Processed in 2.678280 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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