发 帖  
原厂入驻New
[问答] 如何在zynq中将GPIO转换为SPI控制器?
62 xilinx 控制器
分享
亲爱的xilinx社区,
因为我的应用需要3个SPI控制器,而且我已经在Zynq中使用了现有的2个SPI控制器。
我知道在生成比特流后如何在linux内核中完成此操作
但是,因为我是Vivado的新手,你能不能帮我解决以下问题
1.对于第3个SPI控制器,可以将GPIO转换为SPI吗?
你能告诉我如何在vivado中配置4个gpio信号为spi_clk,spi_cs,spi_mosi,spi_miso吗?
请尽早做好
等待你的回复
提前谢谢了
0
2020-5-21 09:13:54   评论 分享淘帖 邀请回答

相关问题

9个回答
@srinivasando你想用PS MIO或PL IO作为SPI引脚吗?
对于PS MIO,正如您所注意到的,只有2个spi控制器,因此您可以选择在sw中实现一个bit-banging spi控制器,或者通过扩展芯片选择逻辑将您的设备添加到现有控制器(您确定需要第三个)
控制器而不是芯片选择引脚?)
另一种选择是将PL IO用于SPI引脚,并使用fpga结构向PL添加一个spi控制器。
一旦正确配置设备树,这看起来就像是现有的linux控制器。
- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。
2020-5-21 09:22:33 评论

举报

非常感谢您的快速回复,
我有两个要求
1.第一个要求:我需要第三个SPI控制器,我计划在linux和设备树中实现一个bit-banging spi控制器,我计划使用gpio 0 bank的4个引脚(ps7-gpio @ e000a000)
您能否请求生成比特流需要做哪些更改?或者您可以提供一些示例,说明如何配置gpio引脚并将其映射到PL引脚以及如何在设备树中为bit bang指定库号?
2.第二个要求:请您告诉我如何在vivado,设备树和Linux内核中使用芯片选择引脚来使用现有的控制器。
请告诉我如何在用户空间中验证这一点
请尽早做好
等待你的回复
提前谢谢了
2020-5-21 09:41:13 评论

举报

你能否提供输入如何通过EMIO或MIO在vivado中配置现有GPIO模块的引脚/位,因为我不想使用axi-gpio
请尽早做好
等待你的回复
提前谢谢了
2020-5-21 09:48:24 评论

举报

亲爱的社区
1.我通过MIO而不是MIO使用GPIO,因为我们不需要Quad spi用于我们的应用程序我使用了4个引脚作为GPIO0_1,GPIO0_2,GPIO0_3和GPIO0_4用于我的SPI gpio bit bang驱动程序在linux中
那么请告诉我下一步如何在.vhd,.bd和.xdc中以vivado映射,声明和约束这4个gpios引脚,并举例说明
2.因此我可以在devicetree和linux中为SPI bit bang配置这4个引脚
请告诉我这种配置即GPIO作为MIO并在linux中访问它的方式是否可行
请尽早做好
热切期待你的回复
提前谢谢了
2020-5-21 10:00:01 评论

举报

嗨,
能不能让我知道什么时候我可以得到上述查询的回复,因为我急切地等待你的输入,并且在没有你输入的情况下被卡住而无法继续前进
能否请您纠正我,如果我错过了在配置现有的GPIO控制任何东西(我刨使用gpio0_0,gpio0_1,gpio0_2,gpio0_3)
我需要配置gpio0_0 - 输入
gpio0_1 - 输出
gpio0_2 - 输出
gpio0_3 - 输出
1.所以在附加的快照中修改了块设计
你可以帮我修改附件中的system_top.vhd以获得上述gpio配置的连接吗?
3.Constraints文件已修改set_property PACKAGE_PIN L21 [get_ports {GPIO_SPI [0]}] set_property PACKAGE_PIN L22 [get_ports {GPIO_SPI [1]}] set_property PACKAGE_PIN J21 [get_ports {GPIO_SPI [2]}] set_property PACKAGE_PIN J22 [get_ports {GPIO_SPI [3
]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI [1]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI [3]}
]
files.zip 1068 KB
2020-5-21 10:11:10 评论

举报

