找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 602|回复: 0

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

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

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

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

×
( |5 Z8 e. M. g8 F `7 u7 Y# s/ _' {9 Q! c5 t( p% S( a! d; }# ?$ Z* q1 }4 @
; l$ N( q" N! D/ r6 [, t

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

n+ }# F6 u. t: l. K

8 F) H6 G6 B' {, ^

1TLC5618的引脚排列

# b+ p& u' p* T( f1 V9 ^

% A; O* ~1 C1 j" U1 c$ v

2TLC5618的典型运用电路

/ C5 _5 I8 l# V ^: x/ o

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

0 u4 k* H: j8 G( A6 }

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

: `6 ^% p3 |2 F- I/ l ' `5 |" O1 X0 X# ?* r) t9 d$ O: `2 H& w0 M3 ?' Q9 n. |( X! y# L' v z" v4 j* B8 j; e6 u5 l4 {9 n" B8 V/ O6 d7 V- K) }9 O0 g# q$ |: i; r. l# o. T! h+ y" h' F7 v0 {4 X8 Y8 U6 R& b# J/ P2 c1 i- v' k2 k0 a& j8 w: z0 y- z" d9 Y: ^+ T2 p: N+ E! Y; ] i$ k4 F: l- l8 q; L( U- I- t* D' y$ [2 R6 ^, X& |/ I( {6 h4 r& g& [7 x4 c8 A9 O- p! N j/ x* `) _% N& h2 }5 N; w# o% u! j9 s% O, t( z, Y) e9 A( {0 ?$ [. f& K# V9 @7 W- L$ m1 Y* u, W/ Z6 \4 X; v+ ]. Z4 V5 u2 [5 T; |0 G/ U) f6 j+ L- @5 q: V) T* k# i6 y# N# r1 J' C- r, B" k' ^- _4 h, E$ F8 i+ E5 `- r; `7 r$ k R' G+ [5 e! X/ G/ [8 O8 L- w, h" X, f1 l; c! y9 ~! @, y, B1 e+ \4 b- |8 R' o- q
' n, Q, v& m s# ]& O

输入+

$ \+ e& S5 Y) B* z8 N* b. p

输出

8 v& X& [5 H- F- `" {) F

111111111111

3 a* g+ V9 c: Q% E; _& I6 c

2(VREFIN)4095/4096

: `4 Q6 }6 k8 U( y

V5 m# a9 A/ w! U2 ?3 S5 S/ D

X8 X& T/ ?: [& F8 F+ x5 i* k

100000000001

7 c8 Y/ i; |/ T5 j- X

2(VREFIN)2049/4096

: b/ N# g8 N* _# b( c1 T. A, C

100000000000

1 p4 |- C" ~; e0 B# g) L# s3 t0 D2 ^

2(VREFIN)2048/4096=VREFIN

' j$ {" Y; q$ w9 X

011111111111

" e, a+ w* _# P% l" L

2(VREFIN)4097/4096

7 F" z& w+ H! o& w- R

% c/ h/ `- h* c

( u/ \8 j; E& ]; u( R

000000000001

: Q0 p# D" B. C2 K0 ^( |' f: u

2(VREFIN)1/4096

5 K6 c& v M* c' H* I5 P1 n

000000000000

& s* m3 x/ C% @/ _6 z2 v) \

0V

) t C/ J, r1 _ D2 v. q2 \

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

m# M0 M0 r, Q! e% L

2可编程位D15-D12的功能

" ~1 v6 z6 C1 {5 Q6 l8 K9 }$ ?# N3 U' J8 v, l! t f" X5 ]/ X( k6 c/ G; Z, ?. R& p( B5 Y0 q3 c! E. Z2 N+ w/ Z/ |! q" e' m! Z9 D2 V# D2 P3 Y `* D4 H! a1 ]1 h& M) O+ T/ { M! }& G- C4 c4 C: @% n1 b, U. _" k: G. s8 _; w8 h5 J! h8 O, }+ ]8 r6 {: m' [3 y( D0 i7 i) r) T$ T6 t+ Z$ J* X( q. N! Q* z# ^ N8 x2 G v H9 M, n& ]4 e/ ~" U% M0 J* _2 ^3 i5 E5 o( K5 L& N, K" e5 i! B) s$ z. I& C1 j. k+ M; ^1 g, k" d2 v/ c1 B* G5 o. J9 @, R, ]8 _6 Y+ i8 A- m7 W& x- {' e8 q1 O- R( s2 n$ O: H; S; r+ a8 ~( n/ a; l9 X( X& V4 b2 I& T- X! P) P6 I4 b2 A' l8 |; S+ r, R- w) ]# u4 P- m; u9 L9 N/ g7 v/ Y( J4 e- h$ K1 `" q6 q1 U7 ~1 ]5 m* ~& E. H. N, _( ^/ I: P l8 a, {+ y: V" E5 ?- `# Y3 F# s& g% J, B& p, y! j3 k' l \; P) k$ ?! W& F1 i1 c: }& V; K& m( k& p4 B* ?( L {/ l) K' q) l Q* m3 J# @0 I- K! e0 P" m3 r2 `* }$ Q: |( y" N0 o9 S5 E6 u3 x" f9 i+ @' Y C& {4 n' ?: a' S/ X5 N9 `( v! G" I4 o$ k1 I, q* i( ^7 u0 x( U" D. q* @$ T9 g2 V9 y8 [5 ]# Q, e- `, S# M8 x+ F5 @4 P: v4 s) s$ a+ B+ O A6 m/ b; e" Z, K' o9 }8 W: b" d6 F. \6 P0 i; J6 Q) q) o3 R' e/ }$ i+ Y! k% W4 q2 A$ v: ^7 _4 O! n# r) J* i, L: `. U4 z4 x+ y `+ b0 f6 C8 n( A" s: r: T P1 K* H3 C$ X7 C ^' _3 n1 B( `# V, |, y6 v( Z, }: r7 k3 _8 o% s# V' h5 m4 ^8 i- G% J- A! x# o+ v, j$ ~: B( {3 e9 K p
- X+ G9 }+ H/ n; D. f4 h" Y

