Post Go back to editing

对ADRF6602编程中遇到的问题

您好:我在初始化ADRF6602的时候发现单步执行的时候,当执行到

ADRF6601_reg_write(CP_ENABLE | LDO_3V3_ENABLE | VCO_LDO_ENABLE | VCO_ENABLE | VCO_SWITCH_REGULAR | VCO_AMPLITUDE(63) | VCO_BW_SW_SOURCE_CONTROL_BAND | VCO_BAND_SELECT_FROM_SPI(32),VCO_CONTROL_AND_VCO_ENABLE);的时候,管脚2DECL3P3上出现了3.3V的电压。

但是我继续往下执行时,当执行完

ADRF6601_reg_write(DITHER_MAGNITUDE_1 | DITHER_ENABLE | DITHER_RESTART_VALUE(1),MODULATOR_DITHER_CONTROL);的时候,管脚2DECL3P3上的3.3V电压消失了。

我感觉像是我能写进东西到寄存器里,但是写的数据不对。另外MUX_OUT引脚上始终测不到波形。

我怀疑是我的时序不对,但是我和IC资料的时序对了很多遍都找不出问题在哪?

附件中是我用示波器抓的CLK、DATA、LE的关系图。


这是CLK和LE的关系图,上边是CLK的波形,下面是LE的波形。


这是CLK和DATA的关系图,上边是CLK的波形,下面是DATA的波形。我做了个循环,不断的写入0xaaaaaa.

下面是我用IO口模拟SPI的程序代码

void ADRF6602_reg_write(unsigned long reg_value, unsigned char reg_address)

{

    unsigned char i;

reg_value = reg_value | reg_address;     //combine a 24 bit date

ADRF6602_LE_H;                    //  CS_#     : 1

delay_nus(3);

ADRF6602_CLK_L;

ADRF6602_LE_L;                    //  CS_#     : 0

for(i=0;i<24;i++)

    {

    

     if(reg_value&0x800000)

       ADRF6602_DATA_H; 

     else

       ADRF6602_DATA_L;

     reg_value<<=1;

     ADRF6602_CLK_H; 

  delay_nus(3);

  ADRF6602_CLK_L;

    }

delay_nus(3);

ADRF6602_LE_H;                    //  CS_#     : 1

delay_nus(3);

ADRF6602_LE_L;                    //  CS_#     : 0

 

}

请帮忙看看时序上有没有问题?我实在是找不出问题出在哪了。


谢谢

attachments.zip
  • 您好,您的问题已经提交给ADI相关专家,将邀请专家尽快回答您的问题。谢谢!

  • 您好!

    大致看了您的时序信号,看LE有两个脉冲。

    LE应为一个脉冲信号,脉宽为t7。在起始时,LE下降沿与第一个CLK上升沿间隔为t1;最后一个CLK下降沿与LE上升沿间隔为t6。数据手册图2中LE只是为了表明t1,t6,t7的时间和位置。但LE实际只有一个。

  • 您好:

           按照您的建议我修改了程序代码。问题依然存在。请帮我看一下我时序上还有需要修改的地方吗?

    下面是我修改后用示波器抓到的波形图:

    CLK&LE:

            

    开始发送数据时CLK&LE的关系图                                    发送完24位数据时CLK&LE的关系图。

    CLK&DATA(做了个循环,不断的写入0xaaaaaa):

              

    数据和CLK的关系图

                                                                                    谢谢。---

                                                                   杨宏伟               

                研发部

                电子工程师

                                                   guokehy.com                                                                               

    地址:北京市海淀区蓝靛厂东路2...                       

                                           电话:010-88864962-828                      

                                               手机:13651225916                      

                                               邮箱:yanghongwei@guokehy.com                                                                               

    -


    原邮件信息

    attachments.zip
  • 您好,您的问题已经提交给ADI相关专家,将邀请专家尽快回答您的问题。谢谢!

  • 您好!

    看了您的时序信号,基本是与数据手册中一致的。对于初始化的问题,需要注意的是除写入顺序外,还应注意寄存器之间的写入时间间隔。具体请参考数据手册中PROGRAMMING THE ADRF6602INITIALIZATION SEQUENCE章节。