嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~
9 F5 D! M: _# w$ N( v2 n
! x1 m/ Y) A' Z: [9 Q项目中需要用到4路pwm输出,8 v2 b; Y3 Y8 M0 i1 r$ y
内核自带只有一个apwm2输出(lcd背光),
( @8 M% {3 H5 e内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出  @! n" H% I% `1 C6 s$ s
[attach]2791[/attach]
& a# z/ e9 P# C% M4 k# K4 n4 v& y去掉占用apwm0的网口PHY驱动
& l4 D5 t5 o. S[attach]2792[/attach]
' X2 \- u+ I. b  v: Q结果还是一样,不知配置项对不对?) C; q/ j9 K' w, A' S# q- p+ U* \0 k
然后再看下apwm1只接了一个led灯 d7,! f3 w& r& V; [9 e% i/ c
按说也该还有个 ecap.1 才对。; h. ^- ^, k( S& L

1 z* U8 G4 h, i* q搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢% A$ R, I' e/ r

作者: 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配置。
% o9 j1 Q9 b) @% q参考:
: q; {) h3 n8 r- }$ l6 Zhttp://note.youdao.com/noteshare ... F458DA6058A8D9873B08 R( ]6 d+ M4 P4 Y
  u: a: i8 g% [" c

; b5 v' g5 d; V1 u6 e- S( K8 w9 x8 `2 e

作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复& e8 l# Y9 _/ Z1 D2 p" X+ t
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?
  m0 J' I2 }& J6 m; q( L[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02& H$ `1 v& ]8 W
感谢感谢,刚摸索出来才看到回复5 j/ i& R7 O  `' Q" i& D
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

# n2 k+ @9 W/ K; F4 a确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑
7 L  T+ {9 J# B& B/ e1 c2 x$ t' {
- D% k5 M  s5 E- I, V看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?+ j" b/ M0 g( |+ }
C:\Users\Administrator\Desktop\Da850.c
0 d9 f1 ]% o8 m  YC:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。# R- p6 T) E- |. C0 d! o

& W1 A0 ^2 n; O9 g* _ecap.1没输出是因为:
$ x. B7 |) _. Y/ `# g. ?注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。3 P" m+ @# s0 j5 L% C, r
% d$ `& T( J: A( T0 H6 d- m
ehrpwm0没输出是因为:$ i. y" k7 k* r  W' h8 v! R
[attach]2840[/attach]. O+ C1 ?5 T8 q( N5 k
此处的rmii_en在结构体里没有声明,导致一直是初始值0。( B8 T, D6 V# z: K7 u0 [+ n; q7 _
这样改后就有输出了
7 b+ Y: J$ B; a% d' k[attach]2841[/attach]
+ P' h3 X9 m8 j& p# t! U




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