BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation

From eLinux.org
< BeagleBoard‎ | GSoC‎ | 2010 Projects
Revision as of 16:11, 15 August 2010 by Neo01124 (Talk | contribs)

Jump to: navigation, search

Project: Pulse Width Modulation

Student: Varun Jewalikar

Mentors: Søren Steen Christensen, Cristina Murillo

Repository: http://github.com/neo01124/omap3-pwm

Blog: http://beagleboard-pwm.blogspot.com/

Latest blog entries: Extension:RSS -- Error: "http://beagleboard-pwm.blogspot.com/feeds/posts/default%7Ccharset=UTF-8%7Cmax=3" is not in the whitelist of allowed feeds. http://linuxgizmos.com/feed is the only allowed feed.

Abstract

The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard. Another aim will be to push this driver upstream(the Linux-OMAP tree). Two applications will be developed to demonstrate the use of this driver:

  • Motor control using PWM signals generated by the BeagleBoard using the PWM driver.
  • Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins.

Build and Run instructions

  • Clone my git tree for the driver.This can be done using the following commands:
git clone git://github.com/neo01124/omap3-pwm.git
cd omap3-pwm/branch -b branch
  • The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled

in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.

diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig index cebe1f5..2dad30c 100644 --- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig +++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig @@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y

#
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set

-CONFIG_OMAP_RESET_CLOCKS=y +# CONFIG_OMAP_RESET_CLOCKS is not set

# CONFIG_OMAP_MUX is not set
CONFIG_OMAP_MCBSP=y
CONFIG_OMAP_MBOX_FWK=mbranch -b branch
  • A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.

Links