编程位

3 ]( ~" L( w" E

器件功能

$ [% m( D6 K* u2 t3 y

D15

( N( h8 O; Q% ^3 p

D14

" {7 A3 y" p1 P1 }5 a

D13

- \6 C+ q" b9 s& M( F, E" R3 p6 S

D12

( d. J2 S/ g, x( m6 _

1

* t) y2 m' p: R/ m

X

' S" _0 G9 a/ _8 o2 l

X

7 l3 S, s7 B# r/ q$ I2 c/ v- Y! A

X

/ x- `2 z5 y+ A n% t# R+ L. t

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

5 Y' o2 Y1 X" i8 K; u7 q( j; q

0

2 u0 k- \9 E0 v

X

( g/ D0 X; e! j6 L

X

- X0 @6 @+ j( v$ D

0

* g9 i' Y) U& t

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

W2 d/ |' A* ?9 {% j

0

5 N7 k7 x( H( r! |; E

X

+ F1 x K% s) ]% f& s+ C v1 d1 f8 d: M

X

2 \% v8 q/ q; ?0 e: q

1

& b$ C6 d3 {. g7 `/ n

仅写双缓冲锁存器

1 {6 Z+ M7 c% j; N# j: i% A* ]

X

$ T( E9 b5 Z! ?% @1 a; L6 g4 C( F

1

% I: b4 ^4 @9 N- H/ J1 G/ |

X

" Y' w6 |$ l8 o. `) F. t

X

! o- r% D9 R% P1 y6 T* x' A' U

14μS建立时间

- ^8 K2 k8 }# ]( M" W3 Q

X

4 N* H2 _- f- ^. [

0

, b% E, U) a$ O) ?6 i! x2 W

X

- S) h# B8 s; |& P8 P0 |

X

) U0 l& O: ~2 Z. a6 \. [

3μS建立时间

2 X: ^. k% V T5 H

X

) W$ y4 `! G* q4 J# R K

X

. B. _* D, i) A6 }6 s! L

0

{8 W+ f: T( f; O/ Y5 |

X

4 q- @' Q; O; r. b3 H- J3 p4 I

上电(Power-up)操作

. d$ k5 t8 }' m9 y! e$ S9 V

X

. L! d# L! Q C" G& f/ ^

X

% t# H2 t; Y. @" M8 y' J

1

7 |, u/ g( Y4 N/ u b: |# n

X

, C: v: K3 k' F c

断电(Power-down)方式

: ~. J1 W3 O+ z& B! y' g3 U

3TLC5618与单片机的接口

# C3 ?/ W. A7 K5 m# \" d

% f* _% _# Z7 _* _7 Z; ]" `

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

+ G, k, A3 Q+ J5 `1 ^- l5 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,以便使基准电阻器阵列和输出负载所消耗的功率最小。

5 b6 S) @/ Z4 g% p- T

5结束语

8 R- L/ w+ u& U& v8 j2 @' F* w

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

: s+ p) k- M. w) L5 M* b M
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2025-5-22 05:31 , Processed in 0.138138 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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