Difference between revisions of "PWM Generator"

From Ethersex_Wiki
Jump to: navigation, search
m (Connection)
(Connection)
Line 27: Line 27:
 
Here the version for the AtMega32:
 
Here the version for the AtMega32:
  
  ifdef(`conf_PWM', `dnl
+
  ifdef(`conf_CH_A_PWM_GENERAL', `dnl
#ifdef CH_A_PWM_GENERAL_SUPPORT
 
 
   pin(CHANNEL_A_PWM, PD5, OUTPUT)
 
   pin(CHANNEL_A_PWM, PD5, OUTPUT)
  #endif /* CH_A_PWM_GENERAL_SUPPORT */
+
  ')
  #ifdef CH_B_PWM_GENERAL_SUPPORT
+
  ifdef(`conf_CH_B_PWM_GENERAL', `dnl
 
   pin(CHANNEL_B_PWM, PD4, OUTPUT)
 
   pin(CHANNEL_B_PWM, PD4, OUTPUT)
  #endif /* CH_B_PWM_GENERAL_SUPPORT */
+
  ')
  #ifdef CH_C_PWM_GENERAL_SUPPORT
+
  ifdef(`conf_CH_C_PWM_GENERAL', `dnl
   #error 3 Channel pwm unsupported.
+
   # error 3 Channel pwm unsupported.
#endif /* CH_C_PWM_GENERAL_SUPPORT */
 
 
  ')
 
  ')
  
 
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.
 
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.

Revision as of 23:41, 24 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 thre 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]


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.