找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 564|回复: 0

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

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

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

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

×
' z+ K( E) y. S* h; y' c5 Z* D* \5 A! b& k" K. l9 \5 g: N5 T6 z" h2 m+ r7 ^- ]* q) g
, _$ g$ a7 k6 T5 g2 p# U9 \

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

s$ t% g% f; p( U% p- x6 ?

0 Z' p% E$ C" B9 D4 d0 I

1TLC5618的引脚排列

7 c& X3 x' o, W$ F9 Q& ?$ X

; o. F4 Q: _2 N& [9 V7 K6 L

2TLC5618的典型运用电路

2 J" L: ~2 Q! B9 @/ ?

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

# I1 }5 a9 }& H: ^' U! J

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

$ R/ E5 V" [$ z& a2 h ' I: q/ [, A. r0 F- j2 R! x( o0 s2 y7 M6 ?. E# X$ w* L2 F+ M" i" K9 F9 y0 |: g: O2 [( I* e: [0 J/ {( M1 j+ e# I. w s5 L3 F- J) Y: ~9 B+ F) I' D" g. B5 s& U( N7 Z# G8 ?' y& M: Q9 R: R$ M" j4 b2 k4 z0 x9 _- ?, H% [; a) c' W7 R. J- j! F9 o- Y- W9 A. C' h9 [5 l+ A5 S& R9 r' k" \! s: L* U- b- H$ [& x. y& \& ]+ z& t/ Z2 c% ^( V& i$ j% [2 X& q6 o+ C0 L' r6 |# G& U8 L- n" X5 ~) Q% l& X6 `0 b" x" @% l0 o( B8 a# Q7 g; D \0 K% ?8 \4 G( T0 [. h2 O- a5 [. l/ `: d0 y1 ~& n' K6 I* v8 F6 v, Y# v5 d1 a9 c! d2 g% F5 }: E$ O& B o& `* P! g5 E* a3 l) Z; z1 E. |; T3 C% M C) R$ [( s8 J3 \0 g9 {2 V1 G, G; B7 `5 ]- g1 _! C6 a8 N, c7 g2 Z5 d! W* n( A) p( |/ e+ v2 N4 p
1 `" v$ c5 K3 w/ E5 u

输入+

, ^; [2 `8 w$ @

输出

" I5 {& U+ I$ ]) o% Y8 m9 ~7 n- [

111111111111

4 ~. p; q) h3 u

2(VREFIN)4095/4096

. C& i9 k% D# M3 B% Y

- n6 p2 N: E1 k' d* Q

8 k6 B- I- c$ v6 F6 E* w/ w

100000000001

& f6 u) v( b( p5 i) Y- d1 [; a

2(VREFIN)2049/4096

3 J t5 ~# P+ k; a7 I9 |- o. m

100000000000

" ?, Q6 s [% l* m- O; V. y7 H

2(VREFIN)2048/4096=VREFIN

! O# ]6 M6 D+ o* H+ Y" ~6 ]

011111111111

& M$ t% V, d) P2 E8 g

2(VREFIN)4097/4096

( V% ~* _4 W, Z1 C5 O7 V+ m6 J- w

9 U, s9 N0 N. Y: j. e3 k( @' B/ k

$ {4 h" ] I) C3 D8 H Y) C

000000000001

! t% P5 l r6 W

2(VREFIN)1/4096

, O, i/ o1 s1 o5 K& q( o! \- Z4 X

000000000000

! j0 P/ C7 g; k) R% b- u

0V

/ Q5 c3 ?; B; N6 M3 r

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

% Y) \) i# i$ V

2可编程位D15-D12的功能

* K V2 v5 M' `# X0 V & H/ F* t0 H% m' _1 P0 S5 I. O$ w% L( P7 A- e1 J W9 f$ k8 j6 ^2 N% `: Y e: Z: w: ], T) j+ N% A8 h$ U$ D# L; L9 o5 R' d. k' U; C0 I3 b- X5 w: N4 n( Q8 a* L. _) P' `% R! W1 A; K6 |, q8 E6 s' T* E+ d/ I& K5 S: Y2 F& H$ j8 k) v- z7 `! c+ x. F' [0 s3 ~! A4 d3 b4 c" { R3 I! v9 |: k/ ^8 @$ Y4 O9 F9 a3 u S, K6 r' ^ I1 k* \- s; A; T; G s& K0 A J- d6 [) P# Z( X- v. k! A* Q- U) u/ t' a, r% l t ? b: L" q6 U G0 ]! I8 X. W/ B: ]& K, W [; g4 E1 d; ?9 U5 f' Z% ?. Y! y5 W/ J. P- u* B. o# h9 a' ^& l! U2 _7 ~8 I g7 g7 P. N- u. s. X( `* v8 F ]( E5 x& z" U' I5 D( a0 M! b. c8 d+ H$ \1 K( v1 J# g2 Y, i& |( T) U& m1 g- k7 a3 ?# Q% Z* I e' g" @4 Q! d0 t! E) Y' }" ]/ \* ^$ S/ F$ n- c' [6 D, M4 w( a, r6 \$ J6 {* a+ w7 H( M! d; _5 S. b/ I) i) P& A. Y' D: ^/ w: \2 t+ `% F- F3 i7 V- `, o9 n+ `, y- \" t0 S( E: s" {% [0 S/ F. T$ b$ x0 o# e) y$ }+ @' c/ s$ ?9 P6 v% b5 A: c5 @& w9 X. g" W5 K4 M% C# p% Y3 L. R; I8 h! h+ ?6 a! k6 ]$ }8 N- O) w# u! _9 k/ J& L. ~7 [' o& |# z1 ?0 G( ]/ Z# w% w( v; r( E7 e! y( ?$ ^" `8 E$ V; @ h% s8 t5 m4 f2 A _! @' }+ ?( m6 e0 }! S5 K5 l. e0 s6 Y" H( g3 T# B- D" a0 j. [# q1 F% Q6 Z8 ?, E: n7 B; K2 T) O$ G# Z! T# Q* x. r3 y
9 n( v* c7 G: d9 g0 S

编程位

2 b( H8 q3 t! m" {5 L7 P4 S

器件功能

* @/ ]/ X) z, @' Q* E2 X/ E" d- Z

D15

3 |9 P* ?$ k/ w( w

D14

( G. e( F' r$ m# W( t# r8 ~

D13

_; ]) M! E4 C* k+ K; t. Z

D12

3 Q( ~# y m% \" {3 C

1

- T) M) d, L: k; d; J

X

; N6 e. S( c7 @% r( E

X

8 O* v; T+ m8 |1 a# D

X

5 C7 z1 k- O3 B3 W: _

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

: I* g& y" x3 j. m

0

: g5 S8 \1 s, i4 |

X

, n# N0 ?+ `" J5 J: U

X

( ?) u( q. D& u1 i

0

$ l1 h! y S% h8 {

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

: U9 N7 l# u# K( A, ^

0

2 I% Z" b6 q7 K/ w

X

! f5 \: \% z3 h: y

X

7 k5 m, f( M' D: W; S$ |; T+ G, h( e

1

U7 |& s5 @8 j/ k! E

仅写双缓冲锁存器

, m: d% W8 _& C! n) T$ `4 M$ w

X

- [8 A7 ^; Y+ x- \$ \5 H1 y

1

1 a# \7 { K! @' P+ Z" o

X

. d1 x" L! v' F% ~8 j5 q5 |, X

X

0 Z$ N' Y- n6 J1 l' q

14μS建立时间

/ H& S) s$ y7 a0 ?

X

% L7 V! C# n8 L3 G

0

& \7 O. G0 q! f

X

2 K" B! Q0 W: |0 N) W2 `

X

3 t; o2 I" O3 X: e$ u0 h% U* U

3μS建立时间

. S3 v/ Z( D9 w, M/ t% N% o# z

X

0 g6 E( u4 x. V: B

X

8 o9 `' s; u" {9 |5 p

0

8 E; l3 G6 h( [1 u5 ]

X

# I6 p* ^9 H$ T% p6 D5 ]% [! `$ z) [

上电(Power-up)操作

, l5 r9 i& \/ E& Z" @, T- U

X

9 \% v/ t3 K! C

X

$ ~) Q6 `* K4 P% ^- y. z- D: P7 A

1

% Z E. F$ |, d# u7 g, j) P

X

: v/ [6 z% \6 w" V$ r- z

断电(Power-down)方式

" Q" o% j, K1 h0 a }- ]+ l

3TLC5618与单片机的接口

4 x- t: K6 `( S, I) v0 c; B

! V& X0 ]0 q `( x9 P0 b* \7 ^

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

7 C' P$ Q% o" ?: `

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

' n- Q4 }2 w9 P- c }4 D3 I: }' z2 P

5结束语

$ K2 _" I, M* c

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

$ {5 h# o6 P0 l$ O
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-12-22 09:55 , Processed in 0.314871 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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