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

DAC8734输出不变

每一个发送的数据时序没问题。但DAC8734只能把第一个接收到的数字数据输出,我用的是TI公司自己的DAC8734EVM。可能有哪些原因导致的呢?是上电顺序的原因吗?

Martin:

这个情况更像是时序有问题,有用示波器检查过时序吗? 你的LDAC是怎么样更新的?

weiguang an:

回复 Martin:

LDAC我设置的一直是低电压,所以LDAC应该没问题。

SPITransmitData1(SOC_SPI_1_REGS,data1); SPITransmitData1(SOC_SPI_1_REGS,data2); SPIDat1Config(SOC_SPI_1_REGS,SPI_DATA_FORMAT0,0x01);

上面是我的发送语句,这三句循环执行。我把DSP的SP配置成12位的,两个发送语句是24位。然后拉高CS。循环发送时的时序如图。

 I

Martin:

回复 weiguang an:

这个时序看起来是没问题的!SCLK的时钟速率有多快?

有没有测试过写入寄存器,然后读出该寄存器,这样读出的数据是否正常呢?

程序中的第三句是干嘛的?

能否将你的测试结果发上来看看,比如说发送什么数据,实测结果是什么?

weiguang an:

回复 Martin:

SCLK在4MHZ,第三句是用来拉高CS的。在双极模式下,发的数是

1.      32768  (data1=72,data2=0)            测试结果是-10

2.      49152(data1=76,data2=0)           测试结果是-5

3.      65535(data1=79,data2=4095)    测结果是0

这都没问题,只发一个数得到结果是对的。连续发就只显示第一个数。

我想问一下,用SPI控制DAC连续发送的程序框架是什么?

Martin:

回复 weiguang an:

你的系统中只有一片DAC8734吧?

LDAC一直拉低的情况下,DAC 连续在CS拉高的时候更新,只要你的输入是有效的,输入后将CS拉高,就可以更新了。

你的程序,能够连续正确地读写寄存器吗?

Jetone Jia:

回复 Martin:

DAC8734和16位单片机MC9S12XEP100连接不上,spi设置位8bit,连续发送3byte,每byte之间有个很小的,略大于1个SCLK的时钟间隔,这决定了不能和8734通信吗

while(!SPI2SR_SPTEF); SPI2DRL = 0x00; while(!SPI2SR_SPTEF); SPI2DRL = 0x00; while(!SPI2SR_SPTEF); SPI2DRL = 0x00;

只用SPI发送,不回读的方式,现在不知道怎样消除那一个SCLK

Jetone Jia:

回复 Jetone Jia:

只能关中断用IO模拟了吗?太占时间了

Jetone Jia:

回复 Jetone Jia:

Sorry for my word. I get dac8734, because the mcu register didnot properly write. thanks

赞(0)
未经允许不得转载:TI中文支持网 » DAC8734输出不变
分享到: 更多 (0)