找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 567|回复: 0

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

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

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

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

×
U0 O( y# s4 J% |4 s9 Q( S) t5 s( ^/ {2 X+ D" v8 e( P0 M& H( M; n' Y! k# x
. `: A' ?( Q( F: t, H, ?

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

; Z" L2 }9 e; Q: ^; T

( c3 f3 A9 g, w* v

1TLC5618的引脚排列

# O1 H/ x4 _. m" d! X

8 r2 _9 S5 g4 [/ M

2TLC5618的典型运用电路

) @- a' I1 G( `! S0 q6 ? H+ N

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

1 |$ r2 z/ j4 Y8 X( \- o

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

6 M4 b1 @; u( G3 V6 v8 K9 `8 ^1 n5 n* w2 A) L% d$ K( x, C# W- z; Q0 @9 j4 r2 ]1 [/ }) W8 N9 @8 `* m9 r+ ?, B+ a8 H% F7 n4 q6 E d# e5 z V) |" t: ?5 T" x) O% L, e$ l% R, y3 \2 U- y; C1 }+ L! j8 y' l2 d) a. f( }" x3 A6 E2 ]! n) t- b! S! E: W; w) _1 M5 y& z8 ~/ K9 x! Y$ E& g. g# c* n' e n4 w6 j9 }. c: {+ o$ g7 f; V) B0 Q7 k' H5 S- ?7 N8 z# s/ J, C; t+ K4 a3 {' q: G8 }0 \4 Y8 n+ z/ b% @; h5 _# U) ]5 N$ T/ r$ g4 j8 Q* W4 f* t2 o7 S: A" V3 Y' O" X- ]& h; k# I9 t! m6 E* N8 E: K9 S* A6 I3 C/ t& A$ z1 K! Z5 D. }* W7 H: m. t. H' Q% j B; @1 L' e0 l8 n5 ^+ j$ j9 I) n0 z; h! Y. M$ {- N7 b* |- @1 V$ X6 e3 |1 Y; p0 u! D- t& d2 M: {# C. i+ n; h/ c4 b9 P# t( s/ ^- a# L
# q6 W0 k9 x3 m* f4 \

输入+

; `; m0 B( }- ~7 l, ?7 s% Q

输出

; s- K9 q) q2 P; m

111111111111

6 C Q4 [0 z# p& O5 v1 o% E w& u$ G

2(VREFIN)4095/4096

5 j+ y9 ~3 c/ u; v8 E0 k6 }& l

5 h* x* q( [* x& E2 S; u

. _$ K$ y' q1 v: i3 i0 m

100000000001

- ]) Y& z5 ]4 @, }

2(VREFIN)2049/4096

2 n/ a0 [1 u0 Q ?4 g

100000000000

- n& e# c% e& M9 r8 @) T% A

2(VREFIN)2048/4096=VREFIN

# Q0 P' z( H% |* i

011111111111

& v3 Z$ h! _4 l! j. E

2(VREFIN)4097/4096

7 z7 E2 J x$ K+ Y$ H |

5 j) {; q4 p. N% W

4 E& C _6 J! t2 I- P5 ]

000000000001

1 N" d* U8 d% p# s" U& `

2(VREFIN)1/4096

' k. H0 B# X1 }) P/ u% K

000000000000

: X0 g- i- R0 }5 B' N T

0V

4 ^0 l; p7 k7 j d. F" d6 P

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

6 ]. l7 g, t+ s! {; Z

2可编程位D15-D12的功能

" X2 y- c; A8 n/ Y1 r, ^. ?, {/ s, g+ F% _: X% f/ \( K' y; }' Y* ^% x) v } ?' u7 P. z1 q8 v, p% b: W. e# D! C h! [8 n5 ]/ o7 r3 {- @2 B" D1 r* n. W9 _, X; s3 d! n3 I7 h; J- N, T1 y& |; g% a+ T# n" L) |+ P8 Y7 P& a; V. V7 {: A4 L2 S' v# u5 Z( i! B. o4 S: ?' v9 ]- q4 a9 B0 l0 L: ~: D8 J3 w/ p5 D) j0 q% { J4 f# f2 d& y( J" W% D {& x/ t# h7 P% m5 f6 f7 C, @% w' i) s: u% W! Y2 y1 D# P5 F! j6 a" X/ k+ q3 t, j3 \8 w+ }( @- ?8 R- Q3 p, Z# a9 I+ {! I5 M) m5 C! C0 z) c2 p" `5 u& p: H- c8 k& ]( p d3 R# s& w# z" t' n9 _# \; X" M& ^3 r8 O* Y+ Q! Y l: T- [) U( G! G$ T3 R' \! L0 o! }6 j! ?: }6 @8 T) T9 {) y: s- ~/ ~8 U+ u9 A" y% \1 F' X* y/ K4 Y; k. Z9 ~3 g7 [; @+ i4 A8 j8 F3 w1 w/ h6 l/ j, s5 _/ d5 z2 @2 B N) n$ f$ }# L! ]1 H0 [9 p: j4 [9 e& x' x N1 w" u/ O3 U: I: [' h' m8 {. [6 X4 Z+ N2 P% {$ H2 c) ~4 ^! I# D/ }/ w1 W4 E6 R9 ` l7 b) A/ I2 d: z, Q( p: H% z$ q! U2 P2 t: ^* X, V3 a3 N: e, _* m# B8 a& h" v' @9 h8 q6 j8 A) ^$ ]7 O: X2 }6 z J+ \1 T+ ^/ ]% c* O6 T1 P' \5 V, ^% v3 f5 l! C3 I1 ?" r+ D5 m8 |' u, s7 D" F: G$ ?( e) P" K' {2 S. Q* w- _; ?6 f8 W4 l; L3 v; E. W3 o! E# g% R% ~% O6 |+ \9 q- Z- D w9 [! }! x `& S8 @$ W, u5 M+ y# P3 [( _/ W6 l9 }; \6 y$ m' s( ?" W, I# }' `4 }! X. X. g8 D8 A" `# r& L9 x; e3 Y" F7 i! ^* @0 G$ H H4 D6 A# C* z- ]
$ z! ?3 @2 r3 |8 X& t% s

编程位

! @" j* q; {' D+ `

器件功能

1 X% n+ ?$ ]; X, S5 A

D15

; m7 o& o7 i3 m3 k

D14

" r5 j+ l$ m' b; [

D13

+ t' u4 C: k# n, z c

D12

8 c8 w/ l {. F: Q; I! }

1

1 B6 f/ | p( ?6 b9 \% y" A

X

8 U8 Y. i/ R; I! M z2 ^- o

X

2 w/ ]9 J6 K& S0 T' j

X

& O# H9 j( r6 |) X

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

, s7 X( `6 Z' c, n \; G

0

. g; z% m4 u. f, Z

X

: u2 g4 o0 Q$ P" k- Z! C) S

X

: o: _0 ^2 r0 v: R ]

0

1 |7 m$ X# J; ?6 u. E, K

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

9 G" I1 ?. [, R* T& B9 K

0

3 {7 M; I. l; }# ]& N

X

1 D: c9 y; F1 P# u O5 ?

X

6 Y7 ~" x1 `# |0 q+ ^1 B. ]

1

. C& L; |& @6 I; {5 x C

仅写双缓冲锁存器

+ p3 B& g# W- h& e" K

X

, @" d. g @! @; Q S% W8 m! N

1

% w* \' {/ F3 [- K1 K

X

- L4 Y3 h. x! u2 r: f) l

X

4 L; [) I+ @2 y) c/ M5 Z

14μS建立时间

. E! F8 o* d1 b5 f J# a+ w. ^6 J2 l

X

# }: M# e: B& g2 Y

0

! ] a4 n1 K* P: ~" H. U" B

X

( V+ d3 O% J0 ^) [7 r( N

X

4 g) y8 s2 ]1 H

3μS建立时间

" n: I1 a: n% q; x- a' w

X

% {' k( a7 g3 e7 N

X

; b1 Q1 N% \, C9 C( w$ i/ N

0

5 @. T g4 k0 r5 h

X

2 H0 J6 R! `' ]3 @* [: ` {

上电(Power-up)操作

! d0 s2 A0 f q7 E" L

X

% \' Y |) n& T& f9 k2 e

X

I( W& S$ w, t3 z/ _2 o

1

* H& B0 U, E2 n5 q

X

& q7 _& J* q& x* H& I. K- B

断电(Power-down)方式

1 e8 j6 N$ I, l

3TLC5618与单片机的接口

x# q1 l2 k1 Q! \! _" P/ I# \. {

) j* I$ m4 r3 P. H0 e, X

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

. i; J& F) ^' d

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

9 L, S% `* z! k h0 E- W$ q

5结束语

9 G& e1 N' a2 i# d% y3 d4 \

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

3 L% ~ M% \# x
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-12-22 17:19 , Processed in 0.149004 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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