各位工程师,你们好
我现在想用PIC单片机调试TRF7970A芯片模块,开发近距离通信项目。模块是从网上购买的,根据官方TRF7970ATB电路搭建的TRF7970A电路模块。
我目前调试的目的是,用两个模块在NFC(106kbps)模式下进行无线通信数据传输。
单片机与TRF7970A芯片的连线方式如下:
EN2接VSS,EN接RA4,IRQ接INT1,I/O_0接VSS,I/O_1接VDD,I/O_2接VDD,I/O_4接RA5,I/O_6接RC4,I/O_7接RC5,DATA_CLK接RC3,ASK/OOK接VSS。
我想采用支持VSS的SPI方式与TRF7970A芯片通信,其中SPI方式是通过单片机的IO口模拟的。我参考官方的MSP430程序进行修改,目前单片机能够与TRF7970A芯片通信,可以写直接命令,写寄存器和读取寄存器。
但是有一些问题需要帮忙,麻烦不吝赐教:
1、TRF7970A芯片刚启动后,如果第一条指令是单一写寄存器的话,好像是写不进去的。如果是连续写寄存器的话,第一条也是写不进去,而后面紧接着的都可以写进去。如果先读取寄存器,再单一写寄存器的话,是可以成功的。请问这个芯片对寄存器的写控制,是不是都是先读取,再写?
2、请问TRF7970A芯片进行无线发送TX的时候,控制顺序是不是这样的:直接指令有CRC的传送(0x11)——写寄存器TX长度字节1(0x1D)——写寄存器TX长度字节2(0x1C)——向FIFO(0x1F)传送相应数量的发送数据。我这么做的,通过示波器监测TX_OUT引脚电压信号,可以看到有震荡波出来,而且其他IO口信号也会受到震荡干扰。请问按照上述方式,是不是正确发送了数据?
3、我有两块TRF7970A芯片模块,一块按照2的方式不停发送数据,另一块想接受数据。但是输入了直接指令启用接收器(0x17)后,没有中断出来,用示波器监测RX_IN1也没有震荡信号,即使两块模块的天线靠得很近。后面使用直接指令测试外部RF,测量RSSI(0x0F)为0x40。
我又进行试验,如果输入直接指令执行RF冲突避免(0x04),可以看出RX_IN1引脚有震荡,IRQ响应,但是读取IRQ寄存器(0x0C)值为0x04。如果我断开发射模块的电源,重新在接收模块里输入直接指令执行RF冲突避免(0x04),RX_IN1引脚没有震荡,IRQ响应,但是读取IRQ寄存器(0x0C)值为0x04。
如何才能正确的接收发射模块发射的数据,请问正确的接收模块接收数据的流程是怎么样的?
以上是我目前碰到的问题,主要就是不知道怎么接收无线数据。
