MCU怎么实现使用1个信号稳定触发另一个信号
项目需要使用1个输入信号用于触发信号,输出一个和输入信号同步的信号,可以直接复制输入信号的电平,但需要保证2个信号之间的延时稳定,抖动最好控制在50ns以内;目前使用中断触发,检测到信号上升沿或下降沿时,在中断服务程序在立即控制输出信号为高电平或低电平,但实测最大抖动在200ns左右,使用的芯片是STM32F407,时钟已配置到最高168MHz,请问各位大神有什么办法可以降低信号的抖动,保证输出信号和输入信号之间的延时是稳定的(延时不重要,关键是保证输出信号和输入信号的时间差是稳定的,抖动要控制在50ns以内)。 门电路实现或者CPLD,用MCU在这个时间尺度上,肯定会有抖动。 本帖最后由 Himem 于 2023-6-27 21:42 编辑先关掉M4的Icache/Dcache再试试
或者让cpu不参与,靠硬外设实现,比如
Gated Timer mode
输入信号接定时器的时钟使能与定时器初值复位,定时器溢出信号为输出?
50ns相当于20MHz,407的定时器最高可工作于84MHz,应该是可以满足要求的
定时器的ETR作为输入,CHx作为输出,定时器配置为由ETR触发的单脉冲模式即可 对呀 你输入端 接一个门电路 (好像是非门是最快的)然后直接 1拖二 ,输出的信号 一边给单片机一边给你最终负载 为毛不硬件做?软件监控型号电平? 直接用不好?这么转的意义是啥? STC某些型号有个直通模式,不知是做什么用的,后来的型号好像又没有这个选项了
这不就该是逻辑门的活么,非要整软件
多串几个反相器,要多少延迟都有 用个逻辑器件轻松解决了,延时取决于你的时钟输入。 树莓派 RP2040有这个功能,每个引脚都可以进行底层逻辑编程 用自带的比较器输出 用中断不容易实现,一个咬尾中断和不咬尾中断就抖动6个时钟周期 Stm32Motor 发表于 2023-6-28 09:32
直接用不好?这么转的意义是啥?
(引用自7楼)
固件里面还需要做其它处理,不仅仅是检测这个信号 siguo 发表于 2023-6-28 15:10
用自带的比较器输出
(引用自12楼)
怎么触发? 处理完再输出信号?
页:
[1]