风之神515 发表于 2016-7-13 15:42

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

各位大侠,我现在利用CPLD对3路外部脉冲进行计数处理问题描述如下:
1、CPLD对第一路脉冲只进行计数,每秒钟会有一个计数结果A,
2、CPLD对第二路不定宽的脉冲进行脉冲宽度测量,采用计数的方法,这时候每来一个脉冲会产生一个脉冲宽度计数结果B,
3、第三路同步骤2,同样会产生计数结果C,
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

LCR?

风之神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,也就是对实时性要求不高,那么怎么读都可以吧?
页: [1]
查看完整版本: STM32如何通过SPT读取CPLD中的数值?