找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 595|回复: 0

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

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

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

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

×
* h1 h+ p2 J* V1 Y; F2 D8 {4 u- D/ A/ R0 h0 D- j) N6 z3 X/ j/ E+ ]4 D
) K' X# f- l4 e$ j* y

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

) y# G- f) Z6 ?2 ]

: b4 o+ R5 s% a2 R

1TLC5618的引脚排列

! F2 H2 B9 \% C E0 B, c

) H" z/ v" \) l2 X

2TLC5618的典型运用电路

% W6 v8 u1 h. A J

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

& r: G) s% ?4 e( M5 o. l* ?

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

- Z; T: Z" B. Q9 O 0 [# m( \9 _. [' h& N! j& }* D- g) G5 T9 o/ n. F( V6 Q. P3 ~. {# t# P Y8 a2 q6 [7 v5 ^9 m8 I: Q9 Y8 J! G+ t2 G7 \$ o7 i, a. l( V( o1 t9 O1 k. e; _9 k( x# x$ S! G+ [, b# [4 [: T2 B! ]/ S0 }* v& H8 K0 Q, f' f X/ ]/ Z7 c+ ~ q! b n1 v. z9 N# a2 C4 _: [, |* W+ L' T0 `0 q2 ]% x* c4 t+ _3 t. a$ _& @) g& |9 F7 X' @. Q5 Q, \$ I' F: ~, }9 K, c, h$ K) ?+ q( G; v) S( S; x2 }% s+ L0 z, h$ B3 F# I D4 G* M/ W; n& q" w1 G3 G- d& N7 F' a1 {: L1 K% X9 x8 V6 J' Q- T( U8 Y2 O; L# ?& Z- ]+ q5 ?# ~0 ~* C! ]0 v9 h$ l* M( c6 D! ~' e- \7 I. z6 z$ {/ ` m c$ G9 j" x1 m1 k) f1 ?2 M: |( r4 G; S! E4 b, p, i# q" L) `" h2 L) V5 m- a1 i7 D+ S& X! ]2 v7 J, u+ g. s. w! C: y1 h1 S$ d0 I1 g& M5 y9 K7 ~2 K
8 d" a$ R* o7 }

输入+

1 d/ @2 R+ v8 V" N: `: c5 z, H# Y

输出

9 ^2 O- s, H: Q* w; R: R* X; q! [

111111111111

L8 I% M E& y

2(VREFIN)4095/4096

* E4 [+ V) [3 s$ W1 S' f

K9 y( H. A& Y- o" F

( C/ W8 J% {' U" C3 Y- o

100000000001

) S. U6 ~! A! |6 j& \) ^

2(VREFIN)2049/4096

/ a7 S3 C9 f; S. [: p9 K5 ?

100000000000

, ^ ? W& t" M, n- P4 h

2(VREFIN)2048/4096=VREFIN

$ p. F3 M; ]& E

011111111111

4 V- W& z) B+ Z) k

2(VREFIN)4097/4096

- {" [6 y* D/ y: w: X$ m V6 `, U

/ b/ p4 ~0 M0 y

& Q; D" P/ M3 x8 \! \

000000000001

G0 z& p% H( ?% Z* N* t, d$ E

2(VREFIN)1/4096

% m/ P; _* t9 |3 q7 @" H2 J& Z

000000000000

. X3 g- }# f7 \, A! C

0V

6 e2 J) j" m- i. t4 O

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

L( O! Y I/ g. w

2可编程位D15-D12的功能

& D, \- g- t6 E4 }) T: L 8 d, q8 b5 y5 v" G7 e8 M( H3 D) ^( ^, x7 i0 X! L8 _2 n- A8 T$ C9 d( ]5 K' F$ v$ X0 k, e) e& k/ I% u% N5 ~; X( Y8 s! J: k( o/ b6 S; u. p f1 n- E) C% N- \4 S" Z9 ]! w$ h/ }6 \/ f+ ~; W! t. P/ H# @5 j: L3 Y8 H9 R0 [% b! ]3 e$ H, q: y5 H" n8 l4 Y1 s/ t! M2 L: _+ z' a; u0 c8 y. ], J7 D6 \# B+ X: ]. E6 g% L5 |4 x" e1 e9 K3 `* `* d+ d, k/ `& k: Q" d8 X) Y4 Y+ O0 F+ H/ K# w1 y) G1 G X1 }: e& d" |8 Q2 x: `! z8 |" i1 s+ B3 k8 `' _( @; S1 \1 e! P" D \. L$ j8 T+ B5 ^$ {' O3 i8 ?1 o3 A& u' Z' N% {! q' k7 s/ ?9 ^: B6 `3 ^4 R- }0 O/ R( a( J# c m6 @6 t1 I: I0 h8 m z! E; U' Z* C1 d2 y* x6 L4 g3 p' N5 }. h& b; B/ z% a8 ?/ ?# r9 c5 E% n# P C2 W& }' b+ v! X: i4 D: R7 Y8 j# ~& o0 I1 O4 R& r) l$ s0 D2 a8 }1 a B5 y$ [9 `! V# o# O6 G7 o6 d1 q7 @- v4 R8 e0 f7 x6 R5 T8 L8 g, x! j! {3 a5 F! L$ c! o* e [' L; s; ?! \# z( W: q# T( `4 C, H i: I7 t+ r3 @5 B4 y; r" ^9 |: M( g6 }* U( {0 X& {( P( H1 E# z9 k6 q7 z& @9 J+ ^2 o |7 `. ?$ n* F( c: y' F5 _ f2 K O2 o+ @7 n0 u" }9 \5 q3 O% o) b7 S) J+ T& h/ D) y8 m0 N3 p2 n9 F/ [. B! B+ C+ C j# y" J4 d, M1 q% f9 `. M6 Q; t) w$ p- V2 ?- Q: e" I4 l3 A7 D7 t- G9 C6 @; w" `+ E1 C' j0 O9 U+ [' R: G8 S `& Y$ f( C4 W2 \2 o3 y/ o6 R5 n9 d8 h% f3 S& Q2 j9 \* l9 r1 f' P7 B9 w- f; O' l5 `3 v1 N+ V3 m" ?# t$ j3 h: G( E
' I* j3 C# p8 E$ r$ x6 y1 A

