找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 566|回复: 0

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

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

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

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

×
* |) i, G7 l+ L7 m; @, b' l. G+ \3 |$ r1 _5 F7 k2 Y' E) v1 t2 x" ~4 Q
. v; Q1 Y# I" X/ P r7 \# F# j

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

* }3 N! ^8 E% [0 d

# o# R9 g. Z9 H' ~; Z+ Y0 P$ D: k) g; L

1TLC5618的引脚排列

4 C. x1 V% k( f9 ?9 d7 O

( C$ h5 j0 Z' D( U

2TLC5618的典型运用电路

. L _0 k4 `, V Y, b0 q

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

- V; E# u# \: m. z9 S6 f& w7 Z; x( X

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

, e. M! { t! ]7 l. P+ W# m9 v) m6 A* f: r3 \$ g" Y. f s% [) D- i8 {- k5 l9 M6 T& o4 p: F8 G% f J: Q0 o2 u) @: G! f# R6 W2 d% p2 [6 v2 _" K( e3 u6 R Q/ b+ R' o) T( r6 t" F( t# P8 d0 }, \5 S, \) f4 D, B0 j" C: I8 ~1 y3 ?+ L# \, b6 J. K/ [! u4 a! x& B1 p. j" f( ^; l1 w# K. k7 V. S" j s6 G& _& c9 \, k2 \; j' `% ]' S% M" I# n- j& a f9 m. Y, |4 i2 s7 {) H! K. H6 l w1 @2 J* Q+ K* g6 ]7 K8 R5 o# F7 `" ^9 r% W, P" F2 q- F1 ?6 A ~0 r$ k: [( W2 P' T# c9 a6 B5 |& H% m) G( n' a6 P0 h0 y4 N ]0 u# w% F3 a& x8 _. q7 ~. q* E- G1 C7 T- H+ U' q/ d2 ]/ R& ?& U8 G- o A- f( \/ D% Y8 S" N5 l9 L' `5 P& r/ ~. S0 C5 }; c" q& t1 B+ _) W5 G ~1 b% _/ M/ N% p K# r& j x! C9 q V4 x% @! x" {% [8 T& P" c* \
: n3 D$ M' q( b* J+ I. @

输入+

# P) j# m- N3 c! {

输出

8 C5 t$ l; O$ b. B; x, R6 f

111111111111

1 Z7 S' u* N4 M2 g) {! |( Q2 c ~

2(VREFIN)4095/4096

- y9 {& a- i) [+ k' Z9 i

6 o, I; T1 H6 }/ F+ @

( G7 ?6 A3 K1 O+ ]" B( A

100000000001

1 B! |5 Z/ Q) t. b5 K5 r3 p

2(VREFIN)2049/4096

8 @! H0 [1 p* f! a1 t

100000000000

. i. r1 Z& B: h+ M3 X! G

2(VREFIN)2048/4096=VREFIN

+ W5 U. Q/ p; o; u1 O+ K4 n3 }* T

011111111111

$ t0 a+ @1 R, n; m2 @+ |2 C

2(VREFIN)4097/4096

1 ~$ k* d( R; |* N5 _" D N8 w

7 J; L7 f9 Q+ W

% E& Y% Y% _' i& U+ M4 A

000000000001

g% z) @" _+ @1 ~

2(VREFIN)1/4096

6 Z6 B7 q# L, t' \( Q M. i' n

000000000000

& @3 D' [7 ~9 G

0V

" p- Y9 u1 h0 F% S9 l+ j

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

9 ~3 M% b' g% ]7 g, d

2可编程位D15-D12的功能

8 [! r# q5 M, \& C" A8 Q* O* ?; F% Y9 O3 V0 s% Z/ G/ Z) e1 {2 U) Q; e) k9 j5 g+ \9 n8 }5 n$ l4 Y* d5 L- X1 @: m6 d! ^) P* ^5 }" J2 L) \9 r. `6 ~% k/ b' u! Z- s; {3 c! q4 u+ X3 F N( @* ~8 s" o" O! @5 ]' ~$ @# l ]& r: W* R, M7 M2 }3 c) C8 B3 `- v: V4 h: l1 |' c' N/ Y) C" U+ W" P* N! O( D! l/ h- F+ M! w. S9 X7 j! ^! i6 j9 l( C' \/ w; ^# M* P% ^+ }) t4 o9 G$ ?4 V- Z$ y- s, g Q+ J' v3 l3 P* W" {4 Y) ?. Y' v+ d2 _4 O9 n6 ^% { ?; l7 p+ o0 E7 z0 [ j9 n- s* O# i6 E6 C7 D$ A4 Q& E* H- T! n% T& E' X2 ~ |" s' J' R9 B0 b. x- B+ ?. P8 x! v3 Q$ x1 d5 Q6 I+ s3 F9 f1 Q- y4 c9 @& ^4 U0 ^6 Q- ]; k" K n2 x+ i6 a% e- M1 z) s x" P z9 Z' A& z: L% @& c, a* E& f- {. R) |& D/ t l% O8 }7 H& e8 G" \8 g6 ~: I5 [* c O# K/ E+ u2 F% I: ^# z+ D7 E: i8 a4 _! \# u% F! O6 a* p e$ z& l( D1 F" u0 J3 {$ A- R+ w, P, O. ^# n a3 t% ?# i% k _' r ~' W3 z- b* k g4 S" N( B9 ^1 t& T% |" X- B8 d$ `; W6 ]+ \" `- z3 _7 C, G3 S+ ~' c% [) B: p k# W1 \! X0 t$ `* e. I% m6 u* ^( u& j6 V" g* f) E" W$ x) [1 G; |( j+ ], n! |, i: y9 q7 ?7 }$ W- {0 \4 i5 f6 p4 v/ D; F3 o8 [# }! {, N4 U& R7 p% r2 d E* e. K% f/ X1 H' _( O5 o T7 g* s# a m) a* Q" _. l0 a. f$ g) I. m l% n' q. ~5 D L& X4 S8 U$ x8 N# `. H$ c2 j, P* _# r
5 X3 [8 T7 u! x0 M/ ^/ F( i+ z

编程位

# }9 ]3 x8 R0 v

器件功能

' j0 d0 O) b- v% V

D15

4 H9 C3 z* D" Z: y6 i: L( ^

D14

9 U1 y0 \# T( w1 S w

D13

: V5 s6 N" b) o2 c# M

D12

; l' L; ?' w' G9 J/ U" D W

1

% U8 k# v+ P; v0 |7 J' l9 b8 V0 P

X

8 @8 S" t. z$ d+ F! U* w

X

8 F% n9 Z! f) F; D& @8 @' F- d

X

# V- K) E+ e+ c/ e

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

4 h, N& `! H' c& X

0

( d. a0 K& I" H+ U+ R. }

X

5 ^. N g- O8 |

X

& i6 y u* G8 z' V7 k; w5 J. X

0

) Q0 h: G8 C5 y1 M0 P8 V7 d

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

) Z6 j& z( I/ |4 h6 b

0

, e/ a; \4 K: p: S) q4 a* f6 H

X

4 ]9 t2 x: z5 p4 h5 T' c$ t7 \

X

' S& @: t; ^5 Q$ |7 G

1

! ^! u5 @0 w$ d1 _3 K& x$ }1 Z: d

仅写双缓冲锁存器

6 `( D+ t! T" F a" R2 j

X

1 n; n# h' ^! k* } y' J

1

8 |: i% Q% Z; g! e* F) b3 V

X

/ {8 ]2 r' | D0 }' n/ W: w; u

X

& g- Y1 X* z$ ]( G! B

14μS建立时间

, o0 G& ^. Y7 L) l S1 n3 e

X

) Y4 R$ y" q# ?

0

; _, U; Y H8 a! z5 y

X

, S( ~( N+ P) G: b

X

: h3 q# r; z! h6 ]( w7 Y

3μS建立时间

2 f1 d$ v2 K# A. h) R

X

" V9 W* I1 k! |+ m/ Z* H

X

- x; S# u( q" }4 e3 S/ x9 m% D, i

0

0 C: y4 j. ~% R! v

X

- m$ u' c* P/ q

上电(Power-up)操作

2 l4 c, ~, X" R( g$ T

X

6 b7 o/ k1 a% j

X

- V+ X; u1 Q6 o$ |+ _

1

; h' v: _$ d$ J0 A2 I- w- i

X

) o B2 Q" u, `: U+ ^3 e

断电(Power-down)方式

$ l% p' O( p& f, a

3TLC5618与单片机的接口

$ \: ]% {- U: f5 D. `

. f4 E: Q1 k& d" I" }

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

: y: [' X, c- |0 S9 u! V

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

: q$ ~5 d5 ~! B, A

5结束语

: u! f2 P$ n; \$ z, k8 t' m

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

, h0 v( x+ ]' M8 v
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-12-22 16:50 , Processed in 0.140188 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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