在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1712|回复: 5

[解决] 多spi并行采样问题

[复制链接]
发表于 2021-10-21 20:44:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 rv_1101 于 2023-3-11 19:07 编辑

小弟最近使用zynq FPGA 做采样电路,遇到一个问题。想做一个用arm通过interconnet 外挂21路spi controller的电路, 去连续采集 另一块板子上的实时电流数据,其上面自带21个spi接口的 adc。

目前遇到的问题是,软件通过arm配置读取单个spi,要轮询21次,才能再回到第一个spi,相当于等待了20个配置时间,无法连续获取采样数据。
貌似高级些的interconnect 也只支持broadcast write, 不支持read.

有什么方法去连续并行读取所有spi的采集数据吗?
有什么好的设计方案吗?
业界有类似的问题吗?
谢谢大佬们。。。

image.png

发表于 2021-10-22 08:34:50 | 显示全部楼层
自己写一个21路SPI控制器并行采集,并把数据缓存到FIFO中 ARM读FIFO中数据即可
 楼主| 发表于 2021-10-22 10:33:57 | 显示全部楼层


ham8665746 发表于 2021-10-22 08:34
自己写一个21路SPI控制器并行采集,并把数据缓存到FIFO中 ARM读FIFO中数据即可 ...


这是个什么样的电路,属于完全自创的IP吗?有类似的参考吗? 感觉像是把一个spi 给魔改了。。
发表于 2021-10-22 10:44:21 | 显示全部楼层
本帖最后由 ham8665746 于 2021-10-22 10:45 编辑


rv_1101 发表于 2021-10-22 10:33
这是个什么样的电路,属于完全自创的IP吗?有类似的参考吗? 感觉像是把一个spi 给魔改了。。
...


自己写一个axi_slave,包含21个spi控制器,每一路spi包含一个FIFO,当启动SPI数据收发,就数据缓存到FIFO中,ARM通过AXI接口读FIFO数据即可,也可以通过AXI接口配置每一路SPI的通信。不使用VIVADO自带的AXI_SPI控制器。如果数据量比较大,也可以直接写入DDR, PS和PL共享一段DDR空间。
 楼主| 发表于 2021-10-22 11:26:52 | 显示全部楼层


ham8665746 发表于 2021-10-22 10:44
自己写一个axi_slave,包含21个spi控制器,每一路spi包含一个FIFO,当启动SPI数据收发,就数据缓存到FIFO ...


多谢大佬,这个意思我大概理解了。
由于水平有限,我打算这么改:
在原有基础上,enable 每个spi fifo 到 32x256,然后关键就是配置完每个spi后,让其一直把数据存在自身的fifo中,等有fifo满了,就让arm去读?
感觉除了是能fifo外,主要的改动在软件方面?
 楼主| 发表于 2021-10-22 13:45:47 | 显示全部楼层


ham8665746 发表于 2021-10-22 10:44
自己写一个axi_slave,包含21个spi控制器,每一路spi包含一个FIFO,当启动SPI数据收发,就数据缓存到FIFO ...


不好意思,刚刚又查了文档,貌似spi只能配一次,读一次数据,不能配完,持续读吧。
这样的话,就需要持续不停的配spi,读数据。。感觉又走远了啊。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 22:07 , Processed in 0.027010 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表