编程位

# i( T/ W% y( k- E

器件功能

* `$ R; q# _" Q% k+ ]' y z( F

D15

( X: Z7 b$ b$ U5 w( X& J5 q

D14

' X1 o2 {) x: `5 l# c; u

D13

; c1 i3 x4 p. Z1 E

D12

+ d7 B- b. A+ S7 G; x& l

1

" ^: k# X3 `1 r2 ^0 ?

X

; g+ z- }" E! Z0 B' E

X

/ J h( [- [- o; C" u

X

! e* o. F) Y/ F4 J2 y4 l6 F

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

1 u4 y: b& Q& c0 i# g! G# p1 B9 A

0

/ A$ p9 S& W% I3 D$ C: T2 B4 I4 z

X

1 D/ J% G& H! L7 ~; o

X

5 o2 l, h! Y" R

0

2 z- D; u8 w `+ t5 ~# O

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

8 I) ]6 F: v+ ^; C

0

' y2 A1 W' b* c1 R3 Z. q

X

" ~4 s( E) f1 U+ n

X

- M6 T4 b, G0 [4 R; u3 r

1

; N- h4 j+ z; a5 N$ _9 N

仅写双缓冲锁存器

3 o+ H2 p- U, y& L3 h

X

" r, w5 _: @) i) a, P: R" B

1

" U3 a9 c/ @+ \$ l

X

F0 {5 x2 E# H! [0 P; z0 {9 ?

X

0 v7 `% j5 a6 R5 B7 U

14μS建立时间

. G- z/ s6 T* J' x8 a. a

X

- m7 `+ C& w! v8 \9 h; v5 o

0

0 j; ?, b. E/ Y: P8 K( }5 b/ Z

X

8 j- h: Z* F. S2 p; s3 A+ J5 {

X

z- H8 F+ l. R9 Y6 ^% \

3μS建立时间

+ O" L: T5 Q' F! p+ q4 `7 L

X

% s2 e/ p# Y/ m: I7 T5 y

X

& b* d A$ n" ~' H' g0 P, I/ P5 i

0

+ w. O9 x% [; @7 e `- H8 ^4 ~5 }

X

( F# |! h; H0 [8 G+ B

上电(Power-up)操作

- I0 V2 Y" U& X2 N" e! n2 Q

X

( U6 {" O' }- R3 s* h% F. y

X

" Z1 H& w0 b2 s+ P8 N

1

2 @/ R* _9 y5 u$ K u7 x" p( ?

X

! M! n6 ]/ W; D% @* N

断电(Power-down)方式

5 R9 F6 \+ x" j3 k

3TLC5618与单片机的接口

0 P5 f. [" l- t: P2 U

( c3 w; i$ _" ]% C* E

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

: i2 J' r4 W0 W/ |$ q- b

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

. [$ |$ j9 a3 } e* j

5结束语

) `- p) B$ L# m( Y

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

" h; Y# C# J5 @+ v
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2025-4-18 22:55 , Processed in 0.120896 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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