makeflyeasy 发表于 2015-3-10 20:30:47

@小李非刀 请问这单片机怎样同时检测8路PWM的占空比?

今天在搞大四轴飞控,有个问题和波波谈了半天未果,只能来请教你了。

大四轴飞控要兼容普通接收机,需要检测接收机输入的8个通道的PWM占空比,我想了半天想不出什么好方法,不知道STC单片机里有什么硬件可以方便地同时检测8路PWM的占空比。很纠结。

STM32可以直接上个操作系统,好办事得多,这玩意目前看来没法上操作系统,真是蛋疼。

如果没法同时检测8路PWM的占空比的话估计只能外挂单片机单独检测或者直接上24L01了,这样的话就很蛋疼了。

小李非刀 发表于 2015-3-10 21:02:13

确实是,我也跟小朱联系过了,确实比较麻烦,我还在想办法。

小李非刀 发表于 2015-3-10 21:02:46

如果使用24L01,就不能用通用的遥控接收

小李非刀 发表于 2015-3-10 21:10:50

测量接收机过来的脉冲宽度,用STM32也不是上不上操作系统的问题,而是用里面的模块来测量。
测量分辨率一般是1us,所以,单靠系统也是难的。

小李非刀 发表于 2015-3-10 21:13:33

油门需要精细的控制,但是前后左右等等,像小四轴那样的话,不需要那么精细,比如64级,则有可能会容易好多。
外挂一片MCU来测,则也是一个方向。

makeflyeasy 发表于 2015-3-10 21:20:28

如何用单片MCU实现这个功能也是个问题,mega1280做的APM就能处理PWM信号,不知道它用的是什么模块,STC单片机有没有。

lcw_swust 发表于 2015-3-10 21:36:55

本帖最后由 lcw_swust 于 2015-3-10 21:39 编辑

http://www.geek-workshop.com/thread-2408-1-1.html

从这个资料看,PPM各通道的信号是错开的,在一个时间只有一个通道是高电平,不知道可不可以利用这个特性用模拟开关来依次切换。(模拟开关可以用三极管代替,也可以用电阻串联二极管代替)
不知道是否符合所有的接收机。

makeflyeasy 发表于 2015-3-10 21:40:20

有的不是这样,廉价接收机确实会采用这种方法。要保证兼容性就不能采用这种方法。

makeflyeasy 发表于 2015-3-10 22:37:33

小李非刀 发表于 2015-3-10 21:02
确实是,我也跟小朱联系过了,确实比较麻烦,我还在想办法。

亲,我在等你的解决方案哦,等着画板子,如果实在没有办法,那只能用24L01了。

mandylion2008 发表于 2015-3-10 22:44:51

本帖最后由 mandylion2008 于 2015-3-10 22:46 编辑

楼主做小四轴很不错!作为大二的学生很不容易,顶你一个!
我没有用过STC单片机,建议用输入捕获功能来做可以满足要求。

要不了8路,四路就够了吧!大酱也是四路的。

makeflyeasy 发表于 2015-3-10 22:57:37

mandylion2008 发表于 2015-3-10 22:44
楼主做小四轴很不错!作为大二的学生很不容易,顶你一个!
我没有用过STC单片机,建议用输入捕获功能来做可 ...

这个功能不知道STC的片子有没有哈

小李非刀 发表于 2015-3-10 23:31:52

STC15W4K系列有两路PCA可以捕捉两个通道,INT0 INT1可以捕捉两路,一共4路。

小李非刀 发表于 2015-3-10 23:34:53

如果单独用一个MCU来采集,则STC12C5608AD系列28腿或32腿的则有4个PCA可以捕捉4路,INT0 INT1配合Timer0 Timer1可以捕捉两路,那就只能模拟串口发给主机了

小李非刀 发表于 2015-3-10 23:45:02

makeflyeasy 发表于 2015-3-10 21:20
如何用单片MCU实现这个功能也是个问题,mega1280做的APM就能处理PWM信号,不知道它用的是什么模块,STC单片 ...

mega1280,那么贵的IC,应该有模块做这事。

lyg407 发表于 2015-3-11 00:16:25

楼主建议你考虑一下 采用PPM 接收机   一路即可获取多路通道PWM信号。

PPM 就是把几个通道的PWM 信号合成一个。。。 具体可查查相关资料。

lyg407 发表于 2015-3-11 00:17:27

另外网上也有把接收机的多路PWM 信号 转换成 PPM信号 电路板

a136498491 发表于 2015-3-11 09:03:30

看样子问题关键是钱啊

blavy 发表于 2015-3-11 09:28:20

a136498491 发表于 2015-3-11 09:03
看样子问题关键是钱啊

对任性的人来说只要钱能解决的问题都不是问题{:lol:}

a136498491 发表于 2015-3-11 09:31:46

blavy 发表于 2015-3-11 09:28
对任性的人来说只要钱能解决的问题都不是问题

其实stm32f103才多少钱,一个飞控多那么几元也值得吧。反观STC呢。我买的cc3d用的就是stm32,其他也有用的。

makeflyeasy 发表于 2015-3-11 11:04:59

小李非刀 发表于 2015-3-10 23:34
如果单独用一个MCU来采集,则STC12C5608AD系列28腿或32腿的则有4个PCA可以捕捉4路,INT0 INT1配合Timer0 Ti ...

如果要用两块单片机,我觉得还不如外挂2401,两块单片机弄出来的飞控太不靠谱了,还是模拟串口通信,飞控要求绝对的稳定性,单片机之间通信一旦出现问题结果就是炸机。

makeflyeasy 发表于 2015-3-11 11:08:57

要么这样,用2401通信,再加个X2401L功放,带天线座。不过遥控器就得……

sjx2012 发表于 2015-3-11 11:56:14

可以倒过来想一下,单片机如何产生8通道PWM信号...用一个定时中断,8路PWM放在一个周期内对比输出。
正过来接收8路PWM脉宽信号时用一个定时器一个外部中断扫描8路IO状态应该就可以实现...当然程序一步一步执行不可能绝对的同步

rainbow 发表于 2015-3-11 11:58:48

sjx2012 发表于 2015-3-11 11:56
可以倒过来想一下,单片机如何产生8通道PWM信号...用一个定时中断,8路PWM放在一个周期内对比输出。
正过来 ...

得看精度吧。
如果几十或上百HZ的还行,高的就误差太大了。

NJ8888 发表于 2015-3-11 12:15:43

7楼的图是标准的遥控输出信号,单片机一路脉宽捕获就能解决

小李非刀 发表于 2015-3-11 12:54:18

外挂24L01肯定方便,就是发射器麻烦点。或者买某一个牌子的遥控器,如果用的是24L01的,那么,就可以写个接收程序了。我刚买了个遥控车的遥控器,3通道,就用的24L01。

makeflyeasy 发表于 2015-3-11 13:47:42

小李非刀 发表于 2015-3-11 12:54
外挂24L01肯定方便,就是发射器麻烦点。或者买某一个牌子的遥控器,如果用的是24L01的,那么,就可以写个接 ...

我有个想法,能不能QQ上私聊下?
页: [1]
查看完整版本: @小李非刀 请问这单片机怎样同时检测8路PWM的占空比?