本帖最后由 zhangheze2011 于 2015-4-11 15:09 编辑
你好,这个是数字电位计DS1267B芯片的时序图,我已经自己用GPIO模拟出CLK,reset与DQ信号,这个能看出来发送24位,17位有效吗??

还有就是虽然用GPIO模拟了一个控制数字电位计但是发现出来的结果很诡异,与自己说明书上看到的结果不一样,想问一下为什么
从时序图,芯片手册上看DS1267B bit0是选择通道,之后按照顺序是将bit1~bit16传输进去控制数字电位计,所以程序上应该是
for(i=0;i<8;i++)
{
if(res_temp&(0x01<<i))
{ DS1267B_DQ_1();
delay_us(1);}
else
{ DS1267B_DQ_0();
delay_us(1);}
DS1267B_CLK_1();
delay_us(1);
DS1267B_CLK_0();
delay_us(1);
}
但是这样编写,给数字电位计输入0,1,128,255。测得的电阻变化是无序的,倒是后来编程试了一下先将高位传输进去,再传低位,如下所示:
for(i=0;i<8;i++)
{
if(res_temp&(0x80>>i))
{ DS1267B_DQ_1();
delay_us(1);}
else
{ DS1267B_DQ_0();
delay_us(1);}
DS1267B_CLK_1();
delay_us(1);
DS1267B_CLK_0();
delay_us(1);
}
却发现输入0,128,255电阻变化是有规律的,但是我就不理解了,这样的话不就跟数据手册上写的不一样了吗?数据手册上应该不会出错吧,求解答。。。。
|