主题中讨论的其他部件:LMK0.3328万,, DAC3171, SN74LVC1G32, SN74ALVTH1.6374万
您好,
我写config0切换到4线时遇到问题(SDO变为输出)。 我发现我必须 (有条件地见下文)在CONFIIG0寄存器转换到SDO之前反复写入(73次或更多次),直到那时输出所有'1'。 这对于两个设备来说是完全可重复的。
SDIO,SDENB,SCLK的我的信号 均显示在电气规格范围内,我已使用以下信号模式确保任何信号转换与另一信号转换之间至少有1US的余量:
1.SCLK =低,SDENB变为低。
2.10US延迟
3. SDIO设置为位值
4,1US延迟
5. SCLK设置为高
6.1US延迟
7. SCLK设置为低
8.1US延迟
9.循环到(3)以完成24位
10.10US延迟,SCLK低
11. SDENB很高
接地和去耦良好。 TX_ENABLE为高电平,RESETB在通电后清洁循环100mS且在上述过程中处于高电平,在DATA_CLK和DAC_CLK均为相同频率(由 LMK0.3328万驱动- DAC_CLK PECL源自SI5.3322万B通用PECL缓冲器)后。 时钟稳定且为62.5MHz。 睡眠处于浮动状态。 同步尚未切换。
在上述将0x0046ED写入 CONFIG0的过程之后-切换到4线,我没有读取上述 算法73个周期的正确值! 我没有计时,但当我只写一次时,在eclipse下断点代码(Cyclone Vgx中的NIOS2)(无优化,易失性I/O -一切看起来都正确无序等)。 在完成写入周期(使用范围进行验证)之后,然后步过读取-它始终只需写入一次即可正确读取。
在这两种情况下(反复运行和断点),我捕获存储范围上的写入周期 -它们是相同的。
当刚运行时-经过73次循环尝试(或仅通过调试器步骤尝试一次)-我终于读取了来自SDO的写入值。 我从系统中的两个DAC3174s中获得以下寄存器转储。 注-我从未看到它返回不一致,并且config1从未返回错误,即使它只写过一次。
CONFIIG0:46ed <<<<<<<<< 已编程
配置1:604e <<<<<<<<< 已编程
CONFIIG2:3fff <<默认值
CONFIIG3:0000 <<默认值
CONFIIG4:28a0 <<在IO测试模式比较期间失败的位
CONFIIG5:3f40 << 0011 1111 0100 0000 FIFO A和B指针冲突,dataclk_Gone
CONFIIG6:3100 <<0011 0001 0000 0000: 0011 0001温度传感器=49
CONFIIG7:FFFF <<默认值
CONFIIG8:6000 <<应默认为4000,-保留位中的一些非默认读数!!!
CONFIIG9:8000 <<默认值
CONFIIG10:f080 <<默认值
CONFIIG11:1111 <<默认值
CONFIIG12:3a7a <<默认值
CONFIIG13:36b6 <<默认值
CONFIIG14:2aea <<默认值
CONFIIG15:0545 <<默认值
CONFIIG16:0585 <<默认值
CONFIIG17:0949 <<默认值
CONFIIG18:1515 <<默认值
CONFIIG19:3aba <<默认值
CONFIIG20:0000 <<默认值
CONFIIG21:FFFF <<默认值
CONFIIG22:2d04 << RESET is not applicable (CONFIIG22:2d04 <<重置不适用)。 降低刀版ID的16位
CONFIIG23:a3c4 << RESET不适用。 刀版ID的中下16位
CONFIIG24:c9a8 << RESET不适用。 刀版ID的中上16位
CONFIIG25:87ff << RESET is not applicable.(配置25:87ff <<重置不适用。) 刀版ID的上6位
CONFIIG127: 0049 <<0000 0100 1001。 另一个数据表错误-查看默认与寄存器位
DAC3174 B寄存器
CONFIIG0:46ed <<<<<<<<< 已编程
配置1:604e <<<<<<<<< 已编程
CONFIIG2:3fff <<默认值
CONFIIG3:0000 <<默认值
CONFIIG4:2cff <<在IO测试模式比较过程中失败的位
CONFIIG5:3f00 << 0011 1111 0000 FIFO A和B指针冲突。 所有时钟都存在
CONFIIG6:3500 <<0011 0101 0000 0000: 11.0101万=温度传感器=53
CONFIIG7:FFFF <<默认值
CONFIIG8:6000 <<应默认为4000,-保留位中的一些非默认读数!!!
CONFIIG9:8000 <<默认值
CONFIIG10:f080 <<默认值
CONFIIG11:1111 <<默认值
CONFIIG12:3a7a <<默认值
CONFIIG13:36b6 <<默认值
CONFIIG14:2aea <<默认值
CONFIIG15:0545 <<默认值
CONFIIG16:0585 <<默认值
CONFIIG17:0949 <<默认值
CONFIIG18:1515 <<默认值
CONFIIG19:3aba <<默认值
CONFIIG20:0000 <<默认值
CONFIIG21:FFFF <<默认值
CONFIIG22:320b << RESET is not applicable.(CONFIIG22:320b <<重置不适用。 降低刀版ID的16位
CONFIIG23:a3c4 << RESET不适用。 刀版ID的中下16位
CONFIIG24:c9a8 << RESET不适用。 刀版ID的中上16位
CONFIIG25:91ff << RESET is not applicable.(配置25:91ff <<重置不适用。) 刀版ID的上6位
CONFIIG127: 0049 <<0000 0100 1001。 另一个数据表错误-查看默认与寄存器位
两个DAC都显示FIFO同步错误,其中一个可能显示时钟问题-尽管我 此时尚未向DAC发送同步脉冲,因此我预计会出现帧问题。 此外,功率顺序章节表明串行配置与这些时钟无关(请任何人确认-此数据表存在一些严重问题,我不信任它)
这种'廉价'特征的机制是什么-当进一步的写作和阅读似乎完全没有问题时。
感谢您提供任何帮助。