我使用模拟SPI接口配置了LMX2491,上电后发现LMX2491的输出信号MOD TRIG1 MUXOUT一直为高电平,导致读寄存器参数一直为0xFF,是否是由于R38寄存器配置不对所导致?以下为我配置的寄存器参数:
0x18 ,//R0
0x00 ,//R1
0x01 ,//R2
0x00 ,//R3
0x00 ,//R4
0x00 ,//R5
0x00 ,//R6
0x00 ,//R7
0x00 ,//R8
0x00 ,//R9
0x00 ,//R10
0x00 ,//R11
0x00 ,//R12
0x00 ,//R13
0x00 ,//R14
0x00 ,//R15
0x1E ,//R16
0x00 ,//R17
0x2C ,//R18
0x00 ,//R19
0x00 ,//R20
0x10 ,//R21
0x00 ,//R22
0x00 ,//R23
0x00 ,//R24
0x02 ,//R25
0x00 ,//R26
0x08 ,//R27
0x1F ,//R28
0x00 ,//R29
0x0A ,//R30
0x32 ,//R31
0x00 ,//R32
0x20 ,//R33
0x04 ,//R34
0x41 ,//R35
0xF2 ,//R36
0x10 ,//R37
0x18 ,//R38
0x52 ,//R39
0x00 ,//R40
0x00 ,//R41
0x00 ,//R42
0x00 ,//R43
0x00 ,//R44
0x00 ,//R45
0x00 ,//R46
0x00 ,//R47
0x00 ,//R48
0x00 ,//R49
0x00 ,//R50
0x00 ,//R51
0x00 ,//R52
0x00 ,//R53
0x00 ,//R54
0x00 ,//R55
0x00 ,//R56
0x00 ,//R57
0x01 ,//R58
0x00 ,//R59
0x00 ,//R60
0x00 ,//R61
0x00 ,//R62
0x00 ,//R63
0x00 ,//R64
0x00 ,//R65
0x00 ,//R66
0x00 ,//R67
0x00 ,//R68
0x00 ,//R69
0x03 ,//R70
0x00 ,//R71
0x00 ,//R72
0x00 ,//R73
0x00 ,//R74
0x00 ,//R75
0x00 ,//R76
0x00 ,//R77
0x00 ,//R78
0x3B ,//R79
0xDF ,//R80
0x4F ,//R81
0x00 ,//R82
0x00 ,//R83
0x00 ,//R84
0x00 ,//R85
0x32 ,//R86
0x03 ,//R87
0x00 ,//R88
0x00 ,//R89
0xD0 ,//R90
0x07 ,//R91
0x05 ,//R92
0x00 ,//R93
0x00 ,//R94
0x00 ,//R95
0x00 ,//R96
0xD6 ,//R97
0x06 ,//R98
0x00 ,//R99
0x00 ,//R100
0x00 ,//R101
0x00 ,//R102
0x00 ,//R103
0xC4 ,//R104
0x09 ,//R105
0x00 ,//R106
0x00 ,//R107
0x00 ,//R108
0x00 ,//R109
0x00 ,//R110
0xC4 ,//R111
0x09 ,//R112
0x00 ,//R113
0x00 ,//R114
0x00 ,//R115
0x00 ,//R116
0x00 ,//R117
0xC4 ,//R118
0x09 ,//R119
0x00 ,//R120
0x00 ,//R121
0x00 ,//R122
0x00 ,//R123
0x00 ,//R124
0xC4 ,//R125
0x09 ,//R126
0x00 ,//R127
0x00 ,//R128
0x00 ,//R129
0x00 ,//R130
0x00 ,//R131
0xC4 ,//R132
0x09 ,//R133
0x00 ,//R134
0x00 ,//R135
0x00 ,//R136
0x00 ,//R137
0x00 ,//R138
0xC4 ,//R139
0x09 ,//R140
0x00 ,//R141
模拟SPI代码如下所示:
/**
* @brief Lmx2491寄存器参数配置
* @param LMX2491Config Num
* @retval 无
*/
void RadarVCO_LMX2491Conf(LMX2491Config Num)
{
uint16_t cnt=0,num=0;
uint16_t bit=0;
uint8_t bit0=0;
uint8_t const *RegPtr;
RegPtr = (uint8_t const *)&gLMX2491RegDef[Num];
LM_CS_EN();
RF_CLK_LOW();
VCO_Delay();
bit=0x0000;
for(cnt=0;cnt<16;cnt++){
if((bit & 0x8000) == 0x8000){
RF_MOSI_HIGH();
}else{
RF_MOSI_LOW();
}
RF_CLK_HIGH(); /* LMX2491下降沿 采集数据 */
VCO_Delay();
RF_CLK_LOW();
VCO_Delay();
bit <<= 1;
}
for(cnt=0;cnt<142;cnt++){
bit0=RegPtr[cnt];
for(num=0;num<8;num++){
if((bit0 & 0x80) == 0x80){
RF_MOSI_HIGH();
}else{
RF_MOSI_LOW();
}
RF_CLK_HIGH(); /* LMX2491下降沿 采集数据 */
VCO_Delay();
RF_CLK_LOW();
VCO_Delay();
bit <<= 1;
}
}
VCO_Delay();
LM_CS_DIS();
VCO_Delay();
}