Skip to content

Commit 80df787

Browse files
committed
Update SPI _wakeup to come out of power_down
`_wakeup` also puts the pn532 back into normal mode. Also removed some delays that aren't necessary.
1 parent cdedaf1 commit 80df787

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

adafruit_pn532/spi.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,19 @@ class PN532_SPI(PN532):
6767
def __init__(self, spi, cs_pin, *, irq=None, reset=None, debug=False):
6868
"""Create an instance of the PN532 class using SPI"""
6969
self.debug = debug
70-
self._irq = irq
7170
self._spi = spi_device.SPIDevice(spi, cs_pin)
72-
super().__init__(debug=debug, reset=reset)
71+
super().__init__(debug=debug, irq=irq, reset=reset)
7372

7473
def _wakeup(self):
7574
"""Send any special commands/data to wake up PN532"""
75+
if self._reset_pin:
76+
self._reset_pin.value = True
77+
time.sleep(0.01)
7678
with self._spi as spi:
77-
time.sleep(1)
7879
spi.write(bytearray([0x00])) # pylint: disable=no-member
79-
time.sleep(1)
80+
time.sleep(0.01)
81+
self.low_power = False
82+
self.SAM_configuration() # Put the PN532 back in normal mode
8083

8184
def _wait_ready(self, timeout=1):
8285
"""Poll PN532 if status byte is ready, up to `timeout` seconds"""
@@ -85,7 +88,6 @@ def _wait_ready(self, timeout=1):
8588
timestamp = time.monotonic()
8689
with self._spi as spi:
8790
while (time.monotonic() - timestamp) < timeout:
88-
time.sleep(0.02) # required
8991
spi.write_readinto(
9092
status_cmd, status_response
9193
) # pylint: disable=no-member
@@ -103,7 +105,6 @@ def _read_data(self, count):
103105
frame[0] = reverse_bit(_SPI_DATAREAD)
104106

105107
with self._spi as spi:
106-
time.sleep(0.02) # required
107108
spi.write_readinto(frame, frame) # pylint: disable=no-member
108109
for i, val in enumerate(frame):
109110
frame[i] = reverse_bit(val) # turn LSB data to MSB
@@ -119,5 +120,4 @@ def _write_data(self, framebytes):
119120
if self.debug:
120121
print("Writing: ", [hex(i) for i in rev_frame])
121122
with self._spi as spi:
122-
time.sleep(0.02) # required
123123
spi.write(bytes(rev_frame)) # pylint: disable=no-member

0 commit comments

Comments
 (0)