打印
[STM32F1]

STM32单片机驱动数字电位计DS1267B的高地位数据传输问题,...

[复制链接]
569|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zhangheze2011 于 2015-4-11 15:16 编辑

最近要使用一款数字电位计DS1267B,看数据手册上的时钟信号控制,用GPIO模拟了一个去控制数字电位计,但是却发现出来的结果很诡异,与自己说明书上看到的结果不一样,想问一下为什么
从时序图,芯片手册上看DS1267B bit0是选择通道,之后按照顺序是将bit1~bit16传输进去控制数字电位计,bit1~bit8是控制通道1,bit9~bit16控制通道0。  看数据手册应该是先将低位传输进去,再传输高位,所以程序上应该是               
               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电阻变化是有规律的,貌似应该是这样控制数字电位计才对,但是我就不理解了,这样的话不就跟数据手册上写的不一样了吗?数据手册上应该不会出错吧,求解答,谢谢各位大神。

DS1267B双通道数字电位计.jpg (52.48 KB )

DS1267B双通道数字电位计.jpg

时钟控制信号.jpg (43.93 KB )

时钟控制信号.jpg
沙发
搞IT的| | 2015-4-12 11:33 | 只看该作者
额 看不出什么问题。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