我用单片机去配置LMX2582的寄存器,输入信号26MHz,想得到920MHz的输出信号,但是配置完寄存器后没有信号输出。
寄存器的值是由TICS Pro 软件提供的,如图:
按照datasheet配置寄存器,如图:
单片机部分程序如下:
uint32_t reg[44] =
{0x00221A,0x010808,0x020500,0x041943,0x0728B2,0x081084,0x090302,0x0A10D8,
0x0B0018,0x0C7001,0x0D4000,0x0E0FFF,0x130965,0x14012C,0x162300,0x178842,
0x180509,0x190000,0x1C2924,0x1D0084,0x1E0434,0x1F0601,0x204210,0x214210,
0x22C3F0,0x23001B,0x240C10,0x254000,0x260046,0x278404,0x280000,0x2900D0,
0x2A0000,0x2B0000,0x2C0000,0x2D0051,0x2E0F24,0x2F00CF,0x3003FC,0x3B0000,
0x3D0001,0x3E0000,0x4003AF,0x00221C}; //寄存器值
SystemInit();
GPIOInit();
// 把单片机的PORT0_9端口接到CSB,PORT2_2端口接到SCK,PORT0_6端口接到SDI //
GPIOSetDir(PORT0,9,1); //CSB
GPIOSetDir(PORT2,2,1);//CLK
GPIOSetDir(PORT0,6,1);//DATA
LMX2582_SPI_Wdata(reg,44); //写入寄存器值
}
void LMX2582_WR_byte(uint32_t da)
{
int j;
for(j=0;j<24;j++)
{
GPIOSetValue(PORT0,6,(da&0x800000));
GPIOSetValue(PORT2,2,1);
da = da<<1;
GPIOSetValue(PORT2,2,0);
}
}
void LMX2582_SPI_Wdata(uint32_t *Tdata,uint32_t size)
{
int i;
GPIOSetValue(PORT2,2,0);
GPIOSetValue(PORT0,9,1);
for(i = 0;i < size;i++)
{
GPIOSetValue(PORT0,9,0);
LMX2582_WR_byte(Tdata[i]);
GPIOSetValue(PORT0,9,1);
}
delay32Ms(0,10);
}
把单片机的三个IO端口分别接到LMX2582的CSB、SCK和SDI三个引脚上,然后让单片机按照DATASHEET输出寄存器的值,进行配置。
单片机运行完成后,LMX2582没有信号输出。
应该如何进行LMX2582的寄存器配置?