code: def _write_frame(self, data):
          
          assert data is not None and 0 < len(data) < 255, 'Data must be array of 1 to 255 bytes.'
          # Build frame to send as:
          # - SPI data write (0x01)
          # - Preamble (0x00)
          # - Start code  (0x00, 0xFF)
          # - Command length (1 byte)
          # - Command length checksum
          # - Command bytes
          # - Checksum
          # - Postamble (0x00)
          length = len(data)
          frame = bytearray(length+8)
          frame[0] = PN532_SPI_DATAWRITE
          frame[1] = PN532_PREAMBLE
          frame[2] = PN532_STARTCODE1
          frame[3] = PN532_STARTCODE2
          frame[4] = length & 0xFF
          frame[5] = self._uint8_add(~length, 1)
          frame[6:-2] = data
          checksum = reduce(self._uint8_add, data, 0xFF)
          frame[-2] = ~checksum & 0xFF
          frame[-1] = PN532_POSTAMBLE
          # Send frame.
          logger.debug('Write frame: 0x{0}'.format(binascii.hexlify(frame)))
          self._gpio.set_low(self._cs)
          self._busy_wait_ms(2)
          self._spi.write(frame)
          self._gpio.set_high(self._cs)
docs: Write a frame to the PN532 with the specified data bytearray.