嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~0 M/ F! C, Y- s5 ^
; p) w  x$ t3 j
项目中需要用到4路pwm输出,
3 B4 Q! @! R' u! `( Y内核自带只有一个apwm2输出(lcd背光),
  r; @  ~2 D3 ?' C: f0 o内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出
, {6 P; c  X% s; P/ a: Y: O4 Q[attach]2791[/attach]
2 A& E. v8 A% e& B- u去掉占用apwm0的网口PHY驱动+ s1 f7 v0 _/ y8 t; k* D7 _. H
[attach]2792[/attach]! w) h8 U) P& @& `" A8 ^& L) k
结果还是一样,不知配置项对不对?
' C7 c. X' ^+ D) A5 H然后再看下apwm1只接了一个led灯 d7,
5 g  b( t3 |8 Q/ T; q6 l按说也该还有个 ecap.1 才对。
" f% b* D7 I  `: T* W! ?( V# V' l$ q* _& W$ [7 [0 g& J
搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢! N( b9 B" i6 k

作者: 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配置。
7 ~; @* ~3 q7 L5 y* q3 V' P参考:" ~1 j. d+ A, C$ ?, y7 J7 \3 X
http://note.youdao.com/noteshare ... F458DA6058A8D9873B0: U' g4 m6 f# M% m' {

6 J% L3 _0 E  E. L, q2 P
" a( m9 N5 R  F1 q. D- s
# A# ]1 w7 z0 G# T, K4 a$ ?1 F
作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复% `4 A/ }" t" C' ?7 {; r" H
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?
& r; L# L; t. P+ m" n2 z[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
! Q" \6 }9 Z) `6 I感谢感谢,刚摸索出来才看到回复
6 O( A/ d  x# T' }5 X在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...
7 F+ T8 R, `  }
确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑 ' p9 _5 ~8 @1 m/ w3 T. T7 a* n

( u5 s4 G* A: l& v& |看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?
: Y  O6 h1 K/ kC:\Users\Administrator\Desktop\Da850.c
' H* ?+ o8 A, d- a3 D+ a) PC:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。& P$ z/ y: p  `+ r- c
; R) K7 K# i* _& _. T; H, l3 d. M
ecap.1没输出是因为:; I4 G1 u  q% n
注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。- n6 ?7 f: L. _4 c  z% }9 `6 U

% C3 \; i; v) Z' n- hehrpwm0没输出是因为:8 d0 N. I0 g$ ]5 h+ Q# S# {  n/ q# ~
[attach]2840[/attach]
: L; ~0 F# S0 l; q2 e! l此处的rmii_en在结构体里没有声明,导致一直是初始值0。7 B, X- G* R' d, y3 W3 G! w0 _
这样改后就有输出了
4 c; O& v  _% A- p& W) M[attach]2841[/attach]
8 ]9 A1 J- v( @/ {4 @- J  i




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