关于TLC1514的应用问题
各位前辈好!
最近在用TLC1514作ADC应用。但是总是不得要领。感觉没有正常启动。
基本情况:C51作控制。PWDN经10K电阻上拉5V;FS和CSTART接5V;初始化数据是A800H,每次单信道操作。
读取来的CFR=101H。不是我输入的。
初始化程序(汇编)如下:
ADCINIT: ;TLC1514 初始化。高位先输入
MOV R1,#0A8H
MOV R2,#00H ;4BIT控制+12BIT初始化数据:A800H。
CLR C
MOV B,#10H ;16BIT
CLR P2.2 ;SCLK=0
NOP
CLR P2.6 ;CS=0
NOP
NOP
ADCINIT1:
MOV A,R2
RLC A
MOV R2,A
MOV A,R1
RLC A
MOV R1,A
MOV P2.1,C ;C→SDI/P2.1
SETB P2.2 ;SCLK=1
NOP
CLR P2.2 ;SCLK=0
DJNZ B,ADCINIT1
SETB P2.6 ;CS=1
RET
-----------------------------------------------
读取CFR程序:
ADCRDCFR: ;读ADC.CFR R1=HSB,R2=LSB,高4BIT是1001B读控制
;----------------------写信息, 4BIT
CLR P2.2 ;SCLK=0
MOV A,R1
CLR C
MOV B,#04H
CLR P2.6 ;CS=0
ADCRDCFR1:
RLC A
MOV P2.1,C ;C→SDI/P2.1
SETB P2.2 ;SCLK=1
NOP
CLR P2.2 ;SCLK=0
DJNZ B,ADCRDCFR1
;----------------------读CFR
CLR C
MOV R1,#00H
MOV R2,#00H
MOV B,#0CH ;12BIT
ADCRDCFR2:
SETB P2.2 ;SCLK=1
CLR P2.2 ;SCLK=0
MOV C,P2.0 ;SDO/P2.0→C
MOV A,R2
RLC A
MOV R2,A
MOV A,R1
RLC A
MOV R1,A
DJNZ B,ADCRDCFR2
MOV A,R1
ANL A,#0FH
MOV R1,A
RET
-----------------------
请高人看看有什么问题?
谢谢!
如果高人有范例程序请留言或邮件给我。jljhma2000@163.com
TLC1514 读取CFR程序应该有错误
写完命令 1001B 后, 多了一个 SCLK 脉冲吧, 这样可能 CD11 就被漏掉了.
我对时序是这样理解的:
1、在向ADC发送数据时,先准备好数据,再使SCLK产生上升和下降沿。这样无论ADC是上升沿或者下降沿接受数据,都有保障。
2、在接收ADC数据时,先产生SCLK的上升、下降沿,这时ADC就应该准备好数据了;再接收数据。
不知对否?
咋没有TI的工程师来解答呢?
很忙啊
没有高人指点啊。
看来要没指望了啊
这个片子没人用吗?