微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > DAC8760输出数据最高位发送问题

DAC8760输出数据最高位发送问题

时间:10-02 整理:3721RD 点击:

再次麻烦大家帮帮忙。

在大伙的帮忙下,DAC8760终于可以输出了,但是有遇到了奇怪的问题,当我发送数据寄存器的时候,当发送的数据的最高位为1时,输出值就错了,而且是非常小。比如我用0至20mA档,当发送的数据为0~0x7fff 时,输出正确,当发送大于等于0x8000时,输出都很小,1mA左右。

麻烦大家帮帮,谢谢

写程序:

void DAC8760_write_byte(unsigned char com, unsigned int dat)
{
 unsigned char i=0;

    unsigned char h_8bit, l_8bit;

    h_8bit=(uchar)(dat>>8)&0x00FF;//取高8位数据
        l_8bit=(uchar)dat&0x00FF;     //取低8位数据


 DAC8760_LATCH_0;


 for(i=8;i>0;i--)
 {
  DAC8760_SCLK_0;
  if(com&0x80)
  {
   DAC8760_DIN_1;
  }
  else
  {
   DAC8760_DIN_0;
  }

  DAC8760_SCLK_1;

  com<<=1;

 }
 DAC8760_SCLK_0;
  delay_us(2);
 for(i=8;i>0;i--)
 {
  DAC8760_SCLK_0;
  if(h_8bit&0x80)
  {
   DAC8760_DIN_1;
  }
  else
  {
   DAC8760_DIN_0;
  }

  DAC8760_SCLK_1;

  h_8bit<<=1;

 }

 for(i=8;i>0;i--)
 {
  DAC8760_SCLK_0;
  if(l_8bit&0x80)
  {
   DAC8760_DIN_1;
  }
  else
  {
   DAC8760_DIN_0;
  }

  DAC8760_SCLK_1;

  l_8bit<<=1;

 }
 DAC8760_SCLK_0;
 DAC8760_LATCH_1;

 DAC8760_DIN_1;

}

你好,

能否将你写入的数据再读出来验证一下?特别是在写入的数据  大于等于0x8000时。

另外,能否将SCLK,DIN,LATCH这几个引脚的时序上传一下? 谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top