ADI 技术
直播中

莫联雪

7年用户 1116经验值
私信 关注
[问答]

请问AD9957的18位二进制补码的小数点位置如何确定?

您好!我正使用AD9957的QUDC模式,现通过DSP给AD9957送入并行数据。我的问题是,数据手册说施加于引D<17:0>的数据字可以选择二进制补码编码格式,那么请问这18位的二进制补码的小数点位置如何确定?AD9957是如何判断的?谢谢

回帖(4)

云静京

2018-11-30 10:25:54
请您参考下面的数据格式表格,18bits的数据类似:
举报

莫联雪

2018-11-30 10:42:05
引用: dang28 发表于 2018-11-30 17:33
请您参考下面的数据格式表格,18bits的数据类似:

您好!感谢您对我上一个问题的回答。我在做项目的过程中又遇到如下问题,麻烦您看一下。
 
我用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,都是错误的。
 
谢谢!
举报

云静京

2018-11-30 10:47:48
引用: zmyecho 发表于 2018-11-30 17:49
您好!感谢您对我上一个问题的回答。我在做项目的过程中又遇到如下问题,麻烦您看一下。
 
我用TMS320F2812 芯片控制AD9957,现在要向AD9957写控制字,使用F2812的SPI外设。我的问题是:

CFR1的四个字节这样编程是不对的,前面还需要有一个字节的指令寄存器(包含了地址信息的)。请您将您程序运行后用示波器或逻辑分析仪抓取的时序图(CSB,SCLK,SDIO)发出来看看呢。
举报

莫联雪

2018-11-30 11:04:28
引用: dang28 发表于 2018-11-30 17:55
CFR1的四个字节这样编程是不对的,前面还需要有一个字节的指令寄存器(包含了地址信息的)。请您将您程序运行后用示波器或逻辑分析仪抓取的时序图(CSB,SCLK,SDIO)发出来看看呢。

您好!
    对于CFR1,我写了5个字节,第一个为0x00,就是指令字节,包含了地址。后面的四个字节是具体的控制字。
 
/***********************/
/ / CFR1
    write(0x00);    //指令字节
    // 传输第1个字节
    write(0x00);
    // 传输第2个字节
    write(0x40);
    // 传输第3个字节
    write(0x00);
    // 传输第4个字节
    write(0x02);
/***********************/
举报

更多回帖

发帖
×
20
完善资料,
赚取积分