[ZLG-MCU] 高手请进 奇怪问题(P89V51 急急)???

[复制链接]
2617|7
 楼主| wahahaabc 发表于 2008-9-2 13:13 | 显示全部楼层 |阅读模式
偶的一个项目里面用到了P89V51,使用P89V51的P0口用软件模拟SPI接口和FPGA(EP2C6T144)通信。由于P89V51的供电电压是+5V,而FPGA的电压是+3.3V,所以利用P89V51的PO口是开漏端口的特性,外接10K上拉电阻,上拉到3.3V。硬件连接如下:<br />P89V51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FPGA<br />P0.4&nbsp;&nbsp;&nbsp;&nbsp;SPI_CLK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;全局时钟输入脚<br />P0.5&nbsp;&nbsp;&nbsp;&nbsp;SPI_MOSI&nbsp;&nbsp;&nbsp;&nbsp;I/O脚<br />P0.6&nbsp;&nbsp;&nbsp;&nbsp;SPI_MISO&nbsp;&nbsp;&nbsp;&nbsp;I/O脚<br />P0.7&nbsp;&nbsp;&nbsp;&nbsp;SPI_CS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I/O脚<br /><br />按照上述连接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上<br />#define&nbsp;&nbsp;SPI_CLK&nbsp;&nbsp;&nbsp;&nbsp;P1.0&nbsp;//&nbsp;从P0.4改为P1.0<br />其余的MCU和FPGA的程序都不做任何改变,就可以正常通信。<br /><br />各位大侠,这是怎么回事???希望各位大侠尽快回复
zlgmcu 发表于 2008-9-2 16:01 | 显示全部楼层

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

  
 楼主| wahahaabc 发表于 2008-9-2 16:37 | 显示全部楼层

RE:2楼

将SPI_CLK定义在P0.4&nbsp;和&nbsp;P1.0,用示波器来观察两者的波形,几乎一样,只不过P0.4的上升时间略微比P1.0慢一些,但是,通过更换P0.4的上拉电阻(例如:将上拉电阻改为1K),则上升时间会变的快些,和P1.0几乎没有差别。<br /><br />用双踪示波器(模拟示波器),通道1接SPI_CLK,通道2接SPI_MOSI,发现无论是P0.4还是P1.0作为SPI_CLK,其时序完全正确。<br />但是,通道1接SPI_CLK,通道2接SPI_MISO,则P0.4作为SPI_CLK,时序错误;P1.0作为SPI_CLK,时序正确。
 楼主| wahahaabc 发表于 2008-9-3 10:50 | 显示全部楼层

怎么没人

  
 楼主| wahahaabc 发表于 2008-9-3 14:26 | 显示全部楼层

顶一下

  
kenand 发表于 2008-9-3 14:54 | 显示全部楼层

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

  
 楼主| wahahaabc 发表于 2008-9-4 13:05 | 显示全部楼层

高电平完全正常

高电平为4.7V左右,低电平为0。<br /><br />换句话说,SPI_CLK定义在P0.4&nbsp;和&nbsp;P1.0,用双踪示波器观察对比两个引脚出的信号,几乎一摸一样。<br /><br />请各位大侠继续提出一些建议,谢谢
小熊猫 发表于 2008-9-8 09:10 | 显示全部楼层

呵呵,贴个波形图看看

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

119

主题

627

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部