tlv5610,参考电源为4.096v.
1.写0x00FF(即A通道写入FF),那么8个通道均输出0.258v,接着写入0x11FF(即B通道写入1FF),那么8个通道均输出0.515v.
即在没有设定某个通道power down mode的情况下,写入任何一个通道值,其余7个通道会得到相同的输出.
如果设定某个通道为power down,那么该通道输出为0.
2.写0xC0FF(即DAC A and /B),那么A,C,E,G通道输出为0.258v,B,D,F,H通道输出为3.827v.
具体代码如下.
void dac_5610_init()
[
DALDAC=1;
_nop_();
DAFS=1;
_nop_();
DACLK = 1; //Ti wanda
_nop_();
]
void dac_5610(u_int data_in)
[
u_char i;
DACLK=0; //Ti wanda
_nop_(); //Ti wanda
_nop_();
_nop_();
_nop_();
_nop_();
DAFS = 0;
for (i=0;i<16;i++)
[
DACLK = 1;
//_nop_();
//_nop_();
//_nop_();
//_nop_();
DADIN = (bit)(data_in&0x8000);
_nop_();
_nop_();
_nop_();
_nop_();
DACLK = 0;
data_in <<= 1;
_nop_();
]
DAFS=1;
DACLK=1;
_nop_();
_nop_();
_nop_();
DACLK=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
DACLK=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
DALDAC=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
DALDAC=1;
]
main()
[
u_char i;
dac_5610_init();
dac_5610(0xC0FF); //DAC A and /B A=0.258v,B=3.827v
delay(200);
dac_5610(0x00ff); //0.258v
delay(200);
dac_5610(0x11FF); //0.515v
delay(200);
]
3.更换一片tlv5610,现象同上.
4.印刷电路板更换为自己手焊电路板,现象同上.
5.DALDAC常接地或者受控,在不同位置受控,现象同上.
6.查看波形,类似与之前提供波形,应当是满足资料手册的.
7.查看硬件,搭建最简单电路,只允许A通道接一电阻下地,其余不接外围电路,现象依旧.
综上,认为tlv5610 IC不能满足单路输出.