SPI协议比较简单实现,可以自己写个最低级的,我这刚好有个。大家不要笑话哈
module spi_m(spi_rst,
spi_mosi,
spi_miso,
spi_out,
spi_sck,
spi_ready,
);
input spi_mosi,spi_sck,spi_rst;
output [7:0] spi_out;
output spi_ready,spi_miso;
reg [3:0] count;
reg [7:0] spi_out;
assign spi_ready=count[3];
assign spi_miso=spi_out[7];
always@(negedge spi_sck)
begin
if(spi_rst==0)
begin
count<=4'b0000;
end
else
begin
spi_out[7:0]<={spi_out[6:0],spi_mosi};
if(count==4'b1000)
begin
count<=4'b0001;
end
else
begin
count<=count+1'b1;
end
end
end
endmodule
代码肯定是能用的,因为一年前测试通过,这两天也用了。这个是最精简的,但是只有一种模式,全当抛砖引玉了 |