598598 发表于 2011-5-15 11:34:19

昨晚调试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);
       }
}

598598 发表于 2011-5-15 11:43:00

fpga是ep2c5t144c8,3.3v的fpga,其实我一直在担心3.3与5v会不兼容,其实我发现直接连就可以了。
接上线,发现流水灯正常。
但是,这时我拔掉单片机口的P2上的插线,保留fpga作为时钟的插线时,(就是拔掉一端,另一端保留)发现流水灯还可以继续流动,我彻底晕了,是谁提供的时钟啊,难道是无线电波吗?
接着,我再次拔掉fpga上的时钟的插线,发现流水灯又不跑了,fpga的排针上随便接个导体都能提供时钟吗?

598598 发表于 2011-5-15 11:44:38

//p1口低三位是数据线,做流水灯变化
//p2口为时钟线


我晕啊,刚才按了下tab竟然就把帖子发出去了,我还没敲完呢

598598 发表于 2011-5-15 11:50:41

http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_639881RR0I6T.png
(原文件名:搜狗截图_2011-05-15_11-51-02.png)

brahen 发表于 2011-5-15 22:44:44

确实邪乎,楼主拍个实际线路图上来?
页: [1]
查看完整版本: 昨晚调试fpga与51通信时碰到一件很邪门的事情