嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~% ?3 {% u+ x4 X8 v# ~
5 H3 ]( `" C% i/ N+ o; N, R% R7 }
项目中需要用到4路pwm输出,, G. R1 q$ A! b' c
内核自带只有一个apwm2输出(lcd背光),
6 B% {/ F; Z* t& L3 R" F2 @5 ^- ~内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出5 B  t$ v0 _! [, o! S
[attach]2791[/attach]
: Q/ ~: ]& e: I9 h$ W9 }+ ]去掉占用apwm0的网口PHY驱动5 F# M  M+ W1 n2 i
[attach]2792[/attach]
# u9 }( q+ c3 X* W) L  d' }结果还是一样,不知配置项对不对?
* O6 c4 i* [. s* ~然后再看下apwm1只接了一个led灯 d7,% ]  o1 a* p. w6 m, [6 `2 s
按说也该还有个 ecap.1 才对。5 ^; o' P$ }8 A* S
5 X9 v3 L( p. A+ p8 M
搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢/ G- O+ f: `: V6 L: ]; d

作者: 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配置。
0 R3 ]2 K3 Q0 V2 s& ]! t; R0 Q参考:
7 {% X) @! r- k4 u$ G& Ghttp://note.youdao.com/noteshare ... F458DA6058A8D9873B0
* w. I7 Z! B/ \: y5 [( v, q, }  f. K& P/ n  r
3 M0 |2 i4 k% {! Z

8 G, Y( Y- ]# }* S" i# n  y
作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复9 S( F/ N# O* f3 \! o8 E
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?9 Q' j: Y# \* B# y2 p9 X
[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:029 }9 ^) @* O1 R  I
感谢感谢,刚摸索出来才看到回复
5 Q; G/ q- g, b" Y在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

; A( x# J- B8 L; W4 K确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑 6 g6 g# v9 \& j6 O/ ]

) ~9 d  I1 M9 e看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?
2 N& j. [, j( Z# Y5 S/ W" s$ _) c9 `C:\Users\Administrator\Desktop\Da850.c  x4 A  x/ i& R, X2 i5 g1 a
C:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。
9 q' u* U9 L6 ]4 ?/ O2 j0 N4 @( a" E0 c$ v# o
ecap.1没输出是因为:
" ^! n* b, q6 S' x- `7 p注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。
" W, s7 r) M+ N  f7 k% j1 s; q' n2 |, H( u- u3 U0 a
ehrpwm0没输出是因为:6 ?! ]' u* N- N3 y8 O
[attach]2840[/attach], q# Z2 T* ^7 t9 y" q4 x
此处的rmii_en在结构体里没有声明,导致一直是初始值0。
- V- T) j2 z( I这样改后就有输出了% U6 f3 ]7 W+ V  [
[attach]2841[/attach]9 l* I6 Z  {( F, d





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