我按照我的知识和尝试修改了system_top.vhd。
我附上了.bd和system_top.vhd的快照
但面对错误,请你告诉我为什么会遇到这个错误
[Synth 8-1789]无法更新'in'对象gpio_spi_in [“/media/n008/SECONDDRIVE/local_workspace/svn_src/trunk/platform/zynq/rtl/system_top.vhd":441] [共17-69]命令失败:
合成失败 - 请参阅控制台或运行日志文件以获取详细信息
2.xdc更改如下
#FPGA模块上的LED set_property PACKAGE_PIN L21 [get_ports {GPIO_SPI_IN [0]}] set_property PACKAGE_PIN L22 [get_ports {GPIO_SPI_OUT [1]}] set_property PACKAGE_PIN J21 [get_ports {GPIO_SPI_OUT [2]}] set_property PACKAGE_PIN J22 [get_ports {GPIO_SPI_OUT [3
]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI_IN [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI_OUT [1]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI_OUT [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_SPI_OUT [3]}
]
请尽早做好
提前谢谢了
file.zip 454 KB
2020-5-21 10:19:26 评论

举报

亲爱的社区
任何人都可以回复以下查询,1。生成比特流请你告诉我如何配置一个基于GPIO -EMIO的引脚作为输入,因为我已将3个引脚配置为输出,我需要将一个引脚配置为输入
在GPIO-EMIO中(在vhdl代码中要做什么)2。
我试图通过在设备树别名中添加以下内容来创建虚拟节点{ethernet0 =& ps7_ethernet_0;
i2c0 =& ps7_i2c_0;
i2c1 =& ps7_i2c_1;
serial0 =& ps7_uart_1;
serial1 =& ps7_uart_0;
spi0 =& ps7_spi_0;
/ * spi1 =& ps7_qspi_0; * / spi1 =& ps7_spi_1;
spi_gpio =& spi_gpio;
};
spi_gpio:spi-gpio {compatible =“spi-gpio”;
#address-cells =;
#size-cells =;
/ *范围;
* / gpio-mosi =;
gpio-miso =;
gpio-sck =;
cs-gpios =;
num-chipselects =;
status =“ok”;
spidev @ 2 {compatible =“linux,spidev”;
reg =;
/ *#address-cells =;
* / / *#size-cells =;
* / spi-max-frequency =;
};
我已经在内核中配置了(CONFIG_SPI_GPIO = y)内核启动之后会抛出以下错误,是否由于gpio配置不正确而对比特流有任何依赖性?spi_gpio spi-gpio:找不到gpio-sck属性
请尽早做好
等待你的回复
2020-5-21 10:26:19 评论

举报

嗨muzaffer,
我的查询的任何更新/输入都被阻止输入,因为我等待您的输入安静很长时间?
主要是我需要你的两个输入
1.我已将4个引脚配置为GPIO EMIO输出,其中可以使用部分GPIO EMIO引脚作为输入,如果是,可以在.vhdl中完成此配置。
.bd和xdc更改,请求您提供相同的代码片段
2.如何在设备树中映射这个GPIO EMIO号如前面提到的那样,下面的引脚映射在设备树中是否正确? 
gpio-mosi =;
gpio-miso =;
gpio-sck =;
cs-gpios =;
如果您不是此查询的相关人员,请将其重定向到相应的人员
热切期待你的回复
2020-5-21 10:33:32 评论

举报

嗨muzaffer,
我的查询的任何更新/输入都被阻止输入,因为我等待您的输入安静很长时间?
主要是我需要你的两个输入
1.我已将4个引脚配置为GPIO EMIO输出,其中可以使用部分GPIO EMIO引脚作为输入,如果是,可以在.vhdl中完成此配置。
.bd和xdc更改,请求您提供相同的代码片段
2.如何在设备树中映射这个GPIO EMIO号如前面提到的那样,下面的引脚映射在设备树中是否正确? 
gpio-mosi =;
gpio-miso =;
gpio-sck =;
cs-gpios =;
如果您不是此查询的相关人员,请将其重定向到相应的人员
热切期待你的回复
2020-5-21 10:47:32 评论

举报

只有小组成员才能发言,加入小组>>

94个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表