aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/pwm.rst
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-06-11 19:25:29 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2011-06-11 20:05:33 -0400
commit0c2b3c667bf157dc2344e3dbc2aae0e11e37387b (patch)
tree3008ee192c80f17f640ebdeb870442e78415ce6b /docs/source/pwm.rst
parentd4b576fcadecf66b7b754af7d204bb6f3b4a9830 (diff)
downloadlibrambutan-0c2b3c667bf157dc2344e3dbc2aae0e11e37387b.tar.gz
librambutan-0c2b3c667bf157dc2344e3dbc2aae0e11e37387b.zip
Remove reST documentation, attendant updates.
The documentation covers topics not specifically relevant to libmaple, so it doesn't make sense for it to be part of the libmaple source distribution. Delete the docs/ tree, and prepare libmaple for use with the new leaflabs-docs repo, which will contain the docs from now on. * README: update to reflect this change * support/doxygen/Doxyfile: This is the old docs/Doxyfile * Makefile: Add a doxygen target * wirish/comm/HardwareSerial.h: fix reference to docs/. The comment informing maintainers that the HardwareSerial interface is documented by hand refers to the docs/ tree, which no longer exists. Update it to refer to the separate leaflabs-docs repository. * support/scripts/copy-to-ide: No longer build the documentation
Diffstat (limited to 'docs/source/pwm.rst')
-rw-r--r--docs/source/pwm.rst103
1 files changed, 0 insertions, 103 deletions
diff --git a/docs/source/pwm.rst b/docs/source/pwm.rst
deleted file mode 100644
index 34ad508..0000000
--- a/docs/source/pwm.rst
+++ /dev/null
@@ -1,103 +0,0 @@
-.. _pwm:
-
-PWM
-===
-
-Pulse Width Modulation (PWM) is a basic technique to create repeated square
-waves (digital high/low voltage transitions) of user defined length
-and duty cycle. It can be used as a way to encode an "analog" signal
-on a single digital (high/low) line using the time between transitions
-("pulse width") as the variable; this technique is commonly used to
-send servo position and motor speed commands. Another use is to use to
-the ratio of "high" and "low" time to approximate a voltage output;
-this technique can be used to dim an LED or even (with careful
-filtering) generate audio waveforms.
-
-.. contents:: Contents
- :local:
-
-Overview
---------
-
-.. FIXME [0.1.0] More information about how timer channels drive PWM
-
-Each PWM output is driven by an output channel connected to one of 4
-timers. Some configuration, such as the clock rate or prescaling,
-must be common to the entire timer; see the :ref:`timer documentation
-<timers>` for more information. See your board's :ref:`pin mapping
-tables <gpio-pin-maps>` to track down the correspondence
-between timer channels and GPIO pins.
-
-Background
-----------
-
-In its simplest form, the device is a single counter with two
-variables. The counter starts at zero, and the output starts at
-"high". The counter increments every clock cycle until it reaches the
-first variable number, at which point the output goes "low". The
-counter continues incrementing until it reaches the second variable at
-which point the output goes "high" again and the counter resets to
-zero. The time spent with output high is called the **pulse duration**
-or **duty**; the total time before repeat is the **period**.
-
-This simple functionality could be approximated in software by setting
-a GPIO high or low, but the beauty of PWM is that user code simply has
-to configure the device and set the two variables and the device will
-function on its own; no further microprocessor cycles will be
-consumed, and a repeated high/low waveform will spew out.
-
-The Maple has 16-bit PWM resolution, which means that the counter and
-variables can be as large as 65535, as opposed to 255 with 8-bit
-resolution. With a 72MHz clock rate, a PWM output could have maximum
-period of about one millisecond; using a :ref:`prescaler
-<lang-hardwaretimer-setprescalefactor>` (clock divider) in front of
-the counter can increase this maximum period. Setting the
-:ref:`period <lang-hardwaretimer-setperiod>` to something other than
-the maximum value gives further control over the total length of the
-waveform. However, this effectively limits the resolution with which
-the duty can be modified: the duty must be less than or equal to the
-period.
-
-Here are some commonly used PWM configurations (note that servos are
-notoriously variable, especially the lower cost models):
-
-+-------------+----------+-----------+---------+---------------+------+
-|**Purpose** |**Period**|**Duty** |Prescaler|Period |Duty |
-| |(ms) |(ms) | | | |
-+=============+==========+===========+=========+===============+======+
-|LED throb |0.020 |0--0.020 |1 (none) |65535 (default)|0--767|
-| | | | | | |
-+-------------+----------+-----------+---------+---------------+------+
-|Servo control|20 |1.25 (0°) |21 |65535 (default)|4096 |
-| | | | | | |
-| | |1.50 (90°) |21 |65535 (default)|4915 |
-| | | | | | |
-| | |1.75 (180°)|21 |65535 (default)|5734 |
-| | | | | | |
-+-------------+----------+-----------+---------+---------------+------+
-
-Function Reference
-------------------
-
-- :ref:`lang-pinmode`
-- :ref:`lang-pwmwrite`
-- :ref:`Timer API<lang-hardwaretimer>` (especially :ref:`setOverflow()
- <lang-hardwaretimer-setoverflow>`, :ref:`setPrescaleFactor()
- <lang-hardwaretimer-setprescalefactor>`, and :ref:`setPeriod()
- <lang-hardwaretimer-setperiod>`).
-- :ref:`Timers reference <timers>`.
-
-Recommended Reading
--------------------
-
-* `Wikipedia Article on Pulse-width modulation
- <http://en.wikipedia.org/wiki/Pulse-width_modulation>`_
-* `Arduino tutorial on PWM <http://www.arduino.cc/en/Tutorial/PWM>`_
-* `Secrets of Arduino PWM
- <http://www.arcfn.com/2009/07/secrets-of-arduino-pwm.html>`_ by Ken
- Shirriff
-* `So You Want To Use PWM, Eh? <http://www.arcfn.com/2009/07/secrets-of-arduino-pwm.html>`_ at Non-Lexical Vocables
-* STMicro documentation for STM32F103RB microcontroller:
-
- * `Datasheet <http://www.st.com/stonline/products/literature/ds/13587.pdf>`_ (pdf)
- * `Reference Manual <http://www.st.com/stonline/products/literature/rm/13902.pdf>`_ (pdf)