Difference between revisions of "PWM"

From ArmadeusWiki
Jump to: navigation, search
m (Links)
(Add SoX)
Line 43: Line 43:
  
 
== Audio Mode ==
 
== Audio Mode ==
Audio playback mode is not fully functionnal/tested yet. Ask JulienB if you really need it...
+
Audio playback mode is working since v0.5 of PWM driver (thanks to SebastienR).
 +
You can play 8, 16 & 32 KHz 8bit linear RAW sound. It's recommended to play 8kHz one, as they use less CPU ressources.
 +
To convert a sound to the right format we recommend to use SoX (on Linux).
 +
For exemple:
 +
[host]$ sox /usr/share/sounds/KDE_Chimes_1.ogg -r 8000 -b -u -c 1 Chimes.raw
 +
-r -> sampling rate
 +
-b -> byte/8bit signal
 +
-u -> linear /not compressed
 +
-c 1 -> Mono / 1 channel
  
 
== Links ==
 
== Links ==
 
* [http://sox.sourceforge.net/Docs/FAQ SoX, sound format converter]
 
* [http://sox.sourceforge.net/Docs/FAQ SoX, sound format converter]
 
* http://en.wikipedia.org/wiki/Pulse-width_modulation
 
* http://en.wikipedia.org/wiki/Pulse-width_modulation

Revision as of 12:34, 9 April 2007

On this page, you will find usefull informations to configure and use the Pulse Width Modulation (PWM) capabilities of your APF9328 board.

Your is capable of driving 2 PWM signals:

  • one is linked to the LCD controller and allow to control LCD backlight, see LCD page for more informations
  • the other can be used to generate PWM signals in several mode:
* audio playback
* real PWM

Configuration

First be sure to have the PWM Linux driver activated:

$ make linux-menuconfig

File:PWMconfig.png

$ make

Installation

Either copy generated module target/linux/modules/pwm/pwm.ko to your system with TFTP or NFS or reflash the generated rootfs

Usage

Load the module:

# insmod /lib/modules/2.6.18.1/extra/pwm/pwm.ko

or (if you have reflashed your rootfs):

# modprobe pwm

PWM Mode

Remark:

  • The pwm has a resolution of 1uS


Now you have access to /sys/class/pwm/ functionnalities:

  • to activate PWM:
# echo 1 > /sys/class/pwm/pwm0/active
  • to de-activate PWM:
# echo 0 > /sys/class/pwm/pwm0/active
  • to change frequency (for example 500 Hz):
# echo 500 > /sys/class/pwm/pwm0/frequency
  • to change period (for example 100us):
# echo 100 > /sys/class/pwm/pwm0/period
  • to change duty cycle (for example 50.0%)
# echo 500 > /sys/class/pwm/pwm0/duty

Audio Mode

Audio playback mode is working since v0.5 of PWM driver (thanks to SebastienR). You can play 8, 16 & 32 KHz 8bit linear RAW sound. It's recommended to play 8kHz one, as they use less CPU ressources. To convert a sound to the right format we recommend to use SoX (on Linux). For exemple:

[host]$ sox /usr/share/sounds/KDE_Chimes_1.ogg -r 8000 -b -u -c 1 Chimes.raw
-r -> sampling rate
-b -> byte/8bit signal
-u -> linear /not compressed
-c 1 -> Mono / 1 channel

Links