嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~6 e+ `8 b( d4 Q1 U" R
  p# K* q5 _% L8 k! ?  G
项目中需要用到4路pwm输出,
: b8 h& b" ]9 W1 k内核自带只有一个apwm2输出(lcd背光),( o7 d# Y+ C8 d, k
内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出6 S! u- m( ?$ \
[attach]2791[/attach]* c% R8 C% J0 i& j) A4 [9 O( S, e* {. v5 b
去掉占用apwm0的网口PHY驱动
, g/ G6 a; l- n) g- H3 h[attach]2792[/attach]
& O- ]3 S& E$ o结果还是一样,不知配置项对不对?6 @- L1 }* D/ c/ ^4 i" H" ^9 N
然后再看下apwm1只接了一个led灯 d7,) C+ O( W7 D1 _" C. ?* C' R7 V
按说也该还有个 ecap.1 才对。
7 c. g: v. T# L7 a, ^+ u- c! n
7 u* _" c$ [' x. a$ u* a  R1 c搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢2 ^- I2 U- w2 `, b3 j0 {) W) n* i' G

作者: 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配置。, ?' j. O6 A9 J$ ?! q! K( i  ?: n
参考:$ A: |! B4 d9 F* L! U  K
http://note.youdao.com/noteshare ... F458DA6058A8D9873B0
! E9 `& z. {. o  c
- u- |0 o2 S& U. j2 X( c" p0 e3 d0 k  }! G0 A

: v3 d5 R' s6 X
作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复
* m. B9 F" C. l* A! I在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?
; U8 b& f1 Y- _' n# z! o[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
1 \( }. b* f5 E, |" o# t感谢感谢,刚摸索出来才看到回复% p. I3 O, j0 Z4 H. e  x# L
在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...

$ n& C+ R: \6 w* S确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑 ! e6 T$ A7 @% u1 B  N
' |1 I* \8 q) n3 N
看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?. Z& C2 L8 D2 I% v  {$ V8 C
C:\Users\Administrator\Desktop\Da850.c0 B) J7 g3 q5 O' @. x- p% p
C:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。
" Z1 U% ]8 w/ n3 b( e
' Z: T) M5 @5 Kecap.1没输出是因为:! D6 G3 i% |) R
注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。
1 @1 R/ n4 R9 T  ]' I5 B1 m) ?* v, \1 R( j: ]. r! `' t9 v' L+ K
ehrpwm0没输出是因为:
0 f) P+ ~8 O& w' r4 R  c6 x( K% `[attach]2840[/attach]1 r! T. k) W/ |* G; o
此处的rmii_en在结构体里没有声明,导致一直是初始值0。
( l+ h7 W% S) Q2 H3 z这样改后就有输出了
8 [* m9 X  k$ H1 g8 Q) K. _[attach]2841[/attach]
% n8 ]; w1 X  Y1 K




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