嵌入式开发者社区

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

作者: baicaibang7456    时间: 2017-9-14 18:02
标题: omapl138 PWM输出问题
新手求助~~
  r+ H' G# c: h+ B* B7 g' B* t6 z% J& b& b5 C  b
项目中需要用到4路pwm输出,' Y; S) v. v4 I2 Z% U7 `
内核自带只有一个apwm2输出(lcd背光),8 _8 |! Q$ i* n2 e8 C$ h) j
内核menuconfig 配置中 去掉 SPI模块 ,在sys/class/PWM下面多了一个ehrpwm输出
4 _2 m4 F. r& l: n; \[attach]2791[/attach]
9 N. ?4 u4 t4 \1 g+ _去掉占用apwm0的网口PHY驱动/ G7 x" ~9 l; L' q4 p
[attach]2792[/attach]
" h. }$ p# {  ]: S+ h( e- r. G0 T" P. M结果还是一样,不知配置项对不对?$ T. h: w# I/ \+ p6 k& @
然后再看下apwm1只接了一个led灯 d7,  ~( Y/ J) |! U3 V. t
按说也该还有个 ecap.1 才对。# r: _+ o$ L) A% V" N1 J
' c2 J+ K  }6 T
搞一天了,请大家帮忙看下,是内核配置里有哪些模块和PWM输出有冲突? 谢谢" C. f' |6 Q+ V# O3 t  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配置。6 y, s8 Z" t+ q+ _4 K, e0 d& r
参考:# @/ ]( f8 ?% l% ^
http://note.youdao.com/noteshare ... F458DA6058A8D9873B0
# I. z2 F9 i8 [5 i8 ]: p& b! S
, N: H, T% r) m' a/ t* {
/ ?1 o1 {2 b, ^+ X5 f$ t9 g2 i! I2 T9 R4 D; i

作者: baicaibang7456    时间: 2017-9-15 17:02
感谢感谢,刚摸索出来才看到回复
. s% c; L  ]" H8 ], D8 R$ e+ |# V8 d) `在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就是IO输出没反应,还要修改哪里?2 o' L$ D3 m3 Y1 w) ~
[attach]2794[/attach]
作者: 544864579    时间: 2017-9-19 14:53
baicaibang7456 发表于 2017-9-15 17:02
! ]1 f* E0 E: [9 J3 Q8 D  M9 m8 R感谢感谢,刚摸索出来才看到回复
+ W( j- ?. A* s' j' h; F在board-da850-evm.c 注册了ecap1,频率 占空比 个参数也都能设置,就 ...
3 i' @7 j. V  [# k- O4 Y
确认一下ecap.1的管脚pinmux是否配置正确
作者: baicaibang7456    时间: 2017-9-20 00:15
本帖最后由 baicaibang7456 于 2017-9-20 00:20 编辑
; A1 l) x9 [; n& I" g2 E5 g* {$ I5 f; Q9 _% M6 c; F
看了下源码,我的理解是pinmux应该本身已经在Da850.c的da850_pins[]里声明了(linux-3.3内核),只要使用davinci_cfg_reg(DA850_ECAP1_APWM1)注册一下应该就行了,下图是Mux.h 和 Da850.c里关于DA850_ECAP1_APWM1的对应关系。是不是我理解有问题?
6 M8 a( P, P9 }( \2 Y+ X$ AC:\Users\Administrator\Desktop\Da850.c
( b  r$ z# L$ w: Q: q: ?C:\Users\Administrator\Desktop\Mux.h
作者: baicaibang7456    时间: 2017-10-10 15:17
问题解决了,现在7路PWM都可输出。
3 U. {3 D' V6 W5 U; `
5 m& q8 ~$ A/ m8 _! M5 }. [/ zecap.1没输出是因为:
4 a. A+ L# d/ o  I1 x# v注册过DA850_ECAP1_APWM1后,后面又注册了LED,       da850_evm_tl_leds_init(); 然而LED的D7是和APWM1共用管脚的。$ g/ X+ F% Y* \- \1 u. B
6 k' c  \. n, S
ehrpwm0没输出是因为:7 h! g) K3 q, x' D1 l
[attach]2840[/attach]& p9 B! I% d$ R9 O% D; v5 S/ b2 Q. W" S
此处的rmii_en在结构体里没有声明,导致一直是初始值0。% W) E8 k% V7 X8 g4 @; t& n
这样改后就有输出了
# H, E; |& q9 o1 A/ v  t1 w7 s3 t5 ^[attach]2841[/attach]
$ Z( n5 I  o9 @3 w. r




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