AD5791输出电压速率
目前可以通过AD5791输出需要的电压值,但是每次输出数据必须按照“复位”--“NOP”--“写入DAC”--“CONTROL”四个步骤走。现在有需求需要快速的写入DAC并转换出来电压,但是按照上面的步骤走的话,最快也需要一共约50us的时间执行,想问问有没有用过该芯片的朋友,希望能指导一下。 使用硬件SPI,当CLK速率达到25MHz时,按照上面的步骤走的话,在NOP阶段必须有一定的延迟才能输出正确值,也不清楚是不是我有哪里操作错误 NOP其实就是delay来的(时间少不了 )要快就加大主频1uS setting time,意味着刷新速度可以到 1M
必须按照“复位”--“NOP”--“写入DAC”--“CONTROL”四个步骤走,这是谁规定的?
玄德 发表于 2024-11-20 10:24
1uS setting time,意味着刷新速度可以到 1M
必须按照“复位”--“NOP”--“写入DAC”--“CONTROL”四个 ...
你好,是我测试过程中发现的,本来以为初始化配置好各个寄存器后,后面就可以直接走“写DAC值”来改变输出,但是目前我的测试程序不行,每次更新输出都得相当于重新初始化一遍。请问你有参考代码可以借鉴一下吗? xionghaoyun 发表于 2024-11-20 10:08
NOP其实就是delay来的(时间少不了 )要快就加大主频
感谢回复,这里我没有描述清楚,NOP是AD5791的一个寄存器,用于回读用的。目前SPI时钟已经用到25M,接近于手册理论值上限了。 玄德 发表于 2024-11-20 10:24
1uS setting time,意味着刷新速度可以到 1M
必须按照“复位”--“NOP”--“写入DAC”--“CONTROL”四个 ...
感谢回复,目前采用25M的SPI时钟通信,每次输出都是走的AD5791的“复位”-“AD5791 NOP寄存器写”-“AD5791 DAC寄存器写”-“AD5791 CONTROL寄存器写”这四步才能有输出,我理解上应该只有上电后才需要上面四步来初始化AD5791,后面我应该可以直接只走“AD5791 DAC寄存器写”就能更新输出才对。LDAC在全程接低,使用SYNC更新写入值的。 问题已解决,是写入DAC值的码型在CONTRL寄存器里选择的不对,在初始化时码型按默认的补码设置的,而没有按照CONTRL寄存器的设置初始化。目前修改CONTRL寄存器中关于补码的设置即可,自己之前没有找到问题的原因是没有了解到直接计算出来的码是属于补码还是偏移二进制码,是不是直接计算出来的码都是属于偏移二进制码呢,手册在DAC值计算那里没有专门的标注。
页:
[1]