打印

NRF24L01与51单片机端口连接电平匹配问题

[复制链接]
13802|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近在玩NRF24L01这个芯片。买的是模块,共有8个I/O口引出。除了VCC和GND外,SPI四个引脚:CS,SCK,MOSI, MISO,剩下的是芯片使能CE以及中断引脚IRQ。
     我用的是普通的51单片机AT89S52,只能5V供电。NRF24L01采用3.3V的供电。由于NRF24L01的I/O能够承受5V的电压,同时SCK,MOSI以及CS,CE对于NRF24L01而言都只是输入,不需要输出,因此直接与AT89S52的I/O相连。而MISO,以及IRQ,除了接受数据外,还要发数据给单片机,由于NRF24L01最高电平为3.3V,达不到AT89S52的最小输入高电平Vih。因此需要进行电平转换。请问我在这两个引脚上面,直接接两个4.7K上拉电阻到5V,行的通吗?谢谢。

相关帖子

沙发
bnm99| | 2010-3-10 11:47 | 只看该作者
没试过,我是用3.3V的,换单片机是最简单的方法,

使用特权

评论回复
板凳
mcu_lover|  楼主 | 2010-3-10 20:55 | 只看该作者
各位老师帮帮忙啊。

使用特权

评论回复
地板
chenpan161| | 2010-3-11 21:03 | 只看该作者
我看了一下,NLF2401的IO电流也不大,单片机的IO灌电流可以承受,直接接没有什么问题,如果实在担心的话,接一个1K左右的电阻限下流吧

使用特权

评论回复
5
sinanjj| | 2010-3-11 21:41 | 只看该作者
加个1k电阻就行.









当然最好是换个3.3v MCU

使用特权

评论回复
6
ShakaLeo| | 2010-3-11 23:03 | 只看该作者
如果输出口不是开漏的, 把这个输出口通过电阻上拉至5V应该不会起作用,在输出高电平的时候应该还是3.3V的,而且还会对3.3V芯片的电源有一定影响。还是用三极管做电平转换或者用电平转换芯片吧。

使用特权

评论回复
7
mcu_lover|  楼主 | 2010-3-12 08:00 | 只看该作者
谢谢楼上各位朋友。
6L ShakaLeo朋友一句话倒是提醒了菜鸟我。哎,不知道改到P0口会不会有作用

使用特权

评论回复
8
ShakaLeo| | 2010-3-12 09:03 | 只看该作者
51的P0口在不作为总线用的时候是开漏的,但如果跟nrf2401的输出口连接的话,因为nrf2401的输出口不是开漏输出,所以还是会把上拉的5V拉下来,或者上拉的5V会对nrf2401的输出端口造成损坏。
楼主从哪里看到的3.3V达不到89S52的输入高电平最小值啊,怎么我在手册上看到的是0.2VCC+0.9V啊,VCC=5V的话,1.9V以上就可以了,所以应该不用电平转换。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mcu_lover + 1
9
mcu_lover|  楼主 | 2010-3-12 10:07 | 只看该作者
51的P0口在不作为总线用的时候是开漏的,但如果跟nrf2401的输出口连接的话,因为nrf2401的输出口不是开漏输出,所以还是会把上拉的5V拉下来,或者上拉的5V会对nrf2401的输出端口造成损坏。
楼主从哪里看到的3.3V达不 ...
ShakaLeo 发表于 2010-3-12 09:03

非常感谢Shakaleo!
在你的指点下,我又重新翻看了AT89S52的datasheet,确实如你所言。呵呵,可能不仔细看datasheet,是我这样菜鸟的通病吧,这次长记性了,谢谢。


这样我就可以直接将NRF24L01的I/O和AT89S52的I/O直接连接了。
开漏输出我容易理解,就是输出高电平时输出悬空,需要外部上拉确定输出电平。而这里的三态输出,除了一个高电平,一个低电平,还有一个高阻态,这个高阻态一般起啥作用啊?谢谢。

使用特权

评论回复
10
ShakaLeo| | 2010-3-12 10:39 | 只看该作者
高阻态应该是一种近似悬空的状态,作用就是可以不干扰总线上的其它设备。假如您的MCU的SPI口上接的不是一个设备,而是两个或以上,MCU通过CE来选择和哪个设备通讯,那么MISO在不输出数据(没有被MCU的CE信号选中)的时候保持高阻态就很有必要了,不然就有可能和别的设备的输出电平有冲突。

使用特权

评论回复
11
chen3bing| | 2010-3-12 10:58 | 只看该作者
学习了。

使用特权

评论回复
12
mcu_lover|  楼主 | 2010-3-12 13:16 | 只看该作者
:)理解了。谢谢各位老师帮助,尤其是ShakaLeo。

使用特权

评论回复
13
maoweikeji| | 2010-4-18 11:39 | 只看该作者
必须电平匹配!

使用特权

评论回复
14
jewelhs| | 2011-5-2 12:50 | 只看该作者
楼主,您最后是怎么连接的呢,我现在是想直接用两节电池给NRF42L01供电,其他管脚就直接接到单片机的I/O口上,不知道是否可以,希望您能指点下,谢谢

使用特权

评论回复
15
ye269797168| | 2011-5-2 16:08 | 只看该作者
我也用过NRF24L01+AT89S52,NRF24L01我是用3.3V供电的,MCU就用5V,NRF24L01与MCU直接相连无问题

使用特权

评论回复
16
jewelhs| | 2011-5-2 17:33 | 只看该作者
谢谢.... 您的3.3v是怎么供电的

使用特权

评论回复
17
sytqq280787575| | 2011-9-19 09:40 | 只看该作者
直接连可以的,用过,不过是BK2421,输入电压允许到5V的
也可以试试另一种方法,MCU还是5V,2401 3V供电
MCU 的SPI用IO模拟,输出低就是低,输出高时转为输入,输入口接上拉电阻到2401 VDD(3.3V)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

82

帖子

1

粉丝