谁用过DAC122s085这个DA芯片,那个移动寄存器怎么设置呢
Kailyn Chen:
您好,您是指的input shift register吧?参考Figure30, 第一位必须写0, 第二位决定DAC A还是DAC B,后面2bit四种方式,可以看到00,01,10,11 分别是对特定寄存器进行写,是否update输出,11指的是disable output。 最后12bit指的是register data。如果都是0 对应的是0V输出,都是1 对应的是Vrefin -1V的满量程输出。
user6352683:
回复 Kailyn Chen:
你有参考的程序吗,我不会写
user6352683:
回复 user6352683:
void DACinit(u16 DAC_DATE)
{
u8 i=0;
u16 date_two=0;
date_two=DAC_DATE|0X1000; //控制高四位数据,选择通道ASCLK_0;
SYNC_1;
SYNC_0;
delay(1);
for(i=0;i<16;i++)
{if((date_two&0x8000)==0)
{
DATA_0;
}
else
DATA_1;SCLK_1;
date_two=date_two<<1;
delay(1);
SCLK_0;
}
SYNC_1;
}void delay(u8 Xns)
{
while(Xns–);}
这是我写的初始化程序,用示波器测得DAC芯片的数据引脚、使能端、时钟都有波形,但是芯片就是没输出。
Kailyn Chen:
回复 user6352683:
您好,很抱歉,没有参考例程可以参考。
在您的初始化中,输入寄存器配置的为0X1000, 选择DAC A ,但是12 bit data都是0,所以输出也是0V。 所以芯片没有输出,请改12bit data试试,比如都是1的话,输出应该为满量程输出Vrefin -1V。