标题: 单片机IO口模拟SPI写数字电位器AD5174通讯问题 [打印本页]

作者: cheney03    时间: 2024-1-17 16:11
标题: 单片机IO口模拟SPI写数字电位器AD5174通讯问题
问题描述:AD5174为10位的数字电位器 ,通过单片机IO模拟SPI通讯,数据写不进AD5174。测量AW两端的电阻值始终为中间值(5.5K左右),怀疑是SPI通讯问题(写的数据或者命令不对)。如图(3)命令4位,数据10位,总共是要发送14位还是16位呢?(我觉得是要发送16位)。命令和数据位是否需要分开发送?如图(4)发送0x0500(二进制:0000 0101 0000 0000) 0000 01为写数据命令,后面10位为数据位Data=256,刚好是满量程1024的1/4,但是芯片的W端(雨刮器)位置没有变化。

引脚图:(图1)



时序图:(图2)

命令字:(图3)


写数据:(图4)


程序(SPI通讯部分):


void AD5174_Init(void)
{               
  AD5174_SPI=1;
AD5174_CS=1;
AD5174_CLK=0;
//AD5174_DI=1;        
}

void AD5174_Write(unsigned char temp)
{
unsigned char i;        
  for(i=0;i<8;i++)
  {
         if(temp&0x80)
         {
           AD5174_DI=1;                                          
         }
         else
         {
           AD5174_DI=0;                                                           
         }
   delay1us();
   AD5174_CLK = 1;
   delay5us();
   AD5174_CLK = 0;
   delay1us();
   temp<<= 1;        //高位MSB在先                     
  }        
        
}


void main(void)
{
  AD5174_Init();
  AD5174_CLK = 0;        
  AD5174_CS  = 0;
  AD5174_Write(0x0500>>8);
  AD5174_Write(0x0500);
  AD5174_CS = 1;
  AD5174_CLK = 0;
delay5us();
while(1)
{
   ;
  }

}

AD5174BRMZ-10-datasheet.pdf

859.1 KB, 下载次数: 5


作者: lkc8210    时间: 2024-1-17 16:11
没取消写保护








作者: cheney03    时间: 2024-1-18 11:38
lkc8210 发表于 2024-1-17 17:32
没取消写保护

意思要操作RDAC,先写图(3)中表6的命令数7,然后再写命令数1。可是依然没效果,用示波器查看写入数据都正确命令数7: 00 0111 0000 0000 10



命令数1:00 0001 0100 0000 00(Data=256)



作者: xianfajushi    时间: 2024-1-19 14:36
从图看应该是16脉冲。
作者: cheney03    时间: 2024-1-24 13:24
问题找到了,因为没有用到输出,SDO悬空,导致数据写不进去,结合一楼的配置,数据成功写入。有个疑问为什么SDO脚悬空数据就写不进去?
作者: lkc8210    时间: 2024-1-24 15:21
cheney03 发表于 2024-1-24 13:24
问题找到了,因为没有用到输出,SDO悬空,导致数据写不进去,结合一楼的配置,数据成功写入。有个疑问为什 ...



作者: cheney03    时间: 2024-1-24 15:52
lkc8210 发表于 2024-1-24 15:21

看来是没仔细看数据手册,SDO外接2.2K上拉电阻,2个IC链接模式也调试成功,再次感谢!
作者: wocjisji    时间: 2024-5-22 11:01
楼主 我控制数字电位器AD8403 模拟 spi发送10位数据可以参考你这个代码吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1