磨削技术网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 553|回复: 0

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

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

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

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

x
+ n. O: c1 t; Y6 }! }: ^$ i7 g$ s0 |. x& I2 L; f5 N! P* p' p6 }: s
9 L7 h* M' S5 e0 [

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

: X3 L9 H I& y X; `- a

% U/ c$ ^7 M' m8 T

1TLC5618的引脚排列

; c5 C2 o& ^( l" f

% |' i m; } f" p+ D* N7 h

2TLC5618的典型运用电路

# M1 w- Y8 n5 ]

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

# D1 ~! r( J% P _( [3 }2 c

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

; J8 X. Q: [0 v- s% V4 M+ P# w9 Q1 q( O% V# j w' C- }/ c& o8 z3 {2 M& L9 ^! L* C+ q) |4 R- A9 X2 o; {' c0 o; [% k) ^* P& T% V ]8 Y8 W- i/ t% j: C; d" A- s9 _" G$ l3 |5 b/ `% N. ?/ F/ w; c+ ?4 d! a- n& q4 X9 z" C: Q, |* E: e3 v( Q+ U2 v1 ]8 G# e- F" P9 F% Z( J8 x8 L$ ]' h! \! {2 `0 q2 w$ K' U/ f; {% i. H7 G" w e: ^6 k) \) O: z* a& d3 t$ n4 P+ K w- h7 G: _$ W' G/ p2 Z7 Y/ J# |3 e5 S! E- {% [! ~* D0 I3 b4 C' w9 P1 g' Z# y+ ] F5 g$ V, J! M/ U g; d4 ~* p' \% L! n9 K# u0 a' `! M5 f/ E' [; F% f, @9 e( X$ x9 {, g1 L2 }/ s% z: \8 b" Z' P7 S% D8 v$ }* A: y/ o7 J4 Z" L( D: n& a! q6 I4 { J& Q5 v! v) S4 r G! G+ x, o6 A1 K' }0 _8 x- p8 m5 Z" F; Z. U6 |; R: n2 [( t3 a% @# A" U# j$ O& [: k4 D2 |9 @: B, x2 J
/ j" U; T8 I0 @# V

输入+

h4 n" l- P$ `

输出

5 e; [7 y8 O' w p& [

111111111111

$ X1 q! T# m, N# L( n% Q

2(VREFIN)4095/4096

, _1 N7 [$ N% J# T. d4 X

: u. Z) H, {. n8 ^. _) B4 K

/ g4 L% E/ `. u2 l+ }* t

100000000001

, @& ?5 j5 Q, R' C0 `: e9 ~

2(VREFIN)2049/4096

6 W8 G1 O5 M4 [! t

100000000000

1 m! i3 \9 _+ |: b' U

2(VREFIN)2048/4096=VREFIN

' Y- P% G. B5 R$ }

011111111111

+ j a M: B4 I* q- c

2(VREFIN)4097/4096

/ o6 J* c. B# M5 D0 m$ v" {% r

& e8 x f9 ^. K8 c) ~' N/ g6 V; O

. F# A |2 `' y: x$ T

000000000001

0 q7 e5 S5 |. z- x3 _ |

2(VREFIN)1/4096

7 G, D/ M, L5 V, D# j

000000000000

9 c) ?3 n! N% x! A2 ~

0V

, \' x# U8 b% M

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

# D" G( D; Y" ^; @+ l: q

2可编程位D15-D12的功能

& ~% \" K0 e( K% W1 ?" p+ ?& v+ G5 j9 y0 D- z4 t2 H) z3 |8 P7 ]$ I0 R, n. M' {; c/ O% G; E9 ~9 G3 M$ r* T, i2 W- V0 @7 F/ A' @6 t& P6 R' \* |7 y+ h! f0 v+ B2 l7 v) ? B) i. `) l# B R$ t/ w4 P& b- l# q. ?/ C) e8 A3 m+ A5 M" n4 q8 t O" v& x' B F5 T; h( A% {; X: o0 r# X! Q2 I9 E- G* }7 R) v C" w" f0 d" l8 t t% R& i# B4 f: U1 V+ ~9 H- O( [$ U. f7 X" A, i5 Y6 s6 B8 U1 R: \5 x) P" ~7 m* t4 o8 b- c( R$ V3 G1 @+ X0 Y8 ?) ?4 d: g$ F' P" ^. v$ |" ?3 o5 S% R, \& R7 h/ X$ d& \+ U9 }# c& @6 C0 P" k" [; a$ o {; Z" K2 [. K- P: K1 B" A4 k' q8 |- I \/ D5 c& H- ?% W3 {1 l m& x0 a" N: j8 Q* o( m, S4 G7 z/ B3 f- W5 V. u( L+ Q& C' F- z, B- _" X% l5 i% X) g7 d+ d4 a$ u# t/ }4 ?# [; a: J, K1 F3 M* [' D$ _$ S7 T7 h0 z+ ~3 T! `# x' k& g5 e: Y C6 v1 n+ e" F! I2 ]) U+ f3 s: v& p" C$ ~( X- w) ^, O1 `( Z o; G4 e; o+ S9 H7 ^# p, c2 j7 R! S/ Z+ r _; d5 S7 ?& {3 o) H7 G' R; U: p4 ?& _1 E- Y1 K( s9 v( q$ a) q5 `3 O: ^* x& p1 ^( k/ _+ L7 h2 z8 _. O4 Q3 B% b: |3 s: U- D% M. n- Z6 N) O" A) Z; Q. A, l+ a: s8 d: R% y- g& M h9 S q9 F& J1 y" z, W$ d4 j$ I% Z$ F; {: Y3 ]) _9 y0 c3 z: X( n6 B7 ^- t* s3 e! ?. f0 u3 q4 z( a+ }5 M! S/ ]/ I0 {. n" M4 m l1 M& Z _: n# Y: \0 N3 _2 o4 E5 w& x9 W( L6 K: j; C ?2 y+ J1 |$ {; D4 e/ c( T* }' U. p% @! R# w, n* u1 X; F
; w0 Q2 S" F* H

编程位

. t& T6 t# v3 _

器件功能

6 g& ~8 q$ e6 a

D15

7 {' h+ p, U! `( s- {. C9 w

D14

5 _: r& ]' E9 n

D13

6 G. O) |/ z/ Z- F% j- ~! c

D12

1 n/ K3 M4 W+ y/ E( p4 d6 t: v6 k

1

: }- t4 e- K6 e0 e* l! @& K

X

8 T0 R. |1 }1 I8 [+ p( p: {! |

X

' P, N e5 f: S

X

: e* \+ b3 E1 Q9 W8 k! q

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

0 h8 g( ^/ y. Z P

0

& b, m; D0 ?7 O& ?. I

X

# d% R1 k" b1 q

X

9 t& d! @* h1 `, W) b

0

, X7 ?# @& ?$ U- v& R# a4 M

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

/ L2 w/ w7 }7 V1 G0 c* T, n

0

8 x/ a5 o9 b' E- ^# I

X

! k/ n% Q" f% ]1 T

X

( [2 D2 [' A& f2 G

1

+ x. w$ \+ o# }3 e2 ~, |3 U# b

仅写双缓冲锁存器

* U) ] N ]' c7 s

X

3 y) a% [1 n7 ]3 W( l

1

' H2 L3 v2 B: U

X

/ H; T# Q; ~7 y; Y' s

X

. U5 \ h2 b: E, U7 \

14μS建立时间

$ N0 ~( I$ }. ]3 m2 _

X

* F: ?- A/ f( e4 e9 @* p: T

0

# H1 v: n% X9 p3 u M- H* x# u

X

; I) [5 n) O8 c& K9 @; | Y

X

5 ~2 z: ^5 b: R T5 o2 h! Y) }: b

3μS建立时间

4 S' w9 H6 i J4 D, S% J

X

/ h* [6 s3 p% s& r0 E

X

9 r k' D2 s' ?, B

0

; Y4 ?3 m$ B7 m/ D$ ^8 `$ [

X

! c4 W* K/ S% f+ s3 m( L3 J9 l

上电(Power-up)操作

6 n* Z# ^8 ^, l. a" Y$ u" @

X

( t- ]2 V! {# R- u2 @

X

1 s" D: l* r& `" h& K' m# Q3 D

1

0 ~* P9 q) `# F6 A. ]

X

B* {' k) `5 u: C1 F4 l U

断电(Power-down)方式

: D6 T" b8 R8 L9 S2 Z5 i0 q

3TLC5618与单片机的接口

o8 ]% I3 P" Y9 u

+ j7 M/ W6 r* i, r* d

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

& w s2 _9 p0 p! v/ a& j# 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,以便使基准电阻器阵列和输出负载所消耗的功率最小。

+ \" ^; H% c# E. R* S! q

5结束语

' a. P) G; H2 m T/ Y- d3 O

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

; x" G8 r: ^" J3 ]
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-5-17 15:42 , Processed in 0.121543 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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