|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-10-10 10:09:30
|
显示全部楼层
本帖最后由 小滑头520 于 2012-10-11 10:04 编辑
kebaojun305 发表于 2012-10-10 08:46 ![](static/image/common/back.gif)
只是用FPGA做个SPI的从设备 不难啊。
module SPI_send_n(Cs,Clk,D_in,Sdo);
parameter Wei=32;
input Cs;
input Clk;
input [(Wei-1):0] D_in;
output reg Sdo;
reg[Wei:0] Date_in;
always@(negedge Clk)
begin
if (Cs)
begin
Date_in[Wei:0]=D_in[(Wei-1):0];
Date_in[Wei]=1'b0;
Sdo=1'b0;
end
else if(Cs==0)
begin
Date_in=Date_in<<1;
Sdo=Date_in[Wei];
Date_in[0]=0;
end
end
endmodule
用示波器检测Sdo脚但是没有波形 为啥呢? 单片机cs clk 都产生了
单片机这样读
uchar Recive_char()
{
uchar i=8;
uchar Date;
Clk=1; //先给一个下降沿来更新FPGA里面的值
nop;
nop;
Clk=0;
Cs_in=1;
nop;
nop;
nop;
Cs_in=0;
Clk=1;
while(i) //下降沿的时候采集数据
{
Clk=0; //FPGA的数据发送到MISO总线上
nop;
nop;
Date<<=1;
if(Miso)
Date=Date|1;
i--;
Clk=1;
}
Cs_in=1;
return Date;
}
哈哈· 现在搞定了···· |
|