TI中文支持网
TI专业的中文技术问题搜集分享网站

5501读SX1257状态寄存器

我用5501的MCBSP1接口连接SX1257的SPI接口控制其寄存器的读写。SX1257寄存器的读写时序如下图:

寄存器如下:

程序如下:

 Uint16 SPI_ReadReg(Uint16 addr)

{

Uint16 value=0;

addr &= 0x7f;

hMcbsp=MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);

SPI_8bit(hMcbsp);

 

while(!MCBSP_xrdy(hMcbsp)){};

MCBSP_write16(hMcbsp,addr);

while(!MCBSP_rrdy(hMcbsp)){};

value=MCBSP_read16(hMcbsp);

SPIEND_Delay();

MCBSP_close(hMcbsp);

return value;

}

执行该程序读出的寄存器只与寄存器的初始值不一致,并且将5501配置成不同的时钟读数也不一致,但都与寄存器的初始值不相符。

我用PLL_setFreq(0,15,0,0,0,1,0)函数配置的时钟,有源晶振为10MHz,SX1257的SPI接口最高工作时钟为10MHz,所以应该没有超出其时钟范围。

想请教一下老师,我应该从哪些方面查找程序的问题。

谢谢。

Shine:

试试在读之前加dummy write

while(!MCBSP_xrdy(hMcbsp)){};

MCBSP_write16(hMcbsp,0);

Meng Huang1:

回复 Shine:

加了空写读出的数据也不正确呢?所有寄存器的值读出来都是1

Meng Huang1:

回复 Shine:

加了

while(!MCBSP_xrdy(hMcbsp)){};

MCBSP_write16(hMcbsp,0);

结果也不正确呢?所有寄存器的值读出来都是1。

赞(0)
未经允许不得转载:TI中文支持网 » 5501读SX1257状态寄存器
分享到: 更多 (0)