找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 565|回复: 0

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

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

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

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

×
, R! A/ W7 B6 }5 y# d6 K! |) M6 A" }& f9 `& ^% @" S( {! E
$ d, R' `& `7 h8 q

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

8 Z0 ~; Z/ i4 @% l* m

/ x! Y! U ]: S% K3 V

1TLC5618的引脚排列

2 e) r* |6 a6 h

" l! B$ p8 [/ \4 F M# r

2TLC5618的典型运用电路

4 w0 g d4 Z/ E2 J) g k7 O

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

- b% X) v- q- E$ [3 |! d- _) A: @* X

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

. P9 T; E( H+ ~6 Y+ a. U ? 7 s. e. b+ L* c& v9 [' e0 b3 ]8 q4 c4 ^" g t6 R. T$ R, E" X I5 ?- q2 J5 c7 ~4 v3 l5 C( k4 `+ s- S9 `. ~1 ?% G- z3 J8 F! {$ l$ t0 K' M* R# d k, W7 P; H; T( e, U: c8 J3 \- a6 {3 f1 o& O2 T0 y" @# H0 x9 k) [( n0 J- p2 _, P. m" Q! s t: a. U; n. J- o$ p8 \- D( h c/ ^/ Q; `1 V0 [' E" T$ ^5 y" _9 ^" I/ s4 Q _ C I" A* L# z" m4 ^0 x7 p5 C4 a1 p9 q# A4 c! j- d6 W+ s' [7 x7 \! g+ x& H" g2 C+ J e0 I% ?( y" d0 c4 Z, l) v/ |; L4 q( p" O" w$ u! k/ Y0 H1 u: |/ D& A/ y% i3 L) j s- m: e/ A+ |2 H2 L5 F0 A( o k- e+ N4 x9 a- M' u% {2 l8 v# B' O- j: x9 Y( {( o H: D* Z7 h' f5 ~) A7 G, o- _& L" I, w, l3 L6 Q# s% e! m/ {; l" u+ X4 S; z! s4 @8 g1 E3 m
6 `$ E2 x" V+ h

输入+

: L- g: j0 }. A. _' _! I F

输出

5 A4 e$ D- {2 G V

111111111111

* ?: C' [5 }" J" X! ~% p8 Z

2(VREFIN)4095/4096

+ r2 O& J0 S5 e7 i

8 \8 [, L5 j* a7 N

2 M. }- u/ G* V

100000000001

& a/ T. W% O0 j8 E* {

2(VREFIN)2049/4096

% _/ m; Z; \9 h. F/ V

100000000000

$ N. m" G9 h$ H5 X. S( T( z

2(VREFIN)2048/4096=VREFIN

5 D1 \% p- ?8 ?8 a

011111111111

0 k4 W* @0 z) M7 C- V+ j6 ]+ F8 x

2(VREFIN)4097/4096

: ]& K( \5 S- j K, r

2 S+ T3 |3 s6 d5 k& S

2 ?, _5 u* h' c3 D1 o' |7 z# Z; x

000000000001

& j4 p" g" ~8 u9 C8 @1 P; z

2(VREFIN)1/4096

; T8 E$ [% J) I4 M, i; d

000000000000

) v, J# [# U& r: h' b# D

0V

- |: B; P; h6 G/ D

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

# v; \, @# r) k' Q

2可编程位D15-D12的功能

& r4 }$ N( y; a9 u- ~. }' W # _: Q! _; D6 N2 l+ y/ `7 w( Q4 \: d$ H2 N# ^$ B& Y5 a' M; x, k* n( N) T! j' R) i; l3 ~( r6 I) D0 W3 j5 V: @" T! P6 b S6 Y+ P, G; N v* O/ D+ P4 w7 l; |, U' [9 k# w2 C6 T1 S1 f7 a7 z' x2 l6 @1 G' Z) Z( T% L1 o6 j' \; M$ `) Q! n6 u: \: N/ H" u0 Y) r, j; ?& {8 m2 M' l6 |1 ]; ]+ ~: g4 E3 l& y, d; x0 O9 A+ q' T2 i: M7 ~' }7 |" [* s9 x2 ^4 U; ?8 V& i) k0 z+ p) I1 y3 b$ c& v$ K7 N$ K! _2 B: ?' _- o8 p1 G& g: S& g6 Y) P$ W9 i1 F" f" f7 u) W4 S9 u1 v8 f0 H# ~$ {; I. _; X1 A: I. a' W! @: F X: d+ s; D) |1 w9 B3 Z9 v% W/ b. A: _" U$ e! O4 C. s1 T+ q" F& z8 ]1 a- `) p( _3 A" `5 a( s! N6 {/ x) Y# N" P5 L2 o( I' R: }' H6 I3 j0 w F7 h$ Y4 M4 N0 }- d' Q, B; n2 x- S6 R/ ~" Y' a+ L7 s7 z! f. M! i* H$ J- A- H4 n7 X& n/ X& h7 u( X) h* I' R0 M7 x7 W6 H% u' g3 G5 s& u) q/ }' {- D8 A+ b9 B5 _. d4 S% y. U0 n, d2 c- m6 c: C( o$ s, X/ R9 p `8 [5 l2 I4 a' u _' V( a0 Q( E1 d! [5 ` o: `1 r2 [ ]3 b5 @, m! O% I2 b" m8 l, t- p4 K: @% k4 n+ G! G4 l2 }+ l! J2 ~; [0 G) A) l R- I: O. P1 ^. u4 Q+ Q4 S: F) U2 ]. K _$ f! ?: x" p( l5 {# e+ \- c* h7 \1 ~0 U5 _& [2 G: \# I- t% o$ P) s0 L8 `% }( ?+ h$ D, p- t3 ?5 O, f: n. K/ [- ]1 T% l; `8 O6 z4 t& A7 S7 T: h. R+ e6 [* Z# ` f0 E7 |3 n+ a' ?6 n- ?% d9 g( W: V0 s
: p! h# }5 A0 [- y( n

编程位

2 D9 P7 Y! j8 @& v

器件功能

" n! q r4 A7 T% m; h

D15

$ g" B2 y* x) e* h" [- s

D14

; b* D& I' s; V9 W* v

D13

& F! }6 w! c$ m8 Q8 j) S

D12

4 i0 u) g5 r# m

1

5 ]: E4 N9 \8 }& g2 R

X

& y" ?. O3 j; P$ c

X

+ |$ o C+ d( S( G

X

2 I$ b- ~1 k3 P4 H6 A3 V6 `

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

' z- ^% I6 e0 J8 m1 K/ a

0

% K# J) w& V M2 M

X

- b7 }3 y0 c0 ?

X

! e+ ^' A& `- |$ `. J/ X: o

0

+ O( J9 }9 {# b4 v6 C5 d

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

: q" d9 R- H3 T: M

0

0 O% J2 O, f& C. t$ A5 b9 O: A

X

8 h6 T' ?, `2 Z* x2 @

X

, B# S: [4 \% y

1

; c; f4 r; R# r3 \4 z/ N+ o

仅写双缓冲锁存器

; Z2 w' ?5 Q" O6 u7 o

X

5 v& \: T0 @ s% {8 j5 }

1

, g& ^4 G0 j. `2 y/ b& M

X

6 Z Q9 ~7 t6 ]8 ?' [5 g" K. \

X

g( Y. }) ^( |9 i

14μS建立时间

( g; K) C) f( F% z6 z) w1 j

X

7 I) ~, f! y0 P3 q# w% h5 T* L8 s

0

- c4 A0 p- F- b

X

8 |1 n# V2 g# y. ~

X

4 B! Q) C6 R$ l* Q

3μS建立时间

3 ?. W" {) M. t( s

X

; t1 {- W1 \5 S& V; V

X

: a( O% j! d6 E1 ~$ _

0

0 Z# D0 X) k+ F2 N5 a* ^0 n3 ^

X

/ ^4 g: u9 t. D( f3 ?- |

上电(Power-up)操作

' n2 H+ ^% |8 l3 k! K& _% g

X

3 N, E" A6 G. _0 v

X

# m& S& ?/ k# }, G! x/ ^: M @

1

" S6 ]( q# R, g% N0 \/ O

X

! z) R: R% l1 U8 S# E

断电(Power-down)方式

2 h; c: y* b9 g2 U! i

3TLC5618与单片机的接口

- \/ T, y' Y0 c+ Q2 `: S

h) X( t* y2 I' o1 ?0 K( z" x" l

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

/ X( J$ S! d1 I% ~

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

5 P& a# ?8 \) O% M1 c

5结束语

, v& `6 X" i6 y) j

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

0 b+ \0 ?, J3 H6 c* J
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-12-22 10:15 , Processed in 0.233225 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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