docs/machine.Pin: Move wipy-specific details to its own docs.
This commit is contained in:
parent
9a38b7afe0
commit
d46899626e
|
@ -38,58 +38,6 @@ Usage Model::
|
||||||
# configure an irq callback
|
# configure an irq callback
|
||||||
p0.irq(lambda p:print(p))
|
p0.irq(lambda p:print(p))
|
||||||
|
|
||||||
.. only:: port_wipy
|
|
||||||
|
|
||||||
On the WiPy board the pins are identified by their string id::
|
|
||||||
|
|
||||||
from machine import Pin
|
|
||||||
g = machine.Pin('GP9', mode=Pin.OUT, pull=None, drive=Pin.MED_POWER, alt=-1)
|
|
||||||
|
|
||||||
You can also configure the Pin to generate interrupts. For instance::
|
|
||||||
|
|
||||||
from machine import Pin
|
|
||||||
|
|
||||||
def pincb(pin):
|
|
||||||
print(pin.id())
|
|
||||||
|
|
||||||
pin_int = Pin('GP10', mode=Pin.IN, pull=Pin.PULL_DOWN)
|
|
||||||
pin_int.irq(trigger=Pin.IRQ_RISING, handler=pincb)
|
|
||||||
# the callback can be triggered manually
|
|
||||||
pin_int.irq()()
|
|
||||||
# to disable the callback
|
|
||||||
pin_int.irq().disable()
|
|
||||||
|
|
||||||
Now every time a falling edge is seen on the gpio pin, the callback will be
|
|
||||||
executed. Caution: mechanical push buttons have "bounce" and pushing or
|
|
||||||
releasing a switch will often generate multiple edges.
|
|
||||||
See: http://www.eng.utah.edu/~cs5780/debouncing.pdf for a detailed
|
|
||||||
explanation, along with various techniques for debouncing.
|
|
||||||
|
|
||||||
All pin objects go through the pin mapper to come up with one of the
|
|
||||||
gpio pins.
|
|
||||||
|
|
||||||
For the ``drive`` parameter the strengths are:
|
|
||||||
|
|
||||||
- ``Pin.LOW_POWER`` - 2mA drive capability.
|
|
||||||
- ``Pin.MED_POWER`` - 4mA drive capability.
|
|
||||||
- ``Pin.HIGH_POWER`` - 6mA drive capability.
|
|
||||||
|
|
||||||
For the ``alt`` parameter please refer to the pinout and alternate functions
|
|
||||||
table at <https://raw.githubusercontent.com/wipy/wipy/master/docs/PinOUT.png>`_
|
|
||||||
for the specific alternate functions that each pin supports.
|
|
||||||
|
|
||||||
For interrupts, the ``priority`` can take values in the range 1-7. And the
|
|
||||||
``wake`` parameter has the following properties:
|
|
||||||
|
|
||||||
- If ``wake_from=machine.Sleep.ACTIVE`` any pin can wake the board.
|
|
||||||
- If ``wake_from=machine.Sleep.SUSPENDED`` pins ``GP2``, ``GP4``, ``GP10``,
|
|
||||||
``GP11``, GP17`` or ``GP24`` can wake the board. Note that only 1
|
|
||||||
of this pins can be enabled as a wake source at the same time, so, only
|
|
||||||
the last enabled pin as a ``machine.Sleep.SUSPENDED`` wake source will have effect.
|
|
||||||
- If ``wake_from=machine.Sleep.SUSPENDED`` pins ``GP2``, ``GP4``, ``GP10``,
|
|
||||||
``GP11``, ``GP17`` and ``GP24`` can wake the board. In this case all of the
|
|
||||||
6 pins can be enabled as a ``machine.Sleep.HIBERNATE`` wake source at the same time.
|
|
||||||
|
|
||||||
Constructors
|
Constructors
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
|
@ -179,3 +179,56 @@ Details on sleep modes
|
||||||
* ``machine.sleep()``: 950uA (in WLAN STA mode). Wake sources are ``Pin``, ``RTC``
|
* ``machine.sleep()``: 950uA (in WLAN STA mode). Wake sources are ``Pin``, ``RTC``
|
||||||
and ``WLAN``
|
and ``WLAN``
|
||||||
* ``machine.deepsleep()``: ~350uA. Wake sources are ``Pin`` and ``RTC``.
|
* ``machine.deepsleep()``: ~350uA. Wake sources are ``Pin`` and ``RTC``.
|
||||||
|
|
||||||
|
Additional details for machine.Pin
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
On the WiPy board the pins are identified by their string id::
|
||||||
|
|
||||||
|
from machine import Pin
|
||||||
|
g = machine.Pin('GP9', mode=Pin.OUT, pull=None, drive=Pin.MED_POWER, alt=-1)
|
||||||
|
|
||||||
|
You can also configure the Pin to generate interrupts. For instance::
|
||||||
|
|
||||||
|
from machine import Pin
|
||||||
|
|
||||||
|
def pincb(pin):
|
||||||
|
print(pin.id())
|
||||||
|
|
||||||
|
pin_int = Pin('GP10', mode=Pin.IN, pull=Pin.PULL_DOWN)
|
||||||
|
pin_int.irq(trigger=Pin.IRQ_RISING, handler=pincb)
|
||||||
|
# the callback can be triggered manually
|
||||||
|
pin_int.irq()()
|
||||||
|
# to disable the callback
|
||||||
|
pin_int.irq().disable()
|
||||||
|
|
||||||
|
Now every time a falling edge is seen on the gpio pin, the callback will be
|
||||||
|
executed. Caution: mechanical push buttons have "bounce" and pushing or
|
||||||
|
releasing a switch will often generate multiple edges.
|
||||||
|
See: http://www.eng.utah.edu/~cs5780/debouncing.pdf for a detailed
|
||||||
|
explanation, along with various techniques for debouncing.
|
||||||
|
|
||||||
|
All pin objects go through the pin mapper to come up with one of the
|
||||||
|
gpio pins.
|
||||||
|
|
||||||
|
For the ``drive`` parameter the strengths are:
|
||||||
|
|
||||||
|
- ``Pin.LOW_POWER`` - 2mA drive capability.
|
||||||
|
- ``Pin.MED_POWER`` - 4mA drive capability.
|
||||||
|
- ``Pin.HIGH_POWER`` - 6mA drive capability.
|
||||||
|
|
||||||
|
For the ``alt`` parameter please refer to the pinout and alternate functions
|
||||||
|
table at <https://raw.githubusercontent.com/wipy/wipy/master/docs/PinOUT.png>`_
|
||||||
|
for the specific alternate functions that each pin supports.
|
||||||
|
|
||||||
|
For interrupts, the ``priority`` can take values in the range 1-7. And the
|
||||||
|
``wake`` parameter has the following properties:
|
||||||
|
|
||||||
|
- If ``wake_from=machine.Sleep.ACTIVE`` any pin can wake the board.
|
||||||
|
- If ``wake_from=machine.Sleep.SUSPENDED`` pins ``GP2``, ``GP4``, ``GP10``,
|
||||||
|
``GP11``, GP17`` or ``GP24`` can wake the board. Note that only 1
|
||||||
|
of this pins can be enabled as a wake source at the same time, so, only
|
||||||
|
the last enabled pin as a ``machine.Sleep.SUSPENDED`` wake source will have effect.
|
||||||
|
- If ``wake_from=machine.Sleep.SUSPENDED`` pins ``GP2``, ``GP4``, ``GP10``,
|
||||||
|
``GP11``, ``GP17`` and ``GP24`` can wake the board. In this case all of the
|
||||||
|
6 pins can be enabled as a ``machine.Sleep.HIBERNATE`` wake source at the same time.
|
||||||
|
|
Loading…
Reference in New Issue