TI中文支持网
TI专业的中文技术问题搜集分享网站

DAC53202: 通过SPI回读的问题

Part Number:DAC53202

你好,    

    我使用FPGA与DAC53202进行通讯,按如下步骤通过SPI配置DAC,但是读取失败(无论回读common-config还是DAC-x-DATA,SDO始终为高电平):

    GPIO-CONFIG  (16'h2000)

    INTERFACE-CONFIG (16'h0005)

    COMMON-CFG (16'h1206h)

    .

    .

    .

    COMMON-TRIGGER(16'h0002)   –NVM program

    等待200ms

    COMMON-TRIGGER(16’h0A00)–RESET

    等待10ms

    发送24‘h9F0000等回读命令。

    注:已知SPI对DAC-X-DATA的写入可以规律的改变DAC输出电压(输出电压均比理论值高0.5V)。

    请问上述流程是否有误?如果有的话,烦请指出。如果是其它问题也请一并指出。

此致!

Kailyn Chen:

您好,收到您的问题,我这边需要看下它的数据手册,尽快给您答复。

,

VR@palead:

好的,谢谢。

,

Kailyn Chen:

您好,我看了下您的设置,一个是DEV-LOCK配置的为0, Device not locked registers。

一个是COMMON-TRIGGER(16’h0A00)–RESET,reset之后寄存器的值就恢复POR初始状态的默认值了吧。

我看了下read timing,先发送回读命令,也就是INTERFACE-CONFIG (16'h0005)。然后对某个寄存器的值进行读就可以了。

您可以用示波器测量下SPI 读的时序:

,

VR@palead:

你好,

    我是想把GPIO配置成SDO,DEV lock这里需要进行locked操作吗?

    reset的目的是让DAC在POR时从NVM中读取配置—-我希望POR之后GPIO配置为SDO。

    一开始试验的时候我就是按 INTERFACE-CONFIG –> ReadBack 的顺序进行的,后来才想到先将GPIO的配置固化进NVM然后才进行读取。而这两种操作序列下对两个试验电路的SDO使用示波器测量均没有捕获到任何电平跳变。

    感谢回复,我会继续试验其它的操作时序。

此致!

,

Kailyn Chen:

VR@palead said:  reset的目的是让DAC在POR时从NVM中读取配置—-我希望POR之后GPIO配置为SDO。

您好,我理解的是如果GPIO配置为reset功能(即GPI-CONFIG=1011),这样的话即使通过寄存器进行software reset,那么寄存器的配置不会改变。

否则的话进行reset,寄存器的值会回到初始值状态。

VR@palead said:我是想把GPIO配置成SDO,DEV lock这里需要进行locked操作吗?

我看了下register lock的介绍,这里lock的目的是防止误操作或者偶发时间对某个寄存器进行了配置,不是必须的哈。

 

,

VR@palead:

Set the GPIO-CONFIG register (0x24) to 0x0000. 

Set the SDO-EN bit in the INTERFACE-CONFIG register (0x26) to 1.

遵照这两步即可,关键是GPO-EN需要清零(当然如果器件是全新的其复位状态是0,不配置也可以)。

,

VR@palead:

    一开始我想是否因为GPIO功能设定这种操作需要写入NVM并且在重新上电之后才生效,所以考虑进行reset,reset是通过COMM-TRIGGER进行的并非GPIO。

    我后来想到了lock应该是无关的,因为DAC-X-DATA也在lock的范围之内。

,

Kailyn Chen:

VR@palead said:reset是通过COMM-TRIGGER进行的并非GPIO

COMM—TRIGGER的bit11~8即为POR reset,也就是上电初始化的reset。

您看下当进行reset这步骤之后,所有配置的寄存器您读取下,是否已经成功配置进去了?

,

VR@palead:

已经配置进去了,但我的配置步骤里是有NVM prog这一步的。如果没有写入NVM,那么应该是恢复上电状态,我想可能是出厂状态或者上一次写入NVM的状态。

赞(0)
未经允许不得转载:TI中文支持网 » DAC53202: 通过SPI回读的问题
分享到: 更多 (0)