最近在调4463这颗芯片,结果调了一周还没有调出来,所以请各位大神指教:
si4463执行reset后,再执行power_up,发现NIRQ引脚正常拉低,之后询查CTS发现SDO一直为高电平,不管发什么命令不变,且只有2V,芯片是3V供电。
以下是代码的大致示意:
void main()
{
reset();
power_up();
CheckCTS();
......
CheckCTS();
........
CheckCTS();
while(1)
{
..........
}
}
/************我发现程序可以正常跑下去,但执行reset()和power_up()时表现正常,在执行checkCTS()时发送0x44也能读出0xFF,但之后发送0xFF后还是读出0xFF,我看一些例程询查CTS发送接收到的0xFF,会读出0x00,后面查看发现SDO引脚一直为高,不知道是为什么?******************************/
void reset()
{
SDN=1;
DelayUs(400);
SDN=0;
DelayMs(5);
}
void power_up()
{
SendCommand(7,&command[0]); // 0x02, 0x01, 0x00, 0x01, 0xC9, 0xC3, 0x80
}
void CheckCTS()
{
uint8_t CTSValue;
do{
CTSValue=SPIbyte_WRITE(CMD_CTS); //0x44
SPIbyte_WRITE(CTSValue);
}
while(CTSValue!=u8bitFF);
}
|