打印
[CPLD]

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

[复制链接]
1587|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的值。
很多种思路,灵活性很大。


使用特权

评论回复
5
风之神515|  楼主 | 2016-7-14 00:19 | 只看该作者
oayzw 发表于 2016-7-13 16:57
这三个活好像用STM32直接就能干好,不需要CPLD吧?

牛X点的CPLD有PLL,可以倍频,这样在测量不定宽度的随机脉冲宽度来说,精度更高一些,简单的计数,或者精度要求不太高的话,STM32完全可以胜任

使用特权

评论回复
6
风之神515|  楼主 | 2016-7-14 00:21 | 只看该作者
玄德 发表于 2016-7-13 20:16
A、B、C数据是如何产生的,这个与SPI接口基本没关系,
各是各的事。

A数据我可以在MCU中定时每秒钟去读取(这里处理好竞争与冒险的关系),B和C的话是不是可以各自整一个FIFO,然后再存到一定数据之后,再触发MCU通过SPI去读取?

使用特权

评论回复
7
玄德| | 2016-7-14 08:22 | 只看该作者
风之神515 发表于 2016-7-14 00:21
A数据我可以在MCU中定时每秒钟去读取(这里处理好竞争与冒险的关系),B和C的话是不是可以各自整一个FIFO ...


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


使用特权

评论回复
8
gaoyuanping| | 2016-7-14 10:48 | 只看该作者
CPLD去触发中断不太好吧,比如当你触发了去读B和C的时候恰恰该读A了怎么办

使用特权

评论回复
9
2010wqz| | 2016-7-14 10:50 | 只看该作者
LCR?

使用特权

评论回复
10
风之神515|  楼主 | 2016-7-14 11:09 | 只看该作者
玄德 发表于 2016-7-14 08:22
可以,不限于此。
条条大路通罗马,选一条就是了。

您有没有可推荐的更好的方法?

使用特权

评论回复
11
风之神515|  楼主 | 2016-7-14 11:11 | 只看该作者
gaoyuanping 发表于 2016-7-14 10:48
CPLD去触发中断不太好吧,比如当你触发了去读B和C的时候恰恰该读A了怎么办

这么说会有这种可能,用优先级来解决这个问题的话,会导致丢数,不知道您有没有什么好的想法?

使用特权

评论回复
12
waiter| | 2016-7-16 17:33 | 只看该作者
其实你每秒钟才读一次CPLD,也就是对实时性要求不高,那么怎么读都可以吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

110

帖子

0

粉丝