嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~6 E. H1 q+ S0 @( {
8 e' \' j  O) I( ?2 d7 t, i) i
项目中需要用到4路pwm输出,  @2 ]8 N. g2 I+ a* T
内核自带只有一个apwm2输出(lcd背光),
( d* `8 J. l/ W内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出
3 }6 V% ^0 C4 j# e3 O- y[attach]2791[/attach]
) ~4 j8 A* ]. `( T; P( `' v3 K去掉占用apwm0的网口PHY驱动
: x2 V# B6 p' L; R& |[attach]2792[/attach]0 ~* A5 W& ]) D( `0 b- J2 j
结果还是一样,不知配置项对不对?- {: O: p/ K+ P+ J2 B$ x1 `9 q9 t
然后再看下apwm1只接了一个led灯 d7,
# s8 q9 Q2 j7 ]9 Z% X按说也该还有个 ecap.1 才对。4 [/ M4 y) o4 _2 U, n* z5 ^

2 R0 i, ]# C# E$ K. V  z/ d9 M搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢& Z# {) k# J4 e2 L' E$ [

作者: 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配置。  v3 C& W) f3 {9 V; L, U
参考:# n  u, z$ n& n! U5 _3 n7 X: S; _
http://note.youdao.com/noteshare ... F458DA6058A8D9873B08 N$ K* [+ i* G9 k8 ~* K

" q9 t8 \2 B3 b8 p# \5 E4 {
3 b4 p) j4 a% i) E! ~) R" K& D9 h+ l6 l( {& k  H

作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复8 ^+ @2 A- ]2 `/ }; X
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?; I6 w9 `* e# p$ @- W
[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
; `7 i" p: h" b  R7 H3 s感谢感谢,刚摸索出来才看到回复- ?& V- x5 |3 a  |: g2 e5 c
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

7 q4 b& B) i% ~3 ?, R' j" v! i0 a, M确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑
: W% f& D1 I: i
/ N# v" X8 L# e% @9 `看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?
7 I  P0 t: r* f8 H' d/ SC:\Users\Administrator\Desktop\Da850.c
4 p* J2 m; V/ {; i3 PC:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。
* y; k* W, l* y; U# Q
4 X) X% p) I7 e, Pecap.1没输出是因为:. |9 s: h" g) \+ b4 G" A8 M1 U0 f
注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。
' e* y6 ~# T1 Z1 O9 Q
* S0 o& N) T1 P( P# ~. a: }ehrpwm0没输出是因为:
6 O7 |: Y1 j$ u4 N* w5 N[attach]2840[/attach]
3 s- L/ J7 I/ {' w此处的rmii_en在结构体里没有声明,导致一直是初始值0。! g4 N4 T% ]" Z7 T
这样改后就有输出了
4 }2 r4 e  @. _$ R/ O9 G[attach]2841[/attach]
. O+ A5 D1 b9 Q1 o




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