ADI 技术
直播中

张丹

7年用户 216经验值
私信 关注
[问答]

AD5726多路DAC输出 SPI写进去的控制字只有1通道与4通道有效

Question:
我将AD5726写寄存器的函数(4通道一起次性完),通过双线SPI写进去的控制字只有1通道与4通道有效;
意思是AD5726_spi_write()一次性运行完就只有1通道与4通道有效;
但是我将AD5726_spi_write()用单步运行,等到程序运行完,4个通道都有效,DAC输出的值是对的。
我用示波器看了SDIN上面的数据,传输的数据是对的,为啥void AD5726_spi_write(void)一次性运行完就不对呢?
奇怪,希望得到指点!谢谢!

我SPI的CLK= 18MHz;
//-----------------Code---------------------------------------------------
void AD5726_spi_write(void)
{
while(Tx_Idx < BufferSize)
{
   SPI_SendData(Buffer_Tx);
   Tx_Idx++;
   DELAY_US(10000);
    }
GPIO_SetBits(GPIOC,GPIO_Pin_5);  //CLR
  DELAY_US(10);
}
//-----------------Code---------------------------------------------------  
void SPI_SendData(unsign int a[])
{
GPIO_ResetBits(GPIOA,GPIO_Pin_4);  //CS
  DELAY_US(10);
  GPIO_SetBits(GPIOC,GPIO_Pin_4); //LDAC
  DELAY_US(10);
  while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
      SPI_I2S_SendData(SPI1,a[Tx_Idx]);
   GPIO_ResetBits(GPIOC,GPIO_Pin_4); //LDAC
   DELAY_US(10);
  GPIO_SetBits(GPIOA,GPIO_Pin_4);  //CS
  DELAY_US(10);
}

回帖(1)

卢兰凤

2018-11-30 15:30:32
请您上传一下访问有问题的DAC通道的完整的ISP波形(用示波器采集下来的)。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分