[CPLD] STM32如何通过SPT读取CPLD中的数值?

[复制链接]
1953|12
 楼主| 风之神515 发表于 2016-7-13 15:42 | 显示全部楼层 |阅读模式
各位大侠,我现在利用CPLD对3路外部脉冲进行计数处理问题描述如下:
1、CPLD对第一路脉冲只进行计数,每秒钟会有一个计数结果A[31:0],
2、CPLD对第二路不定宽的脉冲进行脉冲宽度测量,采用计数的方法,这时候每来一个脉冲会产生一个脉冲宽度计数结果B[15:0],
3、第三路同步骤2,同样会产生计数结果C[15:0],
4、现在我需要STM32利用spi每秒钟读取CPLD中的A,并对其清零;  实时读取B和C;

问题:各位大侠对此问题描述的实现方法有和高见? 求教!谢谢!

 楼主| 风之神515 发表于 2016-7-13 15:43 | 显示全部楼层
自己先顶一个
 楼主| 风之神515 发表于 2016-7-13 16:00 | 显示全部楼层
不要沉
玄德 发表于 2016-7-13 20:16 | 显示全部楼层
A、B、C数据是如何产生的,这个与SPI接口基本没关系,
各是各的事。

实际问题是:CPU如何用SPI读出A、B、C的值。
很多种思路,灵活性很大。


 楼主| 风之神515 发表于 2016-7-14 00:19 | 显示全部楼层
oayzw 发表于 2016-7-13 16:57
这三个活好像用STM32直接就能干好,不需要CPLD吧?

牛X点的CPLD有PLL,可以倍频,这样在测量不定宽度的随机脉冲宽度来说,精度更高一些,简单的计数,或者精度要求不太高的话,STM32完全可以胜任
 楼主| 风之神515 发表于 2016-7-14 00:21 | 显示全部楼层
玄德 发表于 2016-7-13 20:16
A、B、C数据是如何产生的,这个与SPI接口基本没关系,
各是各的事。

A数据我可以在MCU中定时每秒钟去读取(这里处理好竞争与冒险的关系),B和C的话是不是可以各自整一个FIFO,然后再存到一定数据之后,再触发MCU通过SPI去读取?
玄德 发表于 2016-7-14 08:22 | 显示全部楼层
风之神515 发表于 2016-7-14 00:21
A数据我可以在MCU中定时每秒钟去读取(这里处理好竞争与冒险的关系),B和C的话是不是可以各自整一个FIFO ...


可以,不限于此。
条条大路通罗马,选一条就是了。


gaoyuanping 发表于 2016-7-14 10:48 | 显示全部楼层
CPLD去触发中断不太好吧,比如当你触发了去读B和C的时候恰恰该读A了怎么办
2010wqz 发表于 2016-7-14 10:50 | 显示全部楼层
 楼主| 风之神515 发表于 2016-7-14 11:09 | 显示全部楼层
玄德 发表于 2016-7-14 08:22
可以,不限于此。
条条大路通罗马,选一条就是了。

您有没有可推荐的更好的方法?
 楼主| 风之神515 发表于 2016-7-14 11:11 | 显示全部楼层
gaoyuanping 发表于 2016-7-14 10:48
CPLD去触发中断不太好吧,比如当你触发了去读B和C的时候恰恰该读A了怎么办

这么说会有这种可能,用优先级来解决这个问题的话,会导致丢数,不知道您有没有什么好的想法?
waiter 发表于 2016-7-16 17:33 | 显示全部楼层
其实你每秒钟才读一次CPLD,也就是对实时性要求不高,那么怎么读都可以吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

110

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部