Difference between revisions of "PWM"

From ArmadeusWiki
Jump to: navigation, search
(Add SoX)
(Audio Mode)
Line 47: Line 47:
 
To convert a sound to the right format we recommend to use SoX (on Linux).
 
To convert a sound to the right format we recommend to use SoX (on Linux).
 
For exemple:
 
For exemple:
  [host]$ sox /usr/share/sounds/KDE_Chimes_1.ogg -r 8000 -b -u -c 1 Chimes.raw
+
  [host]$ sox /usr/share/sounds/KDE_Chimes_1.ogg -r 8192 -b -u -c 1 Chimes.raw
 
  -r -> sampling rate
 
  -r -> sampling rate
 
  -b -> byte/8bit signal
 
  -b -> byte/8bit signal
 
  -u -> linear /not compressed
 
  -u -> linear /not compressed
 
  -c 1 -> Mono / 1 channel
 
  -c 1 -> Mono / 1 channel
 +
 +
Then you can test it using target/linux/modules/pwm/test/testplaymode:
 +
[host:/.../armadeus]$ make -C target/linux/modules/pwm/test/
 +
[host:/.../armadeus]$ cp target/linux/modules/pwm/test/testplaymode $NFS_DIR
 +
[host:/.../armadeus]$ cp target/linux/modules/pwm/test/KDE_Startup_2.raw $NFS_DIR
 +
on target do:
 +
# testplaymode
 +
or
 +
# testplaymode KDE_Startup_2.raw
  
 
== 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 11:31, 15 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 8192 -b -u -c 1 Chimes.raw
-r -> sampling rate
-b -> byte/8bit signal
-u -> linear /not compressed
-c 1 -> Mono / 1 channel

Then you can test it using target/linux/modules/pwm/test/testplaymode:

[host:/.../armadeus]$ make -C target/linux/modules/pwm/test/
[host:/.../armadeus]$ cp target/linux/modules/pwm/test/testplaymode $NFS_DIR
[host:/.../armadeus]$ cp target/linux/modules/pwm/test/KDE_Startup_2.raw $NFS_DIR

on target do:

# testplaymode

or

# testplaymode KDE_Startup_2.raw

Links