Difference between revisions of "BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation"

From eLinux.org
Jump to: navigation, search
(Build and Run instructions)
(Build and Run instructions)
Line 23: Line 23:
 
  cd omap3-pwm/
 
  cd omap3-pwm/
  
* The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled
+
* 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.
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.
 
  
 +
<code>
 
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig
 
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
 
index cebe1f5..2dad30c 100644
Line 42: Line 38:
 
  # CONFIG_OMAP_MUX is not set
 
  # CONFIG_OMAP_MUX is not set
 
  CONFIG_OMAP_MCBSP=y
 
  CONFIG_OMAP_MCBSP=y
  CONFIG_OMAP_MBOX_FWK=m<i>branch</i> -b <i>branch</i>
+
  CONFIG_OMAP_MBOX_FWK=m
 
+
</code>
 
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.
 
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.
  

Revision as of 10:03, 15 August 2010

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. There are no allowed feed URLs in the whitelist.

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/
  • 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=m

  • A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.

Links