嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~+ ~  t5 @: Y- v$ _
) s( u+ }* Q4 q( B4 U6 p
项目中需要用到4路pwm输出,
8 i' b5 k3 A6 G内核自带只有一个apwm2输出(lcd背光),3 I+ d- B0 u3 E! O5 Y9 s
内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出, g2 b$ s/ o* Q, Y& y. X2 T
[attach]2791[/attach]
- d8 a1 P7 U" z, F* k& B去掉占用apwm0的网口PHY驱动0 L/ U! w# r* h$ [# m
[attach]2792[/attach]
' t5 G" t$ J& j  H9 Q/ n% e结果还是一样,不知配置项对不对?! v; ?3 F( j2 @  V
然后再看下apwm1只接了一个led灯 d7,+ K( W6 S" S) E
按说也该还有个 ecap.1 才对。
3 u, q$ B9 H2 i4 S( U/ \5 I9 q. F9 P# ^* }; F4 j; m% o
搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢& ~  w/ R, }0 Q/ ^+ Q) A( L

作者: 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配置。" F% ~) `* |7 w
参考:
: y- s6 Y& b$ x7 A6 [. nhttp://note.youdao.com/noteshare ... F458DA6058A8D9873B04 b+ Q6 Z9 @& Y( `. g1 C
, ?( @3 ~' g' @& b
& w: l4 s2 r: e

1 f6 \1 K# D5 a- ]
作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复
, v/ h# s0 k! F% H在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?2 N- \0 v/ O/ \" k  x' R8 b- e: P
[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02) |. |6 v5 l5 a5 ~2 q0 o' l; k
感谢感谢,刚摸索出来才看到回复
, X/ P) |- ~9 s* K. L在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

+ O' O3 C% r' Z1 w确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑
3 M. e) _$ `! r! ]% u& D
6 ]! R& @2 s8 r" G看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?
5 |. c$ M- v/ h+ v/ N  X% iC:\Users\Administrator\Desktop\Da850.c
( }% _- i; t4 K$ B& E# J2 CC:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。+ m+ {; A$ C) r. a* _' W/ \

* ^7 K! Y# `: I3 ~6 ?ecap.1没输出是因为:
# x' Y+ _5 u; H注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。, o0 i! p1 o. T5 [$ F  Z" f3 A

8 D( _* P, r# B% p7 s% O5 Dehrpwm0没输出是因为:9 T2 G: V/ L: K* l2 z
[attach]2840[/attach]
8 Z+ R" c) u( K0 M4 t9 c" ~此处的rmii_en在结构体里没有声明,导致一直是初始值0。) |0 _6 L. i  h) R& C# ?) V8 ^
这样改后就有输出了
+ l6 e. r/ ?) w3 m- J8 t[attach]2841[/attach]
  T5 y( ~% C( s: _/ k




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