找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 594|回复: 0

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

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

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

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

×
9 f2 @' G+ k6 R6 P# O! P7 E4 ^4 ?; r5 I- Y4 |$ u8 ~+ z: g! h) N
% z0 I9 M! ~8 C' P# E0 N

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

2 ^! W! P) x" n* n

2 M6 W/ d! N( {" w

1TLC5618的引脚排列

; q8 S# b# R7 f& J# p; g

, w/ ? g, K7 T- `) F

2TLC5618的典型运用电路

* h: ]+ s( X- l9 d. F

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

7 K( d8 S$ P; z# Q7 Z$ l6 X

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

! t" M# \/ ~6 \" b( F 3 {& _# i) G: B! H( U4 J8 A' U' D% S. l! ]0 |1 |: o& L# D `7 ]# E( q1 m) @- G. S5 X0 ^% |! Q% K: V% @; L: [! L3 ^5 u8 T1 k: l0 x8 R) X0 |+ U2 A' K- ?4 I5 ~- j( u( ~7 N2 `3 p+ g" D+ p I3 |4 H1 X! q3 D1 D/ P% ?# r, v% L& x/ A M4 M6 D0 R3 l, @0 s) \# H0 q! B! \5 P7 R/ H) X- {# y8 _/ |0 W/ A, ?# m( k2 L) s m5 p% Z0 R2 A& f/ [2 U5 P* x# z% L* {5 X$ {' ^" u& g: @9 s8 D. b" I9 e C4 N5 `9 A- U$ b, I# P+ X6 |. B+ o# p# `# b5 C4 b6 r$ j9 i6 H" T/ s9 _3 W& U- a& x0 P# z3 L/ N9 N" L3 j: _; Y' A3 t- z% R2 Z3 z6 E" n7 z7 T$ X. W' X6 v& U& b4 U2 F' o4 k- I" w) K; H- Z) v5 k1 D8 d/ q' W2 Y! M0 ]$ T' h, }! P) y% v" t7 ]+ A2 e: a% Y% a X9 w) n. d; I- Z( ?: ?; G. L/ r8 i7 c* P/ I. J* S9 r/ I: L
! S% j" N- }+ g; w( Y* Z

输入+

; j6 B! Q7 n; c1 \7 l0 U& s

输出

$ _3 ^- r: Z: @7 K5 U* m# Z

111111111111

: y$ H4 m# P) x% e/ z& g0 V0 |/ c

2(VREFIN)4095/4096

! [8 }: p6 O2 W; y3 O

9 _; E/ ?5 D, _6 E

% a0 R% Y5 b5 I

100000000001

0 u' ^* |* b7 K# y U

2(VREFIN)2049/4096

# b7 F5 z9 i8 `8 K

100000000000

# g% d! Y \+ ~9 g. ~3 \; D3 J2 d

2(VREFIN)2048/4096=VREFIN

, q- H0 v$ {) \* j

011111111111

3 S8 H* M) N5 Y. b

2(VREFIN)4097/4096

6 l$ a, m" r" d1 w

5 E; J* F* ~3 L

+ Y* T0 Q4 X2 n; e

000000000001

9 `# c2 I8 }: O, i9 [4 v

2(VREFIN)1/4096

" ]0 @: A6 W6 L- \/ B

000000000000

) _ u, P, B2 P! n% T

0V

4 w/ O5 |6 f7 \

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

3 a8 O6 A/ S5 o9 @# R

2可编程位D15-D12的功能

0 m' b$ ]3 ^2 D P! G7 M% E- U # }7 R' |. V9 `, h, t1 c1 V( N6 ^# N% Y- L6 l/ v$ W' Y* F: h* o# S0 B6 S3 r7 c0 d2 Q- K( x; Z5 P* ^0 z% Q' V V: l% K( F" X z7 K/ b- N! F6 h- E4 j4 Y L5 B! P" p% w7 o; `2 m: _, K4 ~ O1 y2 L6 v+ c) X, D: R7 I* M# A% g$ [5 ]3 V D3 u( ~3 l) D* [; l9 [9 C- o6 E0 \3 n7 q, K* _ X. A% C/ o$ {5 l8 F; |, W- ~% Y: s4 I6 j7 E1 }, L" \3 w/ Z* S& q! `$ ?. [% j. g* Z7 j. ]. I* r% l* n+ {) u. d) O: u( o* ?9 Q3 k. s, x# M6 t) \+ f; Q8 d: }, J+ m3 \* d( m { p+ T3 F5 |9 x- e3 K+ `9 e* O: H7 X( M5 Q# X2 K. D" V3 {0 h) I* {+ v3 @/ F- H* o" N3 @% Y4 w l' J+ e! ^- e9 }; \7 O& }, v0 J9 b* f, Y/ ?9 z* k; A- N8 M# L3 J! t5 I1 S- Y/ ^ O" C5 E, Z) J$ H; P4 R5 M1 e; T; N4 d) A' d! l: Q2 a" A; a$ o8 B! C$ K/ p6 I: f9 d3 p- m' G' W# W. b0 ~" j8 i( l0 a, {8 \8 y! }" _# N3 m3 O- f1 I" J. ?' o( C2 H$ d b5 G+ A2 F4 ?3 V% M9 j& e4 ]8 @+ A0 U* e5 T h r: L! ?, ]) P: }3 W3 ^5 L }- j7 K6 A- s8 C1 O \5 K: }0 W5 I! J. {; |" Z% i+ R7 N2 y- R- c/ [0 ~- v. a/ b6 ?9 } n3 H, l& P$ l( H1 F! U- l* j# P" L! w9 J! s" S* T: F8 x, G2 E+ M6 y' I/ w7 q! f* a- ] r+ ~; K' D( X/ Z5 j4 S7 g% A8 _! o9 V2 v" U. Z6 {. P' Y- c6 E5 b( D2 H. h) p. g! j
8 H6 L) Y5 }, Q, @1 A7 R* g

编程位

+ _; r& v! H0 F

器件功能

$ b, |5 ^% ~7 P1 }* ^* _* x

D15

w4 f+ t% N. P- Z( P2 X; s0 W

D14

* ~3 b e }& r

D13

6 J0 `' H# E8 c1 N

D12

& d3 V- P; _* P0 R* b# S+ l/ U+ P

1

3 c$ r# p W1 L1 ^$ h

X

# P) h/ {/ E0 Q/ Z% b+ X

X

9 f- O/ h4 r( D) f8 D

X

H; Y4 m1 p; c' M l8 r

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

+ v. R4 ~+ g8 ?

0

6 B& I# I5 K5 T" ?6 M

X

: e3 L7 Q! J3 A

X

8 k& T4 `6 U" Y

0

9 y, K: I1 Z' Q d3 |! Z6 R$ W

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

2 `( A( ~# R: h) `: `2 b( T7 ~

0

4 b* c, Q; j' W: @6 n3 ]* N" s

X

1 {, }3 v% p* Q, ]9 v

X

$ A Q- J# j9 X4 r0 }7 q2 Y% v) k" c

1

' Q* S+ j5 X5 z2 e

仅写双缓冲锁存器

2 [& C* e' G/ K' j

X

% z" M9 |' A% Q6 a) |: z& Y) [

1

) F9 ^2 [3 q: U) Y; f: A

X

. R9 N4 M4 _* F# @( z3 @

X

1 I- _1 y8 K0 g

14μS建立时间

% V6 W e; t% O' `& ]# n+ @, c+ ~

X

7 i" P6 p* ~1 e' U

0

2 Y* J& z' a- x1 a9 _

X

8 ]" B: M2 C _

X

2 I: P' ^$ y2 H- U+ B

3μS建立时间

2 X! B# c( u( L7 y( L

X

9 ]$ h9 Z5 l% @; D

X

$ J! D* g. q$ O) ^8 e, u h4 g

0

! R3 y: G" U. H1 L8 v$ O6 A

X

7 g, I' c1 X& M+ W+ s6 ^* u% b) v

上电(Power-up)操作

% [+ q. l! ^1 Q- k0 o: F# V9 U

X

) Z7 L: a* d$ X8 `& v

X

( z t, J$ t+ l! c& v

1

) h- m- j; W3 n( |; t+ Z* `

X

8 S& ~5 X( m8 {0 _2 p

断电(Power-down)方式

( [+ Z" L2 [8 y! m- C5 k; V

3TLC5618与单片机的接口

1 \& C" [! m5 [5 h5 I! `' D

% }3 F6 `+ Q+ b/ A4 _+ y

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

8 L- a( V( j& ]2 i& {$ L! f

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

: u8 r3 x% ?3 N& M* r* g% P

5结束语

1 i* |# `' j7 q' n* E

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

; r" I4 L% u, X
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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