大家好,我们正在将DAC7716用于5个DAC以菊花链方式连接的设计中,即有一个通用时钟和CSN,并且连接了连续的MOSI/Miso。 执行菊花链模式书写没有问题,如数据表中所示图 2.菊花链回读不起作用,尽管图 3个。 数据表中没有关于*菊花 链*回读模式的具体数字,而且它没有按预期工作(在120位矢量中返回许多零),这让我们怀疑它是否确实受支持? 由于数据在CSN较高时被移出,我不明白为什么它不起作用(理论上)。 感谢您对此进行调查。
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.
大家好,我们正在将DAC7716用于5个DAC以菊花链方式连接的设计中,即有一个通用时钟和CSN,并且连接了连续的MOSI/Miso。 执行菊花链模式书写没有问题,如数据表中所示图 2.菊花链回读不起作用,尽管图 3个。 数据表中没有关于*菊花 链*回读模式的具体数字,而且它没有按预期工作(在120位矢量中返回许多零),这让我们怀疑它是否确实受支持? 由于数据在CSN较高时被移出,我不明白为什么它不起作用(理论上)。 感谢您对此进行调查。
您好,Kevin,很抱歉延迟供应,但我们直到最近才有时间继续分析,然后我们想在发布前了解是否正确。 为了您的信息,我们提供了5个菊花链式DAC (A->C->D->E),请查看卡片页[1]和示意图[2]。 我们有两个人单独查看,得出了相同的结论。 我们为SPI主控制器提供了自定义VHDL实现。
请查看随附的屏幕截图和Tektronix波形文件(*。csv)[3]。 当我们编写的时候一切都很顺利,我们看到sdo行上的命令从最后一个DAC (即 e)。 我们正在所有4个DAC通道上进行迭代,因此4x 120位(120=5*24位/通道)。 当我们执行连续的写入/读取周期时,我们注意到只有DAC E回复正确的信道读回,其他数据都为零。 这在所附的屏幕截图上很容易看到。 我们想知道,DAC是否有一个状态机,在执行回读命令和24位回复后,该状态机只能发送零? 我们确信所有的时间限制都得到了满足,并且我们已经显著降低了SPI时钟速度,以便我们进行分析。
您是否可以在实验室中检查菊花链回读? 提前感谢您的帮助。
Pieter,您好!
写了我之前的文章后不久,我就可以找到一位数字设计师,我们可以找到解决问题的方法。 这些步骤如下(对于菊花链中的3个DAC):
1.按照数据表以菊花链形式正常写入
2.为第一个DAC发送读取命令,为菊花链中的其他DAC发送NOP
3.为菊花链中的所有用户发送NOP命令,并解析来自第一个DAC的miso行的数据
4.为第二个DAC发送读取命令,为菊花链中的其他DAC发送NOP
5.为菊花链中的所有用户发送NOP命令,并解析来自第二个DAC的miso行中的数据
6.为第三个DAC发送读取命令,为菊花链中的其它DAC发送NOP
7.为菊花链中的所有用户发送NOP命令,并解析来自第三个DAC的miso行中的数据
请注意,步骤2,4和6可以互换。
由于设计中的一些自定义实施,我们需要执行上述步骤,以便对链中的所有DAC执行正确的回读。 我知道这是步数的乘法,在您的设计中,您需要10个SPI周期来读取5个DAC,而不是2个周期。
请在下面查找示波器快照:
首次写入(0x05,0x33,0x30,0x05,0x22, 0x20,0x05,0x10,0x10):这是我要读回的值:
第二次写入 (0x04,0x7F,0xF0,0x04,0x7F, 0xF0,0x04,0x7F,0xF0):为了确保我不是只是从尚未从DAC寄存器更新的移位寄存器读回数据:
第一个读取命令 (0x00,0x03,0x3C,0x00,0x03, 0x3C,0x85,0x00,0x00):