我从2020年1月(现在是2个月前)开始在论坛上发现了一个相同的问题。 遗憾的是、该线程已锁定。 我有同样的问题、无法从 DAC60508中获取芯片 ID。 我使用了与原来一样的 SPI 命令 :0x810000。 我正在使用32位 SPI 主器件、要使用此命令:0x00810000。 但是、我尝试了0x81000000、但它也不起作用。 我可以发送示波器照片,原来的人没有这样做。 原始论坛问题的网址为: 
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.
我从2020年1月(现在是2个月前)开始在论坛上发现了一个相同的问题。 遗憾的是、该线程已锁定。 我有同样的问题、无法从 DAC60508中获取芯片 ID。 我使用了与原来一样的 SPI 命令 :0x810000。 我正在使用32位 SPI 主器件、要使用此命令:0x00810000。 但是、我尝试了0x81000000、但它也不起作用。 我可以发送示波器照片,原来的人没有这样做。 原始论坛问题的网址为: 
您好!
首先、该器件是 MSB 对齐的(这意味着我们首先需要发送 MSB)、因此发送0x00810000将不起作用。 您需要以器件 ID 命令的形式发送0x810000。
读取在两个访问周期内有效。 首次访问您需要发送0x810000、第二次访问您将在 SDO 上获得请求的数据。 您能否发布您的示波器照片? 您可以尝试使用24位 SPI 模式吗?
此外、请确保您不会违反任何时序参数、尤其是 TCSS 和 tcsh。
此致、
AK
您好、AK、
仍然没有活动。 使用 ESP32时、我无法执行24位 SPI、因此我使用的是32位 SPI。 我在规格第25页的第8.4节"如果是访问周期
包含的时钟边沿数超过最小值、器件仅使用最后24或32位。" 因此、对于器件 ID 回读、我尝试0x00083FFF (或0x083FFF00)并使用0x00180000 (或(0x18000000)回读、这两种情况都不起作用、DAC 输出也不起作用。
您能否确认器件是否确实对32位 SPI 做出了响应? 同时、我将搜索 ESP32的24位 SPI 库。
尊敬的 Paul:
我订购了 DAC60508ZCRTER、因此、遗憾的是、我得到的是 CLRn 版本、而不是 SDO/ALARM 版本。 噢、是的。 现在、我已将引脚连接到逻辑高电平、发送0x083FFX 时、仍然无法在 DAC0上获得输出。 我希望获得2.50V 输出。 我还使用0x063FFX 尝试了广播方法。
噢、是的。 我执行了一个 HACK、因此我现在仅发送24位。 但在 SCLK (1MHz)中、8个时钟的三次突发之间存在一个时间间隔(10usec)、但在整个时间内、我将 CSn 保持在低电平。 因此、希望它不会"介意差距"。
我将 VIO 运行在3.3V、将 VDD 运行在5.0V、因此我希望不会发生闩锁、具体取决于出现的电源形式。
其他寄存器的默认值是否有任何偏离?
同步、看起来所有 DAC 输出都是广播的默认设置、LDAC 的默认设置不是。
配置、看起来都是默认调零、这正是我想要的
增益、就像我的"Z"样式部件一样、所有 DAC 输出均清晰为0.0V
触发器、LDAC 所在的位置、我不想使用它
Brdcast
状态
尊敬的 Paul:
好的、现在就开始工作了。
我可以肯定地说几件事:
32位通信正常工作、前两个字节必须为0。 例如、对于我的12位器件的广播命令、将0x0006000X 发送0V OUT 至0x0006FFFX 输出4.99V。 我使用了 SPI.h (我在 ESP32-Fireweetle 和 Arduino IDE 中使用 ESP32控制器)、以下是我的电话
uint32_t DAC_Command32 (uint32_t sentData32){
uint16_t returnData32 = 0;
vspi->beginTransaction (SPISettings (spiClk、MSBFIRST、SPI_MODE1));
digitalWrite (VSPI_SS、low);//pull SS slow to prep other end for transfer
returnData32 = vspi->transfer32 (sentData32);
digitalWrite (VSPI_SS、高电平);//将 SS 拉为高电平表示数据传输结束
vspi->endTransaction();
serial.print (F ("32位 SPI 传输:0x"));
serial.print (sentData32、十六进制);
serial.print (F ("接收:0x"));
serial.println (returnData32、十六进制);
返回返回数据32;
}
对于我的 DAC60508ZCRTER 来说、根据第22页8.3.1.2的表1、ZC 默认值会导致"不推荐"操作、我们在表中的第二行具有 DIV = 1分频和增益= x1。 因此、当我初始化器件时、我发送0x000400FF、现在我们有增益= x2、我们得到0V 至2XVREF = 5V 的全范围 DAC 输出。
感谢您指出、我有 C 部分、我本来打算获得支持 SDO 的部分。