This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DAC81416:DAC 81416编码问题- SCLK 和 Cs

Guru**** 2386610 points
Other Parts Discussed in Thread: DAC81416, DAC61416
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1131146/dac81416-dac-81416-coding-problem--sclk-and-cs

器件型号:DAC81416
主题中讨论的其他器件: DAC61416

大家好、我正在尝试在 tensy 和 dac81416之间进行连接。 我的 SPI 代码:

_SPI_SETTINGS = SPISettings (SPI_CLOCK _HzMSBFIRSTSPI_MODE0);

  PinMode (cs_pin输出);
  //digitalWrite (_rst_pin、HIGH);

  _spi->Begine()

内联 void DAC61416:cs_on (){
  digitalWrite (cs_pinlow);

内联 void DAC61416:cs_off(){
  digitalWrite (cs_pinHIGH);

int DAC61416::init()
  //软复位,POR 被启动
 WRITE_REG (R_TRIGGER、(0x001A));
  

  //设置 SPIC委:DEV_PWDN=0,FSDO=1
  uint16_t def = TEMPALM_EN (1)| DACBUSY_EN (0)| CRCALM_EN (1)| DEV_PWDWN (0)| CRC_EN (0)| SDO_EN (1)| FSDO (1)|(0x2 << 6);
  WRITE_REG (R_SPICCCed1def);

 // WRITE_REG (R_SPIC70、0x0A84);
  
  //读回 ***
  返回(READ REG_(R_SPICD)== def0-1);


void DAC61416:::WRITE_reg (uint8_t reguint16_t wdata){
  uint8_t lsb =((uint16_t) wdata >> 0)& 0xFF
  uint8_t MSB =((uint16_t) wdata >> 8)& 0xFF

  _spi->BeginTransaction (_spi_settings);
  CS_ON()
  delayMicroseconds (1);
  _spi->传输(reg);
  _spi->传输(MSB);
  _spi->传输(lsb);
  tcsh_delay()
  cs_off()
  _spi->endTransaction ();
//DAC 写入所需的步骤:
//编写一个 DAC_WRITE 函数、该函数使用3个8位 SPI 写入来写入8位地址、
//并将16位数据拆分为8位 MSB 和8位 lsb。
 
uint16_t DAC61416::read_reg (uint8_t reg){
  uint8_t buf[3]// 15-0

  _spi->BeginTransaction (_spi_settings);
  CS_ON()
  _spi->传输((RREG | reg));
  _spi->传输(0xff);
  _spi->传输(0xff);
  tcsh_delay()
  cs_off()

  CS_ON()
  buf[0]=_SPI->transfer (0x00);
  buf[1]=_SPI->transfer (0x00);
  buf[2]=_SPI->transfer (0x00);
  tcsh_delay()
  cs_off()
  
  _spi->endTransaction ();

  //检查 buf[0]

  uint16_t res =((buf[1]<< 8)| buf[2]);
  返回(res)
}  
我正在尝试将 SCLK 的24位帧指定为3 8位、这是正确的吗?
而且 CS 完全不会变为低电平。 但我已正确编码。(图1)  
这是否与 SPI 时钟频率有关? 因为当我更改它时、我可以在芯片选择引脚中看到尖峰(图2)
您能告诉我我应该给它多少赫兹?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gayathri、

    对于2.7V 至5.5V 的 VDD、DAC81416具有50MHz 的最大 SPI 时钟、对于1.7V 至2.7V 的 VDD、则具有25MHz 的最大 SPI 时钟。

    您需要查看控制器的数据表、以找到它可以支持的最大 SPI 频率。  

    最棒的

    Katlynne Jones