summaryrefslogtreecommitdiff
path: root/docs/library/machine.rst
diff options
context:
space:
mode:
authordanicampora <daniel@wipy.io>2015-10-14 12:32:01 +0200
committerdanicampora <daniel@wipy.io>2015-10-17 23:29:04 +0200
commit4542643025c77a7272bde348b89d5039aea28d23 (patch)
treebf9fb006f46b96d2ea9ecf4aa190c4e4cc2abfc8 /docs/library/machine.rst
parentfca3308cc376f2c1c66fa3cef82e30c55c9acca2 (diff)
docs: Update all WiPy docs to reflect the new API.
Diffstat (limited to 'docs/library/machine.rst')
-rw-r--r--docs/library/machine.rst132
1 files changed, 132 insertions, 0 deletions
diff --git a/docs/library/machine.rst b/docs/library/machine.rst
new file mode 100644
index 000000000..f94454359
--- /dev/null
+++ b/docs/library/machine.rst
@@ -0,0 +1,132 @@
+:mod:`machine` --- functions related to the board
+=================================================
+
+.. module:: machine
+ :synopsis: functions related to the board
+
+The ``machine`` module contains specific functions related to the board.
+
+Reset related functions
+-----------------------
+
+.. function:: reset()
+
+ Resets the WiPy in a manner similar to pushing the external RESET
+ button.
+
+.. function:: reset_cause()
+
+ Get the reset cause. See :ref:`constants <machine_constants>` for the possible return values.
+
+Interrupt related functions
+---------------------------
+
+.. function:: disable_irq()
+
+ Disable interrupt requests.
+ Returns the previous IRQ state: ``False``/``True`` for disabled/enabled IRQs
+ respectively. This return value can be passed to enable_irq to restore
+ the IRQ to its original state.
+
+.. function:: enable_irq(state=True)
+
+ Enable interrupt requests.
+ If ``state`` is ``True`` (the default value) then IRQs are enabled.
+ If ``state`` is ``False`` then IRQs are disabled. The most common use of
+ this function is to pass it the value returned by ``disable_irq`` to
+ exit a critical section.
+
+Power related functions
+-----------------------
+
+.. function:: freq()
+
+ Returns a tuple of clock frequencies: ``(sysclk,)``
+ These correspond to:
+
+ - sysclk: frequency of the CPU
+
+.. function:: idle()
+
+ Gates the clock to the CPU, useful to reduce power consumption at any time during
+ short or long periods. Peripherals continue working and execution resumes as soon
+ as any interrupt is triggered (including the systick which has a period of 1ms).
+ Current consumption is reduced to ~12mA (in WLAN STA mode)
+
+.. function:: sleep()
+
+ Stops the CPU and disables all peripherals except for WLAN. Execution is resumed from
+ the point where the sleep was requested. Wake sources are ``Pin``, ``RTC`` and ``WLAN``.
+ Current consumption is reduced to 950uA (in WLAN STA mode).
+
+.. function:: deepsleep()
+
+ Stops the CPU and all peripherals including WLAN. Execution is resumed from main, just
+ as with a reset. The reset cause can be checked to know that we are coming from
+ from ``machine.DEEPSLEEP``. Wake sources are ``Pin`` and ``RTC``. Current consumption
+ is reduced to ~5uA.
+
+.. function:: wake_reason()
+
+ Get the wake reason. See :ref:`constants <machine_constants>` for the possible return values.
+
+Miscellaneous functions
+-----------------------
+
+.. function:: main(filename)
+
+ Set the filename of the main script to run after boot.py is finished. If
+ this function is not called then the default file main.py will be executed.
+
+ It only makes sense to call this function from within boot.py.
+
+.. function:: rng()
+
+ Return a 24-bit software generated random number.
+
+.. function:: unique_id()
+
+ Returns a string of 6 bytes (48 bits), which is the unique ID of the MCU.
+ This also corresponds to the ``MAC address`` of the WiPy.
+
+.. _machine_constants:
+
+Constants
+---------
+
+.. data:: machine.IDLE
+.. data:: machine.SLEEP
+.. data:: machine.DEEPSLEEP
+
+ irq wake values
+
+.. data:: machine.POWER_ON
+.. data:: machine.HARD_RESET
+.. data:: machine.WDT_RESET
+.. data:: machine.DEEPSLEEP_RESET
+.. data:: machine.SOFT_RESET
+
+ reset causes
+
+.. data:: machine.WLAN_WAKE
+.. data:: machine.PIN_WAKE
+.. data:: machine.RTC_WAKE
+
+ wake reasons
+
+Classes
+-------
+
+.. toctree::
+ :maxdepth: 1
+
+ machine.ADC.rst
+ machine.HeartBeat.rst
+ machine.I2C.rst
+ machine.Pin.rst
+ machine.RTC.rst
+ machine.SD.rst
+ machine.SPI.rst
+ machine.Timer.rst
+ machine.UART.rst
+ machine.WDT.rst