昨晚调试fpga与51通信时碰到一件很邪门的事情
fpga新手,昨晚写了个很简单的通信协议。P2口随便接一条线给fpga做时钟信号。
P1口做流水灯给fpga通信数据线。
fpga输出三条线到led上。
fpga代码
module temp(clk,led,i);
input clk;
input i;
output reg led=3'b111;
always@(negedge clk)
begin
led<=i;
end
endmodule
#include<reg52.h>
void yanshi(int x)
{
int a;
char b;
for(a=0;a<x;a++)
{
for(b=0;b<124;b++);
}
}
void main(void)
{
while(1)
{
P2=0xff;
P1=0x06;
P2=0x00;
yanshi(1250);//高电平时数据口准备数据,下降沿时将数据送出
P2=0xff;
P1=0x05;
P2=0x00;
yanshi(1250);
P2=0xff;
P1=0x03;
P2=0x00;
yanshi(1250);
}
} fpga是ep2c5t144c8,3.3v的fpga,其实我一直在担心3.3与5v会不兼容,其实我发现直接连就可以了。
接上线,发现流水灯正常。
但是,这时我拔掉单片机口的P2上的插线,保留fpga作为时钟的插线时,(就是拔掉一端,另一端保留)发现流水灯还可以继续流动,我彻底晕了,是谁提供的时钟啊,难道是无线电波吗?
接着,我再次拔掉fpga上的时钟的插线,发现流水灯又不跑了,fpga的排针上随便接个导体都能提供时钟吗? //p1口低三位是数据线,做流水灯变化
//p2口为时钟线
我晕啊,刚才按了下tab竟然就把帖子发出去了,我还没敲完呢 http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_639881RR0I6T.png
(原文件名:搜狗截图_2011-05-15_11-51-02.png) 确实邪乎,楼主拍个实际线路图上来?
页:
[1]