嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~- b( S* Y3 G2 }2 j

5 X3 X, Y$ V& l# \( o1 a( U- I项目中需要用到4路pwm输出,& ?) D7 p, D% _! ~* S4 v
内核自带只有一个apwm2输出(lcd背光),
7 y' x5 O6 H. C5 h0 R6 I% y* V内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出
, m3 X/ |6 g8 H. e1 F[attach]2791[/attach]: @: ?# m" U, x; D+ k
去掉占用apwm0的网口PHY驱动. [" Y/ ^7 z/ N3 c* }
[attach]2792[/attach]
0 M- y$ [9 h8 H结果还是一样,不知配置项对不对?: ~4 n3 ^7 d+ @
然后再看下apwm1只接了一个led灯 d7,
; d" H0 p' y. A. `按说也该还有个 ecap.1 才对。
: [6 o$ P& {. L, B1 S9 r9 p. j
! U2 D* r; w+ S2 P5 n* a% i搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢
9 e0 H8 h6 o5 z, ~. Q
作者: 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配置。! ~2 r5 D4 F7 C: _
参考:
# H! E: q+ L9 ?" |) A6 Chttp://note.youdao.com/noteshare ... F458DA6058A8D9873B0
1 I, Y' n; M' Q
6 Y: S$ C; ^7 O0 k9 i  P0 s! N" J7 G

1 ^+ f( a) q$ b% w$ z8 s& t9 u! P6 n& W
作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复8 o, ]; D1 L3 d% L
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?
/ L/ |) A+ U9 _[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
$ v4 l, M0 v* @/ u: @; l2 x感谢感谢,刚摸索出来才看到回复; B7 C, p2 J# T
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

( [) ?4 ?  |* G! X) W" L, u2 i确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑 , x+ m. j1 K4 B: {: L' r

( r; d8 i* H- m# a9 ~1 a# k4 i看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?  v' Q9 z' |# U' b# h. F
C:\Users\Administrator\Desktop\Da850.c
1 n0 l6 x. U" z9 r; VC:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。
. ]- ~4 Y2 `* Z; k4 K/ b4 @0 o$ j. o, V4 f& `! n* ^
ecap.1没输出是因为:
9 S9 H- y8 j, f$ Y注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。
4 M0 E* L4 ?) i: g6 I" S1 K& g1 G1 ]2 X. n/ V' O
ehrpwm0没输出是因为:
9 h, d% h3 N2 h- h[attach]2840[/attach]
. o7 H6 M0 j& w此处的rmii_en在结构体里没有声明,导致一直是初始值0。
8 }. P' o8 x5 `* A: W5 x" ]$ l4 Q这样改后就有输出了
) p8 F" l+ j% S# D, [+ D[attach]2841[/attach]; x8 s: f6 N: T& v0 h





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