Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
PN532_SPI._wait_ready: fixed command overwriting
Use separate buffer for sending and receiving form SPI
This fixes #28
  • Loading branch information
basil-huber committed Jan 5, 2020
commit 3da8e1652c3926c505e411911d7c3e19d61317f8
8 changes: 4 additions & 4 deletions adafruit_pn532/spi.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,14 @@ def _wakeup(self):

def _wait_ready(self, timeout=1):
"""Poll PN532 if status byte is ready, up to `timeout` seconds"""
status = bytearray([reverse_bit(_SPI_STATREAD), 0])

status_cmd = bytearray([reverse_bit(_SPI_STATREAD), 0x00])
status_response = bytearray([0x00, 0x00])
timestamp = time.monotonic()
with self._spi as spi:
while (time.monotonic() - timestamp) < timeout:
time.sleep(0.02) # required
spi.write_readinto(status, status) #pylint: disable=no-member
if reverse_bit(status[1]) == 0x01: # LSB data is read in MSB
spi.write_readinto(status_cmd, status_response) #pylint: disable=no-member
if reverse_bit(status_response[1]) == 0x01: # LSB data is read in MSB
return True # Not busy anymore!
else:
time.sleep(0.01) # pause a bit till we ask again
Expand Down