如何检测无线模块的好坏(问题是解决了,不过又有个疑...
时间:10-02
整理:3721RD
点击:
RT,前两天买了两个无线通信模块,芯片是SI24R01。
看了下资料,和nRF24l01是完全兼容的,程序除了输出功率控制寄存器0x06设置有点不同其他都一样。
但是把它装上学习板后试着进行与单片机之间的通信,连读取寄存器数据都读不到(读到的是0xff)。换上另一块也一样。
求解可能是哪方面的问题,程序?模块损坏?要怎么检查呢?
PS:用万用表测晶振引脚发现几乎为0.是这个的问题么?还是要发送接受数据才启动晶振?
读寄存器我是 state=read_SPI(0x07);
uchar rw_SPI(uchar date)
{
uchar i;
SCK=0;
for(i=8;i>0;i--)
{
MOSI=date&0x80;
date=date<<1;
_nop_();
SCK=1;
_nop_();
date=MISO|date;
SCK=0;
}
return date;
}
uchar read_SPI(uchar addr)
{
uchar temp;
CSN=0;
rw_SPI(addr);
temp=rw_SPI(0xff);
CSN=1;
return temp;
}
补充下硬件电路哈。我学习板上的无线模块是预留好了的。VCC接3.3v,其他6个数据引脚与单片机通过1K的电阻相连。
再顶下,希望懂的大大帮忙解答或给建议
再顶次,目前打算的准备:
1.加电容去纹波
2.找其他程序看看有没有不同
帮顶,但不懂,希望有高手到来。
自己找出原因了,开发板本身设计不怎么合理,在MISO输出低电平时(检测到是0.4V),由于限流电阻,单片机口上是2.0V。由于单片机是TTL电平,这个数还是勉强被算成高电平了。
不过这样算起来还是有个问题,我IO口外接上拉电阻约10K此时连同单片机内部的上拉电阻,总的上拉电阻也还是接近10K,而限流电阻为1K(连接在单片机和模块之间)。模块MISO脚如果是0.4V的话,单片机引脚不是应该分压在0.8V左右么,怎么会是1.9 2.0呢?
本来想大致画下电路图的,不过AD一段时间没用,又要注册了,没时间去弄。就用画图随意画了下,请勿见笑。
海尔集成半导体推出了个芯片型号hw3000,用量巨大,距离有2.5公里双向,与si4463差不多,比si4432 si4438远,比A7108 和A7139好很多,如果是10kpbs,比sx1278 远。LoRa没办法快速率,深圳市硅传科技有限公司可了解详细资料,推荐!http://www.toutiao.com/i6434355065112232450/