打印
[ZLG-MCU]

高手请进 奇怪问题(P89V51 急急)???

[复制链接]
1819|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wahahaabc|  楼主 | 2008-9-2 13:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
偶的一个项目里面用到了P89V51,使用P89V51的P0口用软件模拟SPI接口和FPGA(EP2C6T144)通信。由于P89V51的供电电压是+5V,而FPGA的电压是+3.3V,所以利用P89V51的PO口是开漏端口的特性,外接10K上拉电阻,上拉到3.3V。硬件连接如下:
P89V51              FPGA
P0.4    SPI_CLK     全局时钟输入脚
P0.5    SPI_MOSI    I/O脚
P0.6    SPI_MISO    I/O脚
P0.7    SPI_CS      I/O脚

按照上述连接MCU无法和FPGA通信(上拉电阻改为1K,2K,4.7K,10K,20K,50K都不行),但是,只要将单片机的SPI_CLK脚换到除了P0口以外的任何一个I/O引脚上,就可以正常通信,经过3天的连续疲劳测试,没有任何通信错误发生。比如说:将SPI_CLK脚从P0.4换到P1.0上,MCU端的程序只是将SPI_CLK脚定义到P1.0上
#define  SPI_CLK    P1.0 // 从P0.4改为P1.0
其余的MCU和FPGA的程序都不做任何改变,就可以正常通信。

各位大侠,这是怎么回事???希望各位大侠尽快回复

相关帖子

沙发
zlgmcu| | 2008-9-2 16:01 | 只看该作者

用示波器看看P0.4端口的信号波形是否有异常?

使用特权

评论回复
板凳
wahahaabc|  楼主 | 2008-9-2 16:37 | 只看该作者

RE:2楼

将SPI_CLK定义在P0.4 和 P1.0,用示波器来观察两者的波形,几乎一样,只不过P0.4的上升时间略微比P1.0慢一些,但是,通过更换P0.4的上拉电阻(例如:将上拉电阻改为1K),则上升时间会变的快些,和P1.0几乎没有差别。

用双踪示波器(模拟示波器),通道1接SPI_CLK,通道2接SPI_MOSI,发现无论是P0.4还是P1.0作为SPI_CLK,其时序完全正确。
但是,通道1接SPI_CLK,通道2接SPI_MISO,则P0.4作为SPI_CLK,时序错误;P1.0作为SPI_CLK,时序正确。

使用特权

评论回复
地板
wahahaabc|  楼主 | 2008-9-3 10:50 | 只看该作者

怎么没人

使用特权

评论回复
5
wahahaabc|  楼主 | 2008-9-3 14:26 | 只看该作者

顶一下

使用特权

评论回复
6
kenand| | 2008-9-3 14:54 | 只看该作者

观察高电平是否正常(到5V),低电平是否正常(到0V)

使用特权

评论回复
7
wahahaabc|  楼主 | 2008-9-4 13:05 | 只看该作者

高电平完全正常

高电平为4.7V左右,低电平为0。

换句话说,SPI_CLK定义在P0.4 和 P1.0,用双踪示波器观察对比两个引脚出的信号,几乎一摸一样。

请各位大侠继续提出一些建议,谢谢

使用特权

评论回复
8
小熊猫| | 2008-9-8 09:10 | 只看该作者

呵呵,贴个波形图看看

使用特权

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

本版积分规则

119

主题

627

帖子

0

粉丝