Raspberry pi 使用spidev从Pi到FPGA的32位数据传输

Raspberry pi 使用spidev从Pi到FPGA的32位数据传输,raspberry-pi,fpga,spi,Raspberry Pi,Fpga,Spi,我正在尝试使用spi在Pi和FPGA之间发送和接收32位数据。因此,我将Pi设置为主,FPGA设置为从。并使用spidev中的xfer2函数。但是,我无法读取数据。我怎样才能修好它 用于决定读取或写入周期的前4个字节。最后4个字节是要传输到FPGA的数据。例如,如果前4个字节为0x00000000,则这是写入周期。最后4个字节被传输到FPGA。因此,我想使用xfer2发送数据。像这样,xfer2([0x00000000,0x000000ff])。但是,它不起作用。所以,我认为xfer2每秒钟只传

我正在尝试使用spi在Pi和FPGA之间发送和接收32位数据。因此,我将Pi设置为主,FPGA设置为从。并使用spidev中的xfer2函数。但是,我无法读取数据。我怎样才能修好它

用于决定读取或写入周期的前4个字节。最后4个字节是要传输到FPGA的数据。例如,如果前4个字节为0x00000000,则这是写入周期。最后4个字节被传输到FPGA。因此,我想使用xfer2发送数据。像这样,xfer2([0x00000000,0x000000ff])。但是,它不起作用。所以,我认为xfer2每秒钟只传输1字节的数据。我将其更改为xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff])

而且,不管我发送了什么数据,这段代码只是打印出来[0,0,0,0,0,0,0]

下面是我的简单spi测试代码

导入spidev
导入时间
spi=spidev.spidev()
spi.开启(0,1)
spi.最大转速=190000000
尽管如此:
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x04])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x10])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x20])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x40])写入
睡眠时间(0.1)
resp=spi.xfer2([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00])读取
打印(resp)
睡眠时间(0.1)
resp1=spi.xfer2([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80])写入
睡眠时间(0.1)
这就是结果


也许你也可以阅读一下它的工作原理,如果你在与你的设备通话时遇到了根本性的困难,你应该提供一份你的设置和
/boot/config.txt
文件的内容。