zhengfengran 发表于 2012-11-13 01:47:53

请教关于多路pwm输出与捕获的问题。

请问遥控接收器的六通道pwm输出是同时输出还是轮流输出的?

如果使用STM32芯片作为飞控控制芯片。接收来自遥控的pwm控制信号。可以设定上升沿中断和下降沿中断,通过定时器得到pwm脉冲的宽度。

问题来了,如果遥控器的几个通道的pwm是同时输出的,那么stm32不可能同时相应六个中断。轮流响应必然造成脉冲宽度上的误差。

stm32输出pwm控制电调的信号,应该是可以同时输出的。

本人初学者,希望高手能详细指教。谢谢!{:smile:}

good_luck 发表于 2012-11-13 08:06:19

响应其中一个中断时关闭其他中断,这样轮流响应中断,速度很快的不就和同时响应一样了么?

飛為 发表于 2012-11-13 22:41:32

楼上做法可行,没用过stm32,不过也可以设定优先级,响应重要的中断,中断里面不做复杂程序,只做标志位或者赋值==

sniper888 发表于 2012-11-14 22:26:47

提前设置好中断优先级,中断服务程序里不做其他太多的处理,这样相应速度应该可以满足要求

余额为0 发表于 2012-11-24 01:11:16

zhengfengran 发表于 2012-11-24 21:52:23

余额为0 发表于 2012-11-24 01:11 static/image/common/back.gif
STM32有同时输出多路PWM波的,看定时器一章有介绍;很简单,实在不行联系我 ...

多路同时输出我能理解,但是同时输入呢?

lixin91985 发表于 2012-11-24 21:55:33

飞控的6通道   不是PWM这个和PWM还是有区别的。
   在几个PWM周期内,包含了很多个通道的数据。

zhengfengran 发表于 2012-11-24 22:02:54

lixin91985 发表于 2012-11-24 21:55 static/image/common/back.gif
飞控的6通道   不是PWM这个和PWM还是有区别的。
   在几个PWM周期内,包含了很多个通道的数据。 ...

ppm,我不太明白遥控器过来的信号是什么样子的,是不是六路同时过来ppm信号,这几个信号同时开始,但结束的时间不一样?我猜的,不太懂

lixin91985 发表于 2012-11-24 22:10:42

如果简单点, 你就理解成红外编码吧。。 一个红外编码发送8个字节,那么这8个直接就是8通道。

agnd 发表于 2012-11-25 09:15:10

本帖最后由 agnd 于 2012-11-25 09:16 编辑

使用stm32的定时器捕获中断,没问题。捕获是在边沿由硬件完成的,与中断响应时间无关,不会带来任何附加误差。只要在本通道的下一个边沿到来前处理这个捕获值就行了。
另外,接收机的PWM脉冲是顺序到来的,每路脉冲的重复频率一般是50Hz或72Hz,并且是各路尽量不重叠。

zhengfengran 发表于 2012-11-25 14:24:21

lixin91985 发表于 2012-11-24 22:10 static/image/common/back.gif
如果简单点, 你就理解成红外编码吧。。 一个红外编码发送8个字节,那么这8个直接就是8通道。 ...

也就是说几个通道的ppm是从一根线上过来的,是吗?如果是这样的话,就好理解了。单片机的一根脚轮流采集ppm信号,是很简单的。我原来以为一个通道,是一根线呢。那么怎么区分哪一个脉冲是油门呢?

zhengfengran 发表于 2012-11-25 14:25:37

agnd 发表于 2012-11-25 09:15 static/image/common/back.gif
使用stm32的定时器捕获中断,没问题。捕获是在边沿由硬件完成的,与中断响应时间无关,不会带来任何附加误 ...

谢谢!你这么说,我就明白了,我以前理解有误。总以为每个通道是一根线。

agnd 发表于 2012-11-25 22:30:15

zhengfengran 发表于 2012-11-25 14:25 static/image/common/back.gif
谢谢!你这么说,我就明白了,我以前理解有误。总以为每个通道是一根线。 ...

在接收机输出就是一个通道一根线,6个通道要用单片机6个捕获中断线。
但这六根线上的脉冲在时间上是基本尽量不重叠的,这可能因为遥控器在空中传输时只有一个无线频点吧。
这六根线的脉冲就是重叠了用STM32采也没问题,因为捕获是硬件完成的,中断只是告送CPU有新捕获值了,尽快在下个值到来前取用吧。

zhengfengran 发表于 2012-11-27 15:39:55

agnd 发表于 2012-11-25 22:30 static/image/common/back.gif
在接收机输出就是一个通道一根线,6个通道要用单片机6个捕获中断线。
但这六根线上的脉冲在时间上是基本 ...

哦,原来是这样。明白了。谢谢!{:smile:}

lianghuok 发表于 2012-12-17 17:34:27

本帖最后由 lianghuok 于 2012-12-17 17:37 编辑

agnd 发表于 2012-11-25 09:15 static/image/common/back.gif
使用stm32的定时器捕获中断,没问题。捕获是在边沿由硬件完成的,与中断响应时间无关,不会带来任何附加误 ...

{:shocked:} 接收机的PWM脉冲是顺序到来的 --》这种情况只是适应Futaba 的接收机输出才可以,但JR的是所有通道一起输出出来。要是按顺序来输出就简单多了根本不需要捕获我实测试过,不知道楼主现在调的怎么样了。

现在用STM8S 捕获还在调,也担心过楼主说的同时输入多路PPM信号捕获中断时候怎么处理,中断排优先级来处理数据会不会shi接收通道数据滞后的现象发生?。

fengyiyu1006 发表于 2012-12-17 18:01:36

其实你拿示波器一看就什么都明白了,对于很多接收机他的输出信号时互相错开的,直接拿一个或非门加在一起就可以一个定时器通道搞定了,个别接收机各路有重合d,见2楼正解
下面是天地飞某款6通道接收机直接逻辑加在一起的结果:

zhengfengran 发表于 2012-12-18 09:09:54

lianghuok 发表于 2012-12-17 17:34 static/image/common/back.gif
接收机的PWM脉冲是顺序到来的 --》这种情况只是适应Futaba 的接收机输出才可以,但JR的是所 ...

还在研究中,呵呵。我有可能不用ppm格式的遥控。我直接用Zigbee,串口直接输出六个通道的信号。避免了中断捕获ppm信号。

zhengfengran 发表于 2012-12-18 09:10:37

fengyiyu1006 发表于 2012-12-17 18:01 static/image/common/back.gif
其实你拿示波器一看就什么都明白了,对于很多接收机他的输出信号时互相错开的,直接拿一个或非门加在一起就 ...

非常感谢~!
页: [1]
查看完整版本: 请教关于多路pwm输出与捕获的问题。