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.

DAC8734输出不变

Other Parts Discussed in Thread: DAC8734EVM, DAC8734

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

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

  • 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

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

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

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

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

  • 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连续发送的程序框架是什么?

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

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

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

  • 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

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

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