已回答假定已回答

AD9957串口编程问题

xubing 在 2013-6-26 詢問的問題
最後回覆由ADI_Wei於2013-6-29提供

各位好!

我用TMS320F2812 芯片控制AD9957,现在要向AD9957写控制字,使用F2812的SPI外设。我的问题是:

比如向AD9957的控制寄存器1写控制字,程序如下:

/***********************/

/ / CFR1

    write(0x00);    //指令字节

    // 传输第1个字节

    write(0x00);

    // 传输第2个字节

    write(0x40);

    // 传输第3个字节

    write(0x00);

    // 传输第4个字节

    write(0x02);

/***********************/

其中,write()是SPI的发送函数,

void write(unsigned int data)

{

    GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;    //选中AD9957

     if (Spi_TxReady() == 1)    // 当检测到SPI发送准备信号置1时,开始发送数据

    {

        SpiaRegs.SPITXBUF = data;    //把数据写入SPI发送缓冲区

    }   

    while((SpiaRegs.SPISTS.all & 0x0040) != 0x0040) {};    // 一直等到数据发送完成

    GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;    //退出时关片选

     mDelay(40);//延时

}

   

    CFR1是4个字节,这样编程对吗?我用示波器检查PLL_LOCK和PDCLK,都是错误的。

 

谢谢!

結果