嵌入式开发者社区

标题: omapl138 PWM输出问题 [打印本页]

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~
& j; Z/ W% o; q9 j- [2 C2 e2 |) P' i9 `2 d( E& \
项目中需要用到4路pwm输出,# |! P5 R: J$ T3 x! R5 U9 L
内核自带只有一个apwm2输出(lcd背光),
9 V1 A- F" _! R. Q/ ?) M内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出* t- n( c% c$ W* p/ u. q4 [  c* q
[attach]2791[/attach]
- Z1 c9 `' z  W去掉占用apwm0的网口PHY驱动6 L0 n7 j0 {! Y6 ^. v" y7 U6 A
[attach]2792[/attach]
5 e- r5 E. Y8 m. Q1 s1 q& M结果还是一样,不知配置项对不对?+ d. t1 _! m7 R7 t) Z. X( t; `9 y
然后再看下apwm1只接了一个led灯 d7,2 o) G5 M# b% Q" i' R& r8 k& H
按说也该还有个 ecap.1 才对。$ r% n! {0 z% K% H7 u; \! h: |

& o8 I) k* S% l3 U1 T: ^搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢
0 Q& i  [& o5 t* K! q2 x
作者: 544864579    时间: 2017-9-15 14:07
1. 在menuconfig中 Device Drivers->PWM Support中选中Davincie HRPWM Support.2. 参照arch/arm/mach-davinci/board-da850-evm.c里面的PWM配置,新增您需要的PWM配置。3 R* y* K- D  ]  h
参考:
  T2 }  X, ]% q$ lhttp://note.youdao.com/noteshare ... F458DA6058A8D9873B0
6 g% m, n# ^/ @# p9 x' s* z9 G6 v) z3 z/ t- w: ?$ E
: _& \% _4 k6 }+ L3 E

9 u! H1 H9 Q- l+ w  a& \) S
作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复
1 @  o5 f4 n. ~+ e$ E/ i3 E在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?4 J  K' W0 C, W& W) u  b7 t) f
[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
$ Z! B5 D; D1 R' L' e# r% L* o' S感谢感谢,刚摸索出来才看到回复
7 S4 K7 ~3 o, ]8 \; u在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

3 z% N! W+ g* V, G( n确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑 7 |% [" A: _$ I5 L9 d/ z

. `9 J  N1 X7 Z0 i  ?看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?
% g  \5 g$ Z8 H2 K" {" r, i  l  X" ?6 wC:\Users\Administrator\Desktop\Da850.c5 p% z5 C# R# q' C+ P8 t& q; M
C:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。) w' k8 n  W3 W. W% S5 K, v
# v& g7 B% T7 E7 s
ecap.1没输出是因为:4 D) d7 Z2 F3 Q5 z$ g4 [
注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。! m) _/ ^. z$ m- U

5 P. P( s- f+ l2 zehrpwm0没输出是因为:' w5 u1 e& n! E1 b+ A! L
[attach]2840[/attach]4 n. ^- E+ m* k* `
此处的rmii_en在结构体里没有声明,导致一直是初始值0。4 F( s  d5 }* d+ W
这样改后就有输出了! \" U3 w0 R% N7 j  j& {$ ?: S
[attach]2841[/attach]
$ [8 ?* V+ o0 ^: h! H+ }1 N




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4