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:

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

$ vim beagle-source-me.txt

Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .

$ source beagle-source-me.txt

This will set the environment variables for cross compilation.

$ make

This will generate the requisite pwm.ko kernel module file.

Copy the pwm.ko to your target board.

Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.