Difference between revisions of "PWM Generator"
m |
|||
| (8 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
|NAME=PWM Generator | |NAME=PWM Generator | ||
|MENUCONFIG={{I/O}}->PWM Generator | |MENUCONFIG={{I/O}}->PWM Generator | ||
| − | |STATUS={Unstable}} | + | |STATUS={{Unstable}} |
|PINNING=yes | |PINNING=yes | ||
|ECMD={{has_ecmd}} | |ECMD={{has_ecmd}} | ||
| Line 13: | Line 13: | ||
Pulse wide modulator generator with up to 3 channels. | Pulse wide modulator generator with up to 3 channels. | ||
| + | |||
| + | This module uses the avr timers to generate the pwm signals, so for every channel a timer is necessary. | ||
| + | It depends on the hardware and other modules, if three timers are available for the the three channels. | ||
| + | |||
| + | To get background infos you can have a look at this tutorial (in german): [[http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM AVR-Tutorial: PWM]] | ||
| + | |||
| + | Status: Basic modul works - tested and used 2012-05-25 | ||
== Connection == | == Connection == | ||
| + | |||
| + | Every channels requieres a port, but since the timers are used, the ports have a predefined assignment - depending on the mcrocontroller. | ||
| + | |||
| + | Nevertheless you have to do some pin definition. | ||
| + | Here the version for the AtMega32: | ||
| + | |||
| + | ifdef(`conf_CH_A_PWM_GENERAL', `dnl | ||
| + | pin(CHANNEL_A_PWM, PD5, OUTPUT) | ||
| + | ') | ||
| + | ifdef(`conf_CH_B_PWM_GENERAL', `dnl | ||
| + | pin(CHANNEL_B_PWM, PD4, OUTPUT) | ||
| + | ') | ||
| + | ifdef(`conf_CH_C_PWM_GENERAL', `dnl | ||
| + | # error 3 Channel pwm unsupported. | ||
| + | ') | ||
| + | |||
| + | You can also use the script add-hardware (in folder scripts) to generate a board-layout for your current configuration. I don't know the current status of the script - so it is possible, that not every features is supported. | ||
| + | |||
| + | == Optional components == | ||
| + | |||
| + | === PWM Wave === | ||
| + | |||
| + | Output of wave files | ||
| + | |||
| + | === PWM Melody === | ||
| + | |||
| + | Melody generator | ||
| + | |||
| + | === PWM Servo === | ||
| + | |||
| + | Control a servo motor | ||
Latest revision as of 17:57, 25 May 2012
| PWM Generator | |
|---|---|
| Status | Unstable/Broken
|
| menuconfig | I/O->PWM Generator |
| Pinning | yes |
| Ecmd | yes |
| Depends on | ECMD |
| Requires | - |
| Code | https://github.com/ethersex/ethersex/tree/master/hardware/pwm |
Pulse wide modulator generator with up to 3 channels.
This module uses the avr timers to generate the pwm signals, so for every channel a timer is necessary. It depends on the hardware and other modules, if three timers are available for the the three channels.
To get background infos you can have a look at this tutorial (in german): [AVR-Tutorial: PWM]
Status: Basic modul works - tested and used 2012-05-25
Connection
Every channels requieres a port, but since the timers are used, the ports have a predefined assignment - depending on the mcrocontroller.
Nevertheless you have to do some pin definition. Here the version for the AtMega32:
ifdef(`conf_CH_A_PWM_GENERAL', `dnl pin(CHANNEL_A_PWM, PD5, OUTPUT) ') ifdef(`conf_CH_B_PWM_GENERAL', `dnl pin(CHANNEL_B_PWM, PD4, OUTPUT) ') ifdef(`conf_CH_C_PWM_GENERAL', `dnl # error 3 Channel pwm unsupported. ')
You can also use the script add-hardware (in folder scripts) to generate a board-layout for your current configuration. I don't know the current status of the script - so it is possible, that not every features is supported.
Optional components
PWM Wave
Output of wave files
PWM Melody
Melody generator
PWM Servo
Control a servo motor