您好:我在初始化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的波形。
下面是我用IO口模拟SPI的程序代码
{
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
}
请帮忙看看时序上有没有问题?我实在是找不出问题出在哪了。
谢谢