diff --git a/adafruit_pn532/adafruit_pn532.py b/adafruit_pn532/adafruit_pn532.py index 35c0f86..513dcec 100644 --- a/adafruit_pn532/adafruit_pn532.py +++ b/adafruit_pn532/adafruit_pn532.py @@ -28,7 +28,6 @@ Implementation Notes import time from digitalio import Direction - from micropython import const try: @@ -164,7 +163,7 @@ class PN532: *, debug: bool = False, irq: Optional[DigitalInOut] = None, - reset: Optional[DigitalInOut] = None + reset: Optional[DigitalInOut] = None, ) -> None: """Create an instance of the PN532 class""" self.low_power = True diff --git a/adafruit_pn532/i2c.py b/adafruit_pn532/i2c.py index 63c4365..657688c 100644 --- a/adafruit_pn532/i2c.py +++ b/adafruit_pn532/i2c.py @@ -49,6 +49,46 @@ class PN532_I2C(PN532): """Create an instance of the PN532 class using I2C. Note that PN532 uses clock stretching. Optional IRQ pin (not used), resetp pin and debugging output. + + :param ~busio.I2C i2c: The I2C bus the PN532 is connected to. + :param int address: The I2C device address. Defaults to :const:`0x24` + :param digitalio.DigitalInOut irq: board pin the PN532 IRQ is connected to + :param digitalio.DigitalInOut reset: board pin the PN532 RSTOUT_N is connected to + :param digitalio.DigitalInOut req: board pin the PN532 P32 is connected to + :param bool debug: if True print additional debug statements. Defaults to False + + **Quickstart: Importing and using the device** + + Here is an example of using the :class:`PN532_I2C` class. + First you will need to import the libraries to use the sensor + + .. code-block:: python + + import board + import busio + from digitalio import DigitalInOut + from adafruit_pn532.i2c import PN532_I2C + + Once this is done you can define your `board.I2C` object and define your object + + .. code-block:: python + + i2c = busio.I2C(board.SCL, board.SDA) + reset_pin = DigitalInOut(board.D6) + # On Raspberry Pi, you must also connect a pin to P32 "H_Request" for hardware + # wakeup! this means we don't need to do the I2C clock-stretch thing + req_pin = DigitalInOut(board.D12) + pn532 = PN532_I2C(i2c, debug=False, reset=reset_pin, req=req_pin) + # Configure PN532 to communicate with MiFare cards + pn532.SAM_configuration() + + Now you have access to the attributes and functions of the PN532 RFID/NFC + shield or breakout + + .. code-block:: python + + uid = pn532.read_passive_target(timeout=0.5) + """ self.debug = debug self._req = req diff --git a/adafruit_pn532/spi.py b/adafruit_pn532/spi.py index 72afa18..d1a8566 100644 --- a/adafruit_pn532/spi.py +++ b/adafruit_pn532/spi.py @@ -61,7 +61,43 @@ class PN532_SPI(PN532): reset: Optional[DigitalInOut] = None, debug: bool = False ) -> None: - """Create an instance of the PN532 class using SPI""" + """Create an instance of the PN532 class using SPI + Optional IRQ pin (not used) + + :param ~busio.SPI spi: The spi bus the PN532 is connected to. + :param digitalio.DigitalInOut cs: board pin the PN532 chip select line is connected to + :param digitalio.DigitalInOut irq: board pin the PN532 P32 is connected to + :param digitalio.DigitalInOut reset: board pin the PN532 RSTOUT_N is connected to + :param bool debug: if True print additional debug statements. Defaults to False + + + **Quickstart: Importing and using the device** + Here is an example of using the :class:`PN532_SPI` class. + First you will need to import the libraries to use the sensor + + .. code-block:: python + + import board + import busio + from digitalio import DigitalInOut + from adafruit_pn532.spi import PN532_SPI + + Once this is done you can define your `busio.SPI` object and define your PN532 object + + .. code-block:: python + + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) + cs_pin = DigitalInOut(board.D5) + pn532 = PN532_SPI(spi, cs_pin, debug=False) + + Now you have access to the attributes and functions of the PN532 RFID/NFC + shield or breakout + + .. code-block:: python + + uid = pn532.read_passive_target(timeout=0.5) + + """ self.debug = debug self._spi = spi_device.SPIDevice(spi, cs_pin) super().__init__(debug=debug, irq=irq, reset=reset) diff --git a/adafruit_pn532/uart.py b/adafruit_pn532/uart.py index 57548c3..8f8949b 100644 --- a/adafruit_pn532/uart.py +++ b/adafruit_pn532/uart.py @@ -37,6 +37,37 @@ class PN532_UART(PN532): ) -> None: """Create an instance of the PN532 class using Serial connection. Optional reset pin and debugging output. + + :param ~busio.UART uart: The uart object the PN532 is connected to. + :param digitalio.DigitalInOut reset: board pin the PN532 RSTOUT_N is connected to + :param bool debug: if True print additional debug statements. Defaults to False + + **Quickstart: Importing and using the device** + + Here is an example of using the :class:`PN532_I2C` class. + First you will need to import the libraries to use the sensor + + .. code-block:: python + + import board + import busio + from digitalio import DigitalInOut + from adafruit_pn532.uart import PN532_UART + + Once this is done you can define your `busio.UART` object and define your PN532 object + + .. code-block:: python + + uart = busio.UART(board.TX, board.RX, baudrate=115200, timeout=0.1) + pn532 = PN532_UART(uart, debug=False) + + Now you have access to the attributes and functions of the PN532 RFID/NFC + shield or breakout + + .. code-block:: python + + uid = pn532.read_passive_target(timeout=0.5) + """ self.debug = debug self._uart = uart diff --git a/docs/conf.py b/docs/conf.py index 1d78ab7..4651af0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -39,6 +39,8 @@ intersphinx_mapping = { "CircuitPython": ("https://docs.circuitpython.org/en/latest/", None), } +autoclass_content = "both" + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"]