打印

懒一下,STM32可以实现硬件反转吗?类似CPLD的功能

[复制链接]
1658|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
z_no1|  楼主 | 2012-5-9 16:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
就是不用程序进中断来处理,当预定的IO的触发沿到了,直接自动把设定的IO设为某个状态,类似于一个非门,关键是不用程序来处理,定时器自动捕获后反转,定时器功能还没看明白,想了解一下。这样可以把一些简单的逻辑处理用STM来做,不用再加一个CPLD了。还是很有意义的。
沙发
王紫豪| | 2012-5-9 18:26 | 只看该作者
74hc04 啊,几毛钱

使用特权

评论回复
板凳
香水城| | 2012-5-9 18:31 | 只看该作者
呵呵,这个题目比较有挑战。

也许可以做到,但可能会占用不少资源。

可以尝试使用定时器的TRIG触发DMA,用DMA传送一个只有2个单元的数组到GPIO,这2个单元分别包含对应GPIO的0和1。初始化DMA时,需要检查一下输入信号的极性,如果是"1",则DMA数组的第1个单元为"0",第2个单元为"1";如果输入信号的初始极性是"0",则DMA数组的第1个单元为"1",第2个单元为"0";然后配置DMA为循环模式,这样每次触发DMA传送时,就会间隔地输出"0"和"1"至指定的I/O端口。

在定时器端,只需要配置定时器的CH1和CH2分别为上升沿和下降沿捕获,这样TI1FP1和TI2FP2会分别在输入信号的上升沿和下降沿产生信号,然后产生TRIG输出至DMA。

下面2张图可以帮助理解:

STM32_DMA_Mapping.GIF (40.71 KB )

STM32_DMA_Mapping.GIF

STM32_GP_TIM_Block_Diagram.GIF (28.97 KB )

STM32_GP_TIM_Block_Diagram.GIF

使用特权

评论回复
地板
txcy| | 2012-5-9 18:40 | 只看该作者
LZ可以尝试一下

使用特权

评论回复
5
hsbjb| | 2012-5-9 18:52 | 只看该作者
楼主还是很有想法的

使用特权

评论回复
6
z_no1|  楼主 | 2012-5-9 19:02 | 只看该作者
HC04是没几个钱,但这样可以做一些简单的触发器功能,等于是一个小CPLD,这就不是几个钱了,而且IAP一次就都改了,维护也简单。MCU一直都缺这个功能。DMA的出现是一个里程碑。

使用特权

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

本版积分规则

223

主题

2644

帖子

10

粉丝