谁用过IP2022单片机控制锁相环? 用IP2022单片机控制锁相环SP5658,用晶振4MHZ进行预分频,可以分成2M,1M,500K,250K,125K,62.25K,31.125K,13.625K.对输入频率964.87MHZ进行程序分频,用的是SPI三线制协议来传送数据,总共传送26位数据(包括预分频值和程序分频次数),EN高有效,CLK上升延传数据. 用时序分析仪采集到的数据,时钟的时序又是正确的,但是SP5658就是没的反映的.好象它没收到数据.不知是不是程序的问题.请各位大侠帮忙看看.谢谢! #include<ipOS.h> #include<ipHAL.h> #include"pinDefine.h" void initPIN(void) { pin_dir_out(RC,0); //CLOCK pin_dir_out(RC,1); //Transmit Data pin_dir_out(RC,2); //EN1 964.85MHZ pin_dir_out(RC,3); //EN2 1290MHZ //pin_dir_in (RE,3); //LockFlag pin_low(RC,0); pin_low(RC,1); pin_low(RC,2); pin_low(RC,3); } void delay(u8_t n) { u8_t i; for(i=0;i<n;i++); i=i+1; i=i-1; i=i; } void PLL_EN1_L() { pin_dir_out(RC,2); pin_low(RC,2); delay(6); } void PLL_EN1_H() { pin_dir_out(RC,2); pin_high(RC,2); delay(6); } void PLL_DATA_L() { pin_dir_out(RC,1); pin_low(RC,1); delay(2); } void PLL_DATA_H() { pin_dir_out(RC,1); pin_high(RC,1); delay(2); } void PLL_CLOCK_L() { pin_dir_out(RC,0); pin_low(RC,0); delay(10); } void PLL_CLOCK_H() { pin_dir_out(RC,0); pin_high(RC,0); delay(10); } void sendData(u32_t dword) { u8_t i; PLL_EN1_l(); PLL_DATA_L(); PLL_CLOCK_L(); delay(50); PLL_EN1_H(); delay(50); for(i=0;i<26;i++) { if(dword&0x02000000) {PLL_DATA_H();} else {PLL_DATA_L();} delay(2); PLL_CLOCK_H(); delay(100); PLL_CLOCK_L(); delay(86); dword=dword<<1; } delay(20); PLL_EN1_l(); PLL_DATA_L(); PLL_CLOCK_L(); delay(100); } |