Uplate 发表于 2013-12-26 23:14:44

spi求指导

cpld实现spi从机,控制数码管
16位spi数据,上升沿数据输入从机,空闲时钟为低,相位无延迟
代码如下:
always @ (posedge spi_clk)
begin
        if(!spi_ste)
        begin
                rxbuf_reg = MOSI;
                rxbuf_reg = rxbuf_reg<<1;
        end
end

always @ (posedge spi_ste)
begin
        rxbuf <= rxbuf_reg;
end

目前的问题是接收到的数据最后一位丢失了,最后一位都为0,求高手指导,谢谢

wyeth 发表于 2013-12-27 09:28:12

always @ (posedge spi_clk) 改成always @ (negedge spi_clk)s试下看。

Uplate 发表于 2013-12-27 12:36:37

不是这个原因,的确是上升沿采样,我试过了
回去用示波器抓个波形看下吧

sme 发表于 2013-12-28 10:15:05

always @ (posedge spi_clk)
begin
      if(!spi_ste)
      begin
                rxbuf_reg <= {rxbuf_reg,MOSI};
      end
end

always @ (posedge spi_ste)
begin
      rxbuf <= rxbuf_reg;
end

cht-rtos 发表于 2013-12-28 10:24:24

首先看你spi设备的时序,然后用示波器测量一下波形对比一下应该就能判断原因了
页: [1]
查看完整版本: spi求指导