嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~
: q$ w0 W. E/ N2 H& U! ~! W
( v! x7 m6 f9 o2 ~9 w项目中需要用到4路pwm输出,2 F1 Q" _8 h. B! ^
内核自带只有一个apwm2输出(lcd背光),
+ y( f- \; f* F$ `7 ?内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出
. R8 c; O2 J+ @. I3 `% K4 B, K$ O[attach]2791[/attach]
/ F/ l7 k6 p, r3 C( {去掉占用apwm0的网口PHY驱动' V) Z- X% H7 J- {% C! e9 M9 _
[attach]2792[/attach]
; t. I  w+ O( g' `* D5 w结果还是一样,不知配置项对不对?
6 l5 D/ S  A- ^然后再看下apwm1只接了一个led灯 d7,/ I% e+ Z3 Y" I
按说也该还有个 ecap.1 才对。3 w% ^3 v. f4 }3 h1 m
9 g' P$ |0 [8 \, E" [" B5 `
搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢7 M2 w; J% ^# w* }8 P& B+ }# y

作者: 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" x$ B/ ~/ _# T5 p  X' O3 w0 h参考:
5 ^% A+ b6 e$ H$ ~& F( l4 Qhttp://note.youdao.com/noteshare ... F458DA6058A8D9873B03 ]" c) r& F6 _

# G) z6 B1 A7 ~3 e5 C/ h
/ U& g4 f6 V- d1 u  _0 O& f4 {* `' h8 N- `- y, ]: |5 f# k3 D  j

作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复
7 e- L3 W( s& G$ t在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?% ?+ N, `3 A  V4 U) j
[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
  f. d! w! j! |. I+ Z5 v感谢感谢,刚摸索出来才看到回复
( X4 c; D( H+ {( I# H在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

5 Y+ g" J, h2 c$ m4 ^9 [确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑 ) k# Y4 q1 l  t# S2 P

  @- r' p, i; F' D' Y看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?, I0 [, [: ^+ E1 n5 W: s; [
C:\Users\Administrator\Desktop\Da850.c* E' }- c, j0 N6 y: D
C:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。
9 x2 ^( u$ k& v/ R( X3 z1 p; p  K8 D* V1 b# F
ecap.1没输出是因为:
3 X2 M, H) a# ]. s2 a: u注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。; m" g& c- _, H% L

& M1 b6 a/ f- g- W7 wehrpwm0没输出是因为:3 |6 X! `$ b9 k; x
[attach]2840[/attach]7 f' F: N& ^/ J0 b7 a9 @
此处的rmii_en在结构体里没有声明,导致一直是初始值0。2 |, u, o1 `0 d, m) i
这样改后就有输出了3 f2 F' k' l, b' O+ ]
[attach]2841[/attach]
- l$ M5 h9 M7 Z7 P: D




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