10#ifndef M5_UNIT_NFC_UNIT_ST25R3916_HPP
11#define M5_UNIT_NFC_UNIT_ST25R3916_HPP
13#include <M5UnitComponent.hpp>
26struct ListenerST25R3916ForA;
27struct ListenerST25R3916ForF;
32struct AdapterST25R3916;
47 explicit UnitST25R3916(
const uint8_t arg = DEFAULT_ADDRESS) : Component(arg)
49 auto ccfg = component_config();
50 ccfg.clock = 400 * 1000U;
51 component_config(ccfg);
59 virtual bool begin()
override;
64 virtual void update(
const bool force =
false)
override;
137 bool writeDirectCommand(
const uint8_t cmd,
const uint8_t* data =
nullptr,
const uint32_t dlen = 0u);
194 uint32_t
readFIFO(uint16_t& actual, uint8_t* buf,
const uint16_t buf_size);
201 bool writeFIFO(
const uint8_t* buf,
const uint16_t buf_size);
213 return read_register8(st25r3916::command::REG_IO_CONFIGURATION_1, value);
222 return write_register8(st25r3916::command::REG_IO_CONFIGURATION_1, value);
231 return read_register8(st25r3916::command::REG_IO_CONFIGURATION_2, value);
240 return write_register8(st25r3916::command::REG_IO_CONFIGURATION_2, value);
249 return read_register16(st25r3916::command::REG_IO_CONFIGURATION_1, value);
258 return write_register16(st25r3916::command::REG_IO_CONFIGURATION_1, value);
271 return read_register8(st25r3916::command::REG_OPERATION_CONTROL, value);
280 return write_register8(st25r3916::command::REG_OPERATION_CONTROL, value);
289 return read_register8(st25r3916::command::REG_MODE_DEFINITION, value);
298 return write_register8(st25r3916::command::REG_MODE_DEFINITION, value);
307 return read_register8(st25r3916::command::REG_BITRATE_DEFINITION, value);
316 return write_register8(st25r3916::command::REG_BITRATE_DEFINITION, value);
329 return read_register8(st25r3916::command::REG_ISO14443A_SETTINGS, value);
338 return write_register8(st25r3916::command::REG_ISO14443A_SETTINGS, value);
347 return read_register8(st25r3916::command::REG_ISO14443B_SETTINGS, value);
356 return write_register8(st25r3916::command::REG_ISO14443B_SETTINGS, value);
365 return read_register8(st25r3916::command::REG_FELICA_SETTINGS, value);
374 return write_register8(st25r3916::command::REG_FELICA_SETTINGS, value);
383 return read_register8(st25r3916::command::REG_NFCIP_1_PASSIVE_TARGET_DEFINITION, value);
392 return write_register8(st25r3916::command::REG_NFCIP_1_PASSIVE_TARGET_DEFINITION, value);
401 return read_register8(st25r3916::command::REG_STREAM_MODE_DEFINITION, value);
410 return write_register8(st25r3916::command::REG_STREAM_MODE_DEFINITION, value);
419 return read_register8(st25r3916::command::REG_AUXILIARY_DEFINITION, value);
428 return write_register8(st25r3916::command::REG_AUXILIARY_DEFINITION, value);
438 return read_register8(st25r3916::command::REG_EMD_SUPPRESSION_CONFIGURATION, value);
447 return write_register8(st25r3916::command::REG_EMD_SUPPRESSION_CONFIGURATION, value);
456 return read_register8(st25r3916::command::REG_SUBCARRIER_START_TIMER, value);
465 return write_register8(st25r3916::command::REG_SUBCARRIER_START_TIMER, value);
478 return read_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_1, value);
487 return write_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_1, value);
496 return read_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_2, value);
505 return write_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_2, value);
514 return read_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_3, value);
523 return write_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_3, value);
532 return read_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_4, value);
541 return write_register8(st25r3916::command::REG_RECEIVER_CONFIGURATION_4, value);
550 return read_register32(st25r3916::command::REG_RECEIVER_CONFIGURATION_1, value);
559 return write_register32(st25r3916::command::REG_RECEIVER_CONFIGURATION_1, value);
569 return read_register8(st25r3916::command::REG_P2P_RECEIVER_CONFIGURATION, value);
578 return write_register8(st25r3916::command::REG_P2P_RECEIVER_CONFIGURATION, value);
587 return read_register8(st25r3916::command::REG_CORRELATOR_CONFIGURATION_1, value);
596 return write_register8(st25r3916::command::REG_CORRELATOR_CONFIGURATION_1, value);
605 return read_register8(st25r3916::command::REG_CORRELATOR_CONFIGURATION_2, value);
614 return write_register8(st25r3916::command::REG_CORRELATOR_CONFIGURATION_2, value);
623 return read_register16(st25r3916::command::REG_CORRELATOR_CONFIGURATION_1, value);
632 return write_register16(st25r3916::command::REG_CORRELATOR_CONFIGURATION_1, value);
645 return read_register8(st25r3916::command::REG_MASK_RECEIVER_TIMER, value);
654 return write_register8(st25r3916::command::REG_MASK_RECEIVER_TIMER, value);
663 return read_register8(st25r3916::command::REG_NO_RESPONSE_TIMER_1, value);
672 return write_register8(st25r3916::command::REG_NO_RESPONSE_TIMER_1, value);
681 return read_register8(st25r3916::command::REG_NO_RESPONSE_TIMER_2, value);
690 return write_register8(st25r3916::command::REG_NO_RESPONSE_TIMER_2, value);
699 return read_register16(st25r3916::command::REG_NO_RESPONSE_TIMER_1, value);
708 return write_register16(st25r3916::command::REG_NO_RESPONSE_TIMER_1, value);
717 return read_register8(st25r3916::command::REG_TIMER_AND_EMV_CONTROL, value);
726 return write_register8(st25r3916::command::REG_TIMER_AND_EMV_CONTROL, value);
735 return read_register8(st25r3916::command::REG_GENERAL_PURPOSE_TIMER_1, value);
744 return write_register8(st25r3916::command::REG_GENERAL_PURPOSE_TIMER_1, value);
753 return read_register8(st25r3916::command::REG_GENERAL_PURPOSE_TIMER_2, value);
762 return write_register8(st25r3916::command::REG_GENERAL_PURPOSE_TIMER_2, value);
771 return read_register16(st25r3916::command::REG_GENERAL_PURPOSE_TIMER_1, value);
780 return write_register16(st25r3916::command::REG_GENERAL_PURPOSE_TIMER_1, value);
789 return read_register8(st25r3916::command::REG_PPON2_FIELD_WAITING, value);
798 return write_register8(st25r3916::command::REG_PPON2_FIELD_WAITING, value);
808 return read_register8(st25r3916::command::REG_SQUELCH_TIMER, value);
817 return write_register8(st25r3916::command::REG_SQUELCH_TIMER, value);
826 return read_register8(st25r3916::command::REG_NFC_FIELD_ON_GUARD_TIMER, value);
835 return write_register8(st25r3916::command::REG_NFC_FIELD_ON_GUARD_TIMER, value);
848 return read_register8(st25r3916::command::REG_MASK_MAIN_INTERRUPT, value);
857 if (write_register8(st25r3916::command::REG_MASK_MAIN_INTERRUPT, value)) {
858 _enabled_irq = (_enabled_irq & 0x00FFFFFF) | ((uint32_t)~value << 24);
870 return read_register8(st25r3916::command::REG_MASK_TIMER_AND_NFC_INTERRUPT, value);
879 if (write_register8(st25r3916::command::REG_MASK_TIMER_AND_NFC_INTERRUPT, value)) {
880 _enabled_irq = (_enabled_irq & 0xFF00FFFF) | ((uint32_t)~value << 16);
892 return read_register8(st25r3916::command::REG_MASK_ERROR_AND_WAKEUP_INTERRUPT, value);
901 if (write_register8(st25r3916::command::REG_MASK_ERROR_AND_WAKEUP_INTERRUPT, value)) {
902 _enabled_irq = (_enabled_irq & 0xFFFF00FF) | ((uint32_t)~value << 8);
914 return read_register8(st25r3916::command::REG_MASK_PASSIVE_TARGET_INTERRUPT, value);
923 if (write_register8(st25r3916::command::REG_MASK_PASSIVE_TARGET_INTERRUPT, value)) {
924 _enabled_irq = (_enabled_irq & 0xFFFFFF00) | (uint32_t)~value;
936 return read_register32(st25r3916::command::REG_MASK_MAIN_INTERRUPT, value);
945 if (write_register32(st25r3916::command::REG_MASK_MAIN_INTERRUPT, value)) {
946 _enabled_irq = ~value;
959 return read_register8(st25r3916::command::REG_MAIN_INTERRUPT, value);
968 return read_register8(st25r3916::command::REG_TIMER_AND_NFC_INTERRUPT, value);
978 return read_register8(st25r3916::command::REG_ERROR_AND_WAKEUP_INTERRUPT, value);
987 return read_register8(st25r3916::command::REG_PASSIVE_TARGET_INTERRUPT, value);
1003 return read_register8(st25r3916::command::REG_FIFO_STATUS_1, value);
1012 return read_register8(st25r3916::command::REG_FIFO_STATUS_2, value);
1021 return read_register16(st25r3916::command::REG_FIFO_STATUS_1, value);
1031 return read_register8(st25r3916::command::REG_COLLISION_DISPLAY, value);
1040 return read_register8(st25r3916::command::REG_PASSIVE_TARGET_DISPLAY, value);
1053 return read_register8(st25r3916::command::REG_NUMBER_OF_TRANSMITTED_BYTES_1, value);
1062 return write_register8(st25r3916::command::REG_NUMBER_OF_TRANSMITTED_BYTES_1, value);
1071 return read_register8(st25r3916::command::REG_NUMBER_OF_TRANSMITTED_BYTES_2, value);
1080 return write_register8(st25r3916::command::REG_NUMBER_OF_TRANSMITTED_BYTES_2, value);
1089 return read_register16(st25r3916::command::REG_NUMBER_OF_TRANSMITTED_BYTES_1, value);
1098 return write_register16(st25r3916::command::REG_NUMBER_OF_TRANSMITTED_BYTES_1, value);
1120 return read_register8(st25r3916::command::REG_BITRATE_DETECTION_DISPLAY, value);
1133 return read_register8(st25r3916::command::REG_AD_CONVERTER_OUTPUT, value);
1146 return read_register8(st25r3916::command::REG_ANTENNA_TUNING_CONTROL_1, value);
1155 return write_register8(st25r3916::command::REG_ANTENNA_TUNING_CONTROL_1, value);
1164 return read_register8(st25r3916::command::REG_ANTENNA_TUNING_CONTROL_2, value);
1173 return write_register8(st25r3916::command::REG_ANTENNA_TUNING_CONTROL_2, value);
1182 return read_register16(st25r3916::command::REG_ANTENNA_TUNING_CONTROL_1, value);
1191 return write_register16(st25r3916::command::REG_ANTENNA_TUNING_CONTROL_1, value);
1204 return read_register8(st25r3916::command::REG_TX_DRIVER, value);
1213 return write_register8(st25r3916::command::REG_TX_DRIVER, value);
1222 return read_register8(st25r3916::command::REG_PASSIVE_TARGET_MODULATION, value);
1231 return write_register8(st25r3916::command::REG_PASSIVE_TARGET_MODULATION, value);
1241 return read_register8(st25r3916::command::REG_AUXILIARY_MODULATION_SETTING, value);
1250 return write_register8(st25r3916::command::REG_AUXILIARY_MODULATION_SETTING, value);
1259 return read_register8(st25r3916::command::REG_TX_DRIVER_TIMING, value);
1268 return write_register8(st25r3916::command::REG_TX_DRIVER_TIMING, value);
1281 return read_register8(st25r3916::command::REG_EXTERNAL_FIELD_DETECTOR_ACTIVATION_THRESHOLD, value);
1290 return write_register8(st25r3916::command::REG_EXTERNAL_FIELD_DETECTOR_ACTIVATION_THRESHOLD, value);
1299 return read_register8(st25r3916::command::REG_EXTERNAL_FIELD_DETECTOR_DEACTIVATION_THRESHOLD, value);
1308 return write_register8(st25r3916::command::REG_EXTERNAL_FIELD_DETECTOR_DEACTIVATION_THRESHOLD, value);
1318 return read_register8(st25r3916::command::REG_RESISTIVE_AM_MODULATION, value);
1327 return write_register8(st25r3916::command::REG_RESISTIVE_AM_MODULATION, value);
1336 return read_register8(st25r3916::command::REG_TX_DRIVER_TIMING_DISPLAY, value);
1349 return read_register8(st25r3916::command::REG_REGULATOR_VOLTAGE_CONTROL, value);
1358 return write_register8(st25r3916::command::REG_REGULATOR_VOLTAGE_CONTROL, value);
1367 return read_register8(st25r3916::command::REG_REGULATOR_DISPLAY, value);
1380 return read_register8(st25r3916::command::REG_RSSI_DISPLAY, value);
1389 return read_register8(st25r3916::command::REG_GAIN_REDUCTION_STATE, value);
1402 return read_register8(st25r3916::command::REG_CAPACITIVE_SENSOR_CONTROL, value);
1411 return write_register8(st25r3916::command::REG_CAPACITIVE_SENSOR_CONTROL, value);
1420 return read_register8(st25r3916::command::REG_CAPACITIVE_SENSOR_DISPLAY, value);
1433 return read_register8(st25r3916::command::REG_AUXILIARY_DISPLAY, value);
1446 return read_register8(st25r3916::command::REG_WAKEUP_TIMER_CONTROL, value);
1455 return write_register8(st25r3916::command::REG_WAKEUP_TIMER_CONTROL, value);
1465 return read_register8(st25r3916::command::REG_AMPLITUDE_MEASUREMENT_CONFIGURATION, value);
1474 return write_register8(st25r3916::command::REG_AMPLITUDE_MEASUREMENT_CONFIGURATION, value);
1483 return read_register8(st25r3916::command::REG_AMPLITUDE_MEASUREMENT_REFERENCE, value);
1492 return write_register8(st25r3916::command::REG_AMPLITUDE_MEASUREMENT_REFERENCE, value);
1501 return read_register8(st25r3916::command::REG_AMPLITUDE_MEASUREMENT_AUTO_AVERAGING_DISPLAY, value);
1510 return read_register8(st25r3916::command::REG_AMPLITUDE_MEASUREMENT_DISPLAY, value);
1520 return read_register8(st25r3916::command::REG_PHASE_MEASUREMENT_CONFIGURATION, value);
1529 return write_register8(st25r3916::command::REG_PHASE_MEASUREMENT_CONFIGURATION, value);
1538 return read_register8(st25r3916::command::REG_PHASE_MEASUREMENT_REFERENCE, value);
1547 return write_register8(st25r3916::command::REG_PHASE_MEASUREMENT_REFERENCE, value);
1556 return read_register8(st25r3916::command::REG_PHASE_MEASUREMENT_AUTO_AVERAGING_DISPLAY, value);
1565 return read_register8(st25r3916::command::REG_PHASE_MEASUREMENT_DISPLAY, value);
1575 return read_register8(st25r3916::command::REG_CAPACITANCE_MEASUREMENT_CONFIGURATION, value);
1584 return write_register8(st25r3916::command::REG_CAPACITANCE_MEASUREMENT_CONFIGURATION, value);
1593 return read_register8(st25r3916::command::REG_CAPACITANCE_MEASUREMENT_REFERENCE, value);
1602 return write_register8(st25r3916::command::REG_CAPACITANCE_MEASUREMENT_REFERENCE, value);
1611 return read_register8(st25r3916::command::REG_CAPACITANCE_MEASUREMENT_AUTO_AVERAGING_DISPLAY, value);
1620 return read_register8(st25r3916::command::REG_CAPACITANCE_MEASUREMENT_DISPLAY, value);
1633 return read_register8(st25r3916::command::REG_OVERSHOOT_PROTECTION_CONFIGURATION_1, value);
1642 return write_register8(st25r3916::command::REG_OVERSHOOT_PROTECTION_CONFIGURATION_1, value);
1651 return read_register8(st25r3916::command::REG_OVERSHOOT_PROTECTION_CONFIGURATION_2, value);
1660 return write_register8(st25r3916::command::REG_OVERSHOOT_PROTECTION_CONFIGURATION_2, value);
1669 return read_register16(st25r3916::command::REG_OVERSHOOT_PROTECTION_CONFIGURATION_1, value);
1678 return write_register16(st25r3916::command::REG_OVERSHOOT_PROTECTION_CONFIGURATION_1, value);
1688 return read_register8(st25r3916::command::REG_UNDERSHOOT_PROTECTION_CONFIGURATION_1, value);
1697 return write_register8(st25r3916::command::REG_UNDERSHOOT_PROTECTION_CONFIGURATION_1, value);
1706 return read_register8(st25r3916::command::REG_UNDERSHOOT_PROTECTION_CONFIGURATION_2, value);
1715 return write_register8(st25r3916::command::REG_UNDERSHOOT_PROTECTION_CONFIGURATION_2, value);
1724 return read_register16(st25r3916::command::REG_UNDERSHOOT_PROTECTION_CONFIGURATION_1, value);
1733 return write_register16(st25r3916::command::REG_UNDERSHOOT_PROTECTION_CONFIGURATION_1, value);
1777 uint32_t
nfcaTransceive(uint8_t* rx, uint16_t& rx_len,
const uint8_t* tx,
const uint16_t tx_len,
1778 const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
1786 bool nfcaTransmit(
const uint8_t* tx,
const uint16_t tx_len,
const uint32_t timeout_ms);
1797 bool nfcaReceive(uint8_t* rx, uint16_t& rx_len,
const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
1806 return nfca_request_wakeup(atqa,
true);
1815 return nfca_request_wakeup(atqa,
false);
1869 return mifare_classic_authenticate(m5::nfc::a::Command::AUTH_WITH_KEY_A, picc, block, key);
1882 return mifare_classic_authenticate(m5::nfc::a::Command::AUTH_WITH_KEY_B, picc, block, key);
1906 bool nfcbTransceive(uint8_t* rx, uint16_t& rx_len,
const uint8_t* tx,
const uint16_t tx_len,
1907 const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
1915 bool nfcbTransmit(
const uint8_t* tx,
const uint16_t tx_len,
const uint32_t timeout_ms);
1923 bool nfcbReceive(uint8_t* rx, uint16_t& rx_len,
const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
1938 bool nfcfTransceive(uint8_t* rx, uint16_t& rx_len,
const uint8_t* tx,
const uint16_t tx_len,
1939 const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
1947 bool nfcfTransmit(
const uint8_t* tx,
const uint16_t tx_len,
const uint32_t timeout_ms);
1957 bool nfcfReceive(uint8_t* rx, uint16_t& rx_len,
const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
1975 bool nfcvTransceive(uint8_t* rx, uint16_t& rx_len,
const uint8_t* tx,
const uint16_t tx_bytes,
1976 const uint32_t timeout_ms,
1978 const uint16_t min_rx_len = 0);
1987 bool nfcvTransmit(
const uint8_t* tx,
const uint16_t tx_len,
const uint32_t timeout_ms,
1997 bool nfcvReceive(uint8_t* rx, uint16_t& rx_len,
const uint32_t timeout_ms,
const uint16_t min_rx_len = 0);
2013 void dumpRegister();
2019 static void IRAM_ATTR on_irq(
void* arg);
2021 bool read_register8(
const uint8_t reg, uint8_t&
v);
2022 bool read_register8(
const uint16_t reg, uint8_t&
v);
2023 bool write_register8(
const uint8_t reg,
const uint8_t
v);
2024 bool write_register8(
const uint16_t reg,
const uint8_t
v);
2025 bool read_register16(
const uint8_t reg, uint16_t&
v);
2026 bool read_register16(
const uint16_t reg, uint16_t&
v);
2027 bool write_register16(
const uint8_t reg,
const uint16_t
v);
2028 bool write_register16(
const uint16_t reg,
const uint16_t
v);
2029 bool read_register32(
const uint8_t reg, uint32_t&
v);
2030 bool read_register32(
const uint16_t reg, uint32_t&
v);
2031 bool write_register32(
const uint8_t reg,
const uint32_t
v);
2032 bool write_register32(
const uint16_t reg,
const uint32_t
v);
2034 bool write_fwt_timer(
const uint32_t ms);
2035 bool write_mask_receiver_timer(
const uint32_t us);
2036 bool write_squelch_timer(
const uint32_t us);
2038 uint32_t wait_for_interrupt(
const uint32_t irq,
const uint32_t timeout_ms = 100);
2040 bool wait_for_FIFO(
const uint32_t timeout_ms,
const uint16_t required_size = 0);
2041 bool read_FIFO(std::vector<uint8_t>& out);
2044 bool configure_nfc_a();
2045 bool configure_nfc_b();
2046 bool configure_nfc_f();
2047 bool configure_nfc_v();
2048 bool nfc_initial_field_on();
2050 bool configure_emulation_a();
2051 bool configure_emulation_f();
2054 bool modify_bit_register8(
const uint8_t reg,
const uint8_t set_mask,
const uint8_t clear_mask);
2055 bool modify_bit_register8(
const uint16_t reg,
const uint8_t set_mask,
const uint8_t clear_mask);
2056 bool set_bit_register8(
const uint8_t reg,
const uint8_t bits);
2057 bool set_bit_register8(
const uint16_t reg,
const uint8_t bits);
2058 bool clear_bit_register8(
const uint8_t reg,
const uint8_t bits);
2059 bool clear_bit_register8(
const uint16_t reg,
const uint8_t bits);
2060 inline bool change_bit_register8(
const uint8_t reg,
const uint8_t bits,
const uint8_t mask)
2062 return modify_bit_register8(reg, mask & bits, mask);
2064 inline bool change_bit_register8(
const uint16_t reg,
const uint8_t bits,
const uint8_t mask)
2066 return modify_bit_register8(reg, mask & bits, mask);
2068 bool change_test_bit_register8(
const uint8_t reg,
const uint8_t bits,
const uint8_t mask);
2069 bool change_test_bit_register8(
const uint16_t reg,
const uint8_t bits,
const uint8_t mask);
2071 bool modify_interrupts(
const uint32_t clr,
const uint32_t set);
2072 inline bool enable_interrupts(
const uint32_t mask)
2074 return modify_interrupts(mask, 0);
2076 inline bool disable_interrupts(
const uint32_t mask)
2078 return modify_interrupts(0, mask);
2082 bool disable_field();
2085 bool nfca_request_wakeup(uint16_t& atqa,
const bool req);
2086 bool nfca_anti_collision(uint8_t rbuf[5],
const uint8_t lv);
2089 bool mifare_classic_send_encrypt(
const uint8_t* tx,
const uint16_t tx_len);
2090 bool mifare_classic_transceive_encrypt(uint8_t* rx, uint16_t& rx_len,
const uint8_t* tx,
const uint16_t tx_len,
2091 const uint32_t timeout_ms,
const bool include_crc,
const bool decrypt);
2098 volatile uint32_t _stored_irq{};
2099 uint32_t _enabled_irq{};
2101 volatile bool _interrupt_occurred{};
2121 explicit CapST25R3916(
const uint8_t cs_pin = DEFAULT_ADDRESS);
2128 virtual bool begin()
override;
Definitions for ST25R3916.
InitiatorOperationMode
Initiator operation modes.
Definition ST25R3916_definition.hpp:29
TargetOperationMode
Target operation modes.
Definition ST25R3916_definition.hpp:44
Crypto1 for MIFARE Classic.
Definition mifare_classic_crypto1.hpp:27
ST25R3916 unit in CapCC1101 (SPI)
Definition unit_ST25R3916.hpp:2113
CapST25R3916(const uint8_t cs_pin=DEFAULT_ADDRESS)
Constructor.
Definition unit_ST25R3916.cpp:774
virtual bool begin() override
Initialize the unit.
Definition unit_ST25R3916.cpp:783
ST25R3916 Unit.
Definition unit_ST25R3916.hpp:39
bool readFIFOStatus(uint16_t &value)
Read the FIFO status 1-2.
Definition unit_ST25R3916.hpp:1019
bool readPhaseMeasurementAutoAveragingDisplay(uint8_t &value)
Read the phase measurement auto-averaging display.
Definition unit_ST25R3916.hpp:1554
bool writeMaskTimerAndNFCInterrupt(const uint8_t value)
Write the mask timer and NFC interrupt.
Definition unit_ST25R3916.hpp:877
bool nfcbTransceive(uint8_t *rx, uint16_t &rx_len, const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Transceive with NFC-B PICC.
Definition unit_ST25R3916_nfcb.cpp:149
bool readCapacitanceMeasurementAutoAveragingDisplay(uint8_t &value)
Read the capacitance measurement auto-averaging display.
Definition unit_ST25R3916.hpp:1609
bool readMaskMainInterrupt(uint8_t &value)
Read the mask main interrupt.
Definition unit_ST25R3916.hpp:846
bool readOperationControl(uint8_t &value)
Read the operation control.
Definition unit_ST25R3916.hpp:269
bool writeResistiveAMModulation(const uint8_t value)
Write the resistive AM modulation.
Definition unit_ST25R3916.hpp:1325
bool readADConverterOutput(uint8_t &value)
Read the number of transmitted bytes 2.
Definition unit_ST25R3916.hpp:1131
bool writeEMDSuppressionConfiguration(const uint8_t value)
Write the EMD suppression configuration.
Definition unit_ST25R3916.hpp:445
bool writePtMemoryTSN(const uint8_t *tx, const uint32_t tx_len)
Write pattern memory TSN block.
Definition unit_ST25R3916_util.cpp:223
bool nfcaHlt()
Hlt for PICC.
Definition unit_ST25R3916_nfca.cpp:478
bool writeIOConfiguration1(const uint8_t value)
Write the I/O configuration 1.
Definition unit_ST25R3916.hpp:220
bool readSquelchTimer(uint8_t &value)
Read the squelch timer.
Definition unit_ST25R3916.hpp:806
bool readMaskReceiveTimer(uint8_t &value)
Read the mask receive timer.
Definition unit_ST25R3916.hpp:643
bool nfcaEmulationTransmit(const uint8_t *tx, const uint16_t tx_len)
Transmit in emulation (PICC) mode with minimal I2C overhead.
Definition unit_ST25R3916_nfca.cpp:208
bool readPassiveTargetInterrupt(uint8_t &value)
Read the passive target interrupt.
Definition unit_ST25R3916.hpp:985
bool readTimerAndNFCInterrupt(uint8_t &value)
Read the timer and NFC interrupt.
Definition unit_ST25R3916.hpp:966
bool readAntennaTuningControl1(uint8_t &value)
Read the Antenna tuning control 1.
Definition unit_ST25R3916.hpp:1144
bool writeMaskReceiveTimer(const uint8_t value)
Write the mask receive timer.
Definition unit_ST25R3916.hpp:652
bool writeNumberOfTransmittedBytes(const uint16_t value)
Write the number of transmitted bytes 1-2.
Definition unit_ST25R3916.hpp:1096
bool writeDirectCommand(const uint8_t cmd, const uint8_t *data=nullptr, const uint32_t dlen=0u)
Write the direct command with data.
Definition unit_ST25R3916.cpp:423
bool writeCorrelatorConfiguration(const uint16_t value)
Write the correlator configuration 1-2.
Definition unit_ST25R3916.hpp:630
bool writeExternalFieldDetectorDeactivationThreshold(const uint8_t value)
Write the external field detector deactivation threshold.
Definition unit_ST25R3916.hpp:1306
uint32_t nfcaTransceive(uint8_t *rx, uint16_t &rx_len, const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Transceive.
Definition unit_ST25R3916_nfca.cpp:180
bool writeTargetOperationMode(const st25r3916::TargetOperationMode mode, const uint8_t optional=0)
Write the initiator operation mode and transition to target mode.
Definition unit_ST25R3916.cpp:458
bool readExternalFieldDetectorActivationThreshold(uint8_t &value)
Read the external field detector activation threshold.
Definition unit_ST25R3916.hpp:1279
bool readRegulatorVoltageControl(uint8_t &value)
Read the regulator voltage control.
Definition unit_ST25R3916.hpp:1347
bool readICIdentity(uint8_t &type, uint8_t &rev)
Read the IC identity.
Definition unit_ST25R3916.cpp:519
bool writeAmplitudeMeasurementReference(const uint8_t value)
Write the amplitude measurement reference.
Definition unit_ST25R3916.hpp:1490
bool writeExternalFieldDetectorActivationThreshold(const uint8_t value)
Write the external field detector activation threshold.
Definition unit_ST25R3916.hpp:1288
bool readAntennaTuningControl(uint16_t &value)
Read the Antenna tuning control 1-2.
Definition unit_ST25R3916.hpp:1180
bool writeOvershootProtectionConfiguration(const uint16_t value)
Write the overshoot protection configuration 1-2.
Definition unit_ST25R3916.hpp:1676
bool readInterrupts(uint32_t &value)
Read the all interrupt.
Definition unit_ST25R3916.cpp:429
bool readErrorAndWakeupInterrupt(uint8_t &value)
Read the error and wake-up interrupt.
Definition unit_ST25R3916.hpp:976
bool nfcfReceive(uint8_t *rx, uint16_t &rx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Receive from NFC-F PICC.
Definition unit_ST25R3916_nfcf.cpp:114
bool writeNoResponseTimer(const uint16_t value)
Write the no-response timer 1-2.
Definition unit_ST25R3916.hpp:706
bool readReceiverConfiguration3(uint8_t &value)
Read the receiver configuration 3.
Definition unit_ST25R3916.hpp:512
bool readSubcarrierStartTimer(uint8_t &value)
Read the subcarrier start timer.
Definition unit_ST25R3916.hpp:454
bool writeAntennaTuningControl1(const uint8_t value)
Write the Antenna tuning control 1.
Definition unit_ST25R3916.hpp:1153
bool clearInterrupts()
Clear interrupts flag.
Definition unit_ST25R3916.cpp:444
bool readNFCIP1PassiveTargetDefinition(uint8_t &value)
Read the NFCIP-1 passive target definition.
Definition unit_ST25R3916.hpp:381
bool writeSettingsISO14443A(const uint8_t value)
Write the settings for ISO14443A and NFC 106kb/s.
Definition unit_ST25R3916.hpp:336
bool readIOConfiguration2(uint8_t &value)
Read the I/O configuration 2.
Definition unit_ST25R3916.hpp:229
bool writeUndershootProtectionConfiguration1(const uint8_t value)
Write the undershoot protection configuration 1.
Definition unit_ST25R3916.hpp:1695
bool writeAmplitudeMeasurementConfiguration(const uint8_t value)
Write the amplitude measurement configuration.
Definition unit_ST25R3916.hpp:1472
bool nfcbTransmit(const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms)
Transmit to NFC-B PICC.
Definition unit_ST25R3916_nfcb.cpp:155
bool readOvershootProtectionConfiguration(uint16_t &value)
Read the overshoot protection configuration 1-2.
Definition unit_ST25R3916.hpp:1667
bool writeReceiverConfiguration4(const uint8_t value)
Write the receiver configuration 4.
Definition unit_ST25R3916.hpp:539
bool readCapacitanceMeasurementReference(uint8_t &value)
Read the capacitance measurement reference.
Definition unit_ST25R3916.hpp:1591
bool writeIOConfiguration(const uint16_t value)
Definition unit_ST25R3916.hpp:256
bool readSettingsFelica(uint8_t &value)
Read the settings for ISO14443B and FeliCa.
Definition unit_ST25R3916.hpp:363
void config(const config_t &cfg)
Set the configuration.
Definition unit_ST25R3916.hpp:93
bool writeGeneralPurposeTimer2(const uint8_t value)
Write the general purpose timer 2.
Definition unit_ST25R3916.hpp:760
bool writeSettingsISO14443B(const uint8_t value)
Write the settings for ISO14443B.
Definition unit_ST25R3916.hpp:354
bool writePPON2FieldWaiting(const uint8_t value)
Write the PPON2 field waiting.
Definition unit_ST25R3916.hpp:796
bool readTXDriverTimingDisplay(uint8_t &value)
Read the TX driver timing display.
Definition unit_ST25R3916.hpp:1334
bool writeBitrateDefinition(const uint8_t value)
Write the bitrate definition.
Definition unit_ST25R3916.hpp:314
bool nfcaWriteBlock(const uint8_t block, const uint8_t tx[16])
Write the 1 block / 4 pages (16 bytes)
Definition unit_ST25R3916_nfca.cpp:522
bool readPtMemory(uint8_t *rx, const uint32_t rx_len)
Read pattern memory.
Definition unit_ST25R3916_util.cpp:232
bool writeWakeupTimerControl(const uint8_t value)
Write the Wake-up timer control.
Definition unit_ST25R3916.hpp:1453
bool nfcaRequest(uint16_t &atqa)
Request for idle PICC.
Definition unit_ST25R3916.hpp:1804
bool readBitrateDefinition(uint8_t &value)
Read the bitrate definition.
Definition unit_ST25R3916.hpp:305
bool readFIFOStatus1(uint8_t &value)
Read the FIFO status 1.
Definition unit_ST25R3916.hpp:1001
bool readFIFOStatus2(uint8_t &value)
Read the FIFO status 1.
Definition unit_ST25R3916.hpp:1010
bool writeCapacitiveSensorControl(const uint8_t value)
Write the capacitive sensor control.
Definition unit_ST25R3916.hpp:1409
bool readMaskTimerAndNFCInterrupt(uint8_t &value)
Read the mask timer and NFC interrupt.
Definition unit_ST25R3916.hpp:868
bool writeOperationControl(const uint8_t value)
Write the operation control.
Definition unit_ST25R3916.hpp:278
bool readStreamModeDefinition(uint8_t &value)
Read the stream mode definition.
Definition unit_ST25R3916.hpp:399
bool mifareClassicAuthenticateB(const m5::nfc::a::PICC &picc, const uint8_t block, const m5::nfc::a::mifare::classic::Key &key=m5::nfc::a::mifare::classic::DEFAULT_KEY)
Authentication using keyB of the specified block.
Definition unit_ST25R3916.hpp:1878
bool writeTXDriverTiming(const uint8_t value)
Write the TX driver timing.
Definition unit_ST25R3916.hpp:1266
bool writeCorrelatorConfiguration1(const uint8_t value)
Write the correlator configuration 1.
Definition unit_ST25R3916.hpp:594
bool nfcfTransceive(uint8_t *rx, uint16_t &rx_len, const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Transceive with NFC-F PICC.
Definition unit_ST25R3916_nfcf.cpp:79
bool writeCapacitanceMeasurementReference(const uint8_t value)
Write the capacitance measurement reference.
Definition unit_ST25R3916.hpp:1600
bool readAuxiliaryModulationSetting(uint8_t &value)
Read the auxiliary modulation setting.
Definition unit_ST25R3916.hpp:1239
bool writeFIFO(const uint8_t *buf, const uint16_t buf_size)
Write to FIFO.
Definition unit_ST25R3916.cpp:505
bool readMaskInterrupts(uint32_t &value)
Read the all mask.
Definition unit_ST25R3916.hpp:934
bool readMaskPassiveTargetInterrupt(uint8_t &value)
Read the mask passive target interrupt.
Definition unit_ST25R3916.hpp:912
bool readUndershootProtectionConfiguration(uint16_t &value)
Read the undershoot protection configuration 1-2.
Definition unit_ST25R3916.hpp:1722
bool writeCorrelatorConfiguration2(const uint8_t value)
Write the correlator configuration 2.
Definition unit_ST25R3916.hpp:612
bool writeOvershootProtectionConfiguration2(const uint8_t value)
Write the overshoot protection configuration 2.
Definition unit_ST25R3916.hpp:1658
bool nfcvReceive(uint8_t *rx, uint16_t &rx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Receive from NFC-V PICC.
Definition unit_ST25R3916_nfcv.cpp:132
bool writeGeneralPurposeTimer(const uint16_t value)
Write the general purpose timer 1-2.
Definition unit_ST25R3916.hpp:778
bool readReceiverConfiguration(uint32_t &value)
Read the receiver configuration 1-4.
Definition unit_ST25R3916.hpp:548
bool nfcbReceive(uint8_t *rx, uint16_t &rx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Receive from NFC-B PICC.
Definition unit_ST25R3916_nfcb.cpp:175
bool readPhaseMeasurementConfiguration(uint8_t &value)
Read the phase measurement configuration.
Definition unit_ST25R3916.hpp:1518
bool readReceiverConfiguration2(uint8_t &value)
Read the receiver configuration 2.
Definition unit_ST25R3916.hpp:494
bool readSettingsISO14443A(uint8_t &value)
Read the settings for ISO14443A and NFC 106kb/s.
Definition unit_ST25R3916.hpp:327
bool nfcaReceive(uint8_t *rx, uint16_t &rx_len, const uint32_t timeout_ms, const uint16_t min_rx_len=0)
Receive raw bytes (no transmit)
Definition unit_ST25R3916_nfca.cpp:218
bool writeInitiatorOperationMode(const st25r3916::InitiatorOperationMode mode, const uint8_t optional=0)
Write the initiator operation mode and transition to initiator mode.
Definition unit_ST25R3916.cpp:451
bool writeP2PReceiverConfiguration(const uint8_t value)
Write the P2P receiver configuration.
Definition unit_ST25R3916.hpp:576
bool writeNoResponseTimer2(const uint8_t value)
Write the no-response timer 2.
Definition unit_ST25R3916.hpp:688
bool configureNFCMode(const m5::nfc::NFC mode)
Configure NFC mode.
Definition unit_ST25R3916.cpp:291
uint32_t readFIFO(uint16_t &actual, uint8_t *buf, const uint16_t buf_size)
Read from FIFO.
Definition unit_ST25R3916.cpp:484
bool readAmplitudeMeasurementConfiguration(uint8_t &value)
Read the amplitude measurement configuration.
Definition unit_ST25R3916.hpp:1463
bool readGainReductionState(uint8_t &value)
Read the gain reduction state.
Definition unit_ST25R3916.hpp:1387
bool writeNumberOfTransmittedBytes1(const uint8_t value)
Write the number of transmitted bytes 1.
Definition unit_ST25R3916.hpp:1060
bool readCapacitanceMeasurementDisplay(uint8_t &value)
Read the capacitance measurement display.
Definition unit_ST25R3916.hpp:1618
bool writeNoResponseTimer1(const uint8_t value)
Write the no-response timer 1.
Definition unit_ST25R3916.hpp:670
bool isNFCMode(const m5::nfc::NFC mode) const
Is the current operating mode the one specified?
Definition unit_ST25R3916.hpp:125
bool writePtMemoryA(const uint8_t *tx, const uint32_t tx_len)
Write pattern memory for NFC-A target.
Definition unit_ST25R3916_util.cpp:205
bool writeNFCFieldOnGuardTimer(const uint8_t value)
Write the NFC field on guard timer.
Definition unit_ST25R3916.hpp:833
bool readMainInterrupt(uint8_t &value)
Read the main interrupt.
Definition unit_ST25R3916.hpp:957
bool readAmplitudeMeasurementDisplay(uint8_t &value)
Read the amplitude measurement display.
Definition unit_ST25R3916.hpp:1508
bool readNumberOfTransmittedBytes1(uint8_t &value)
Read the number of transmitted bytes 1.
Definition unit_ST25R3916.hpp:1051
bool writePassiveTargetModulation(const uint8_t value)
Write the passive target modulation.
Definition unit_ST25R3916.hpp:1229
bool writeMaskErrorAndWakeupInterrupt(const uint8_t value)
Write the mask error and wake-up interrupt.
Definition unit_ST25R3916.hpp:899
bool readGeneralPurposeTimer2(uint8_t &value)
Read the general purpose timer 2.
Definition unit_ST25R3916.hpp:751
bool writeBitrate(const m5::nfc::Bitrate tx, const m5::nfc::Bitrate rx)
Set the bitrate for TX/RX.
Definition unit_ST25R3916.cpp:465
bool writePhaseMeasurementReference(const uint8_t value)
Write the phase measurement reference.
Definition unit_ST25R3916.hpp:1545
bool readEMDSuppressionConfiguration(uint8_t &value)
Read the EMD suppression configuration.
Definition unit_ST25R3916.hpp:436
bool readOvershootProtectionConfiguration1(uint8_t &value)
Read the overshoot protection configuration 1.
Definition unit_ST25R3916.hpp:1631
bool writePhaseMeasurementConfiguration(const uint8_t value)
Write the phase measurement configuration.
Definition unit_ST25R3916.hpp:1527
bool writeIOConfiguration2(const uint8_t value)
Definition unit_ST25R3916.hpp:238
bool writeUndershootProtectionConfiguration2(const uint8_t value)
Write the undershoot protection configuration 2.
Definition unit_ST25R3916.hpp:1713
bool readP2PReceiverConfiguration(uint8_t &value)
Read the P2P receiver configuration.
Definition unit_ST25R3916.hpp:567
bool writeRegulatorVoltageControl(const uint8_t value)
Write the regulator voltage control.
Definition unit_ST25R3916.hpp:1356
bool writeTimerAndEMVControl(const uint8_t value)
Write the timer and EMV control.
Definition unit_ST25R3916.hpp:724
bool writeNumberOfTransmittedBytes2(const uint8_t value)
Write the number of transmitted bytes 2.
Definition unit_ST25R3916.hpp:1078
bool writeReceiverConfiguration1(const uint8_t value)
Write the receiver configuration 1.
Definition unit_ST25R3916.hpp:485
bool nfcaTransmit(const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms)
Transmit raw bytes (no receive)
Definition unit_ST25R3916_nfca.cpp:190
bool readGeneralPurposeTimer(uint16_t &value)
Read the general purpose timer 1-2.
Definition unit_ST25R3916.hpp:769
bool nfcaReadBlock(uint8_t rx[16], const uint8_t block)
Read the 1 block / 4 pages (16 bytes)
Definition unit_ST25R3916_nfca.cpp:507
bool readTXDriver(uint8_t &value)
Read the TX driver.
Definition unit_ST25R3916.hpp:1202
bool mifareClassicValueBlock(const m5::nfc::a::Command cmd, const uint8_t block, const uint32_t arg=0)
Operation for the value block.
Definition unit_ST25R3916_nfca.cpp:773
bool readRegulatorDisplay(uint8_t &value)
Read the regulator display.
Definition unit_ST25R3916.hpp:1365
bool readMaskErrorAndWakeupInterrupt(uint8_t &value)
Read the mask error and wake-up interrupt.
Definition unit_ST25R3916.hpp:890
bool writeMaskMainInterrupt(const uint8_t value)
Write the mask main interrupt.
Definition unit_ST25R3916.hpp:855
bool readIOConfiguration(uint16_t &value)
Read the I/O configuration 1-2.
Definition unit_ST25R3916.hpp:247
bool nfcvTransceive(uint8_t *rx, uint16_t &rx_len, const uint8_t *tx, const uint16_t tx_bytes, const uint32_t timeout_ms, const m5::nfc::v::ModulationMode mode=m5::nfc::v::ModulationMode::OneOf4, const uint16_t min_rx_len=0)
Transceive.
Definition unit_ST25R3916_nfcv.cpp:90
virtual bool begin() override
Initialize the unit.
Definition unit_ST25R3916.cpp:121
bool readCollisionDisplay(uint8_t &value)
Read the collision display.
Definition unit_ST25R3916.hpp:1029
bool readExternalFieldDetectorDeactivationThreshold(uint8_t &value)
Read the external field detector deactivation threshold.
Definition unit_ST25R3916.hpp:1297
bool readCorrelatorConfiguration(uint16_t &value)
Read the correlator configuration 1-2.
Definition unit_ST25R3916.hpp:621
bool readOvershootProtectionConfiguration2(uint8_t &value)
Read the overshoot protection configuration 2.
Definition unit_ST25R3916.hpp:1649
UnitST25R3916(const uint8_t arg=DEFAULT_ADDRESS)
Constructor.
Definition unit_ST25R3916.hpp:47
bool writeMaskPassiveTargetInterrupt(const uint8_t value)
Write the mask passive target interrupt.
Definition unit_ST25R3916.hpp:921
bool nfcfEmulationTransmit(const uint8_t *tx, const uint16_t tx_len)
Transmit in emulation (PICC) mode with minimal I2C overhead.
Definition unit_ST25R3916_nfcf.cpp:104
config_t config()
Gets the configuration.
Definition unit_ST25R3916.hpp:85
bool writeReceiverConfiguration(const uint32_t value)
Write the receiver configuration 1-4.
Definition unit_ST25R3916.hpp:557
bool nfcaWakeup(uint16_t &atqa)
Wakeup for idle/halt PICC.
Definition unit_ST25R3916.hpp:1813
bool writeGeneralPurposeTimer1(const uint8_t value)
Write the general purpose timer 1.
Definition unit_ST25R3916.hpp:742
bool writeAuxiliaryModulationSetting(const uint8_t value)
Write the auxiliary modulation setting.
Definition unit_ST25R3916.hpp:1248
bool readCapacitiveSensorDisplay(uint8_t &value)
Read the capacitive sensor display.
Definition unit_ST25R3916.hpp:1418
bool readTimerAndEMVControl(uint8_t &value)
Read the timer and EMV control.
Definition unit_ST25R3916.hpp:715
bool readPhaseMeasurementReference(uint8_t &value)
Read the phase measurement reference.
Definition unit_ST25R3916.hpp:1536
bool disableField()
Disable the Field to stop communication with the PICC.
Definition unit_ST25R3916.cpp:531
bool readNoResponseTimer1(uint8_t &value)
Read the no-response timer 1.
Definition unit_ST25R3916.hpp:661
bool writeNumberOfTransmittedBytes(const uint16_t bytes, const uint8_t bits)
Write the number of transmitted bytes and after bytes.
Definition unit_ST25R3916.hpp:1107
bool readGeneralPurposeTimer1(uint8_t &value)
Read the general purpose timer 1.
Definition unit_ST25R3916.hpp:733
bool writeSquelchTimer(const uint8_t value)
Write the squelch timer.
Definition unit_ST25R3916.hpp:815
bool writeSettingsFelica(const uint8_t value)
Write the settings for ISO14443B and FeliCa.
Definition unit_ST25R3916.hpp:372
bool readReceiverConfiguration4(uint8_t &value)
Definition unit_ST25R3916.hpp:530
bool readNoResponseTimer(uint16_t &value)
Read the no-response timer 1-2.
Definition unit_ST25R3916.hpp:697
bool readCapacitiveSensorControl(uint8_t &value)
Read the capacitive sensor control.
Definition unit_ST25R3916.hpp:1400
bool readFIFOSize(uint16_t &bytes, uint8_t &bits)
Read the FIFO size.
Definition unit_ST25R3916.cpp:471
bool writeMaskInterrupts(const uint32_t value)
Write the all mask.
Definition unit_ST25R3916.hpp:943
bool writeReceiverConfiguration3(const uint8_t value)
Write the receiver configuration 3.
Definition unit_ST25R3916.hpp:521
bool writeNFCIP1PassiveTargetDefinition(const uint8_t value)
Definition unit_ST25R3916.hpp:390
m5::nfc::NFC NFCMode() const
Gets the current operating mode.
Definition unit_ST25R3916.hpp:103
bool readBitrateDetectionDisplay(uint8_t &value)
Read the bit rate detection display.
Definition unit_ST25R3916.hpp:1118
bool readCapacitanceMeasurementConfiguration(uint8_t &value)
Read the capacitance measurement configuration.
Definition unit_ST25R3916.hpp:1573
bool readNFCFieldOnGuardTimer(uint8_t &value)
Read the NFC field on guard timer.
Definition unit_ST25R3916.hpp:824
bool writeAuxiliaryDefinition(const uint8_t value)
Write the Auxiliary definition.
Definition unit_ST25R3916.hpp:426
bool readAntennaTuningControl2(uint8_t &value)
Read the Antenna tuning control 2.
Definition unit_ST25R3916.hpp:1162
bool readSettingsISO14443B(uint8_t &value)
Read the settings for ISO14443B.
Definition unit_ST25R3916.hpp:345
bool readCorrelatorConfiguration2(uint8_t &value)
Read the correlator configuration 2.
Definition unit_ST25R3916.hpp:603
bool writeAntennaTuningControl(const uint16_t value)
Write the Antenna tuning control 1-2.
Definition unit_ST25R3916.hpp:1189
bool nfcvTransmit(const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms, const m5::nfc::v::ModulationMode mode=m5::nfc::v::ModulationMode::OneOf4)
Transmit to NFC-V PICC.
Definition unit_ST25R3916_nfcv.cpp:99
bool readPPON2FieldWaiting(uint8_t &value)
Read the PPON2 field waiting.
Definition unit_ST25R3916.hpp:787
bool writeModeDefinition(const uint8_t value)
Write the mode definition.
Definition unit_ST25R3916.hpp:296
bool configureEmulationMode(const m5::nfc::NFC mode)
Configure NFC mode for emulation.
Definition unit_ST25R3916.cpp:332
bool readUndershootProtectionConfiguration1(uint8_t &value)
Read the undershoot protection configuration 1.
Definition unit_ST25R3916.hpp:1686
bool readNumberOfTransmittedBytes(uint16_t &value)
Read the number of transmitted bytes 1-2.
Definition unit_ST25R3916.hpp:1087
bool enableField()
Enable the Field to begin supplying power to the PICC and start communication.
Definition unit_ST25R3916.cpp:541
bool readAmplitudeMeasurementAutoAveragingDisplay(uint8_t &value)
Read the amplitude measurement auto-averaging display.
Definition unit_ST25R3916.hpp:1499
bool readWakeupTimerControl(uint8_t &value)
Read the Wake-up timer control.
Definition unit_ST25R3916.hpp:1444
bool writeAntennaTuningControl2(const uint8_t value)
Write the Antenna tuning control 2.
Definition unit_ST25R3916.hpp:1171
bool readPassiveTargetDisplay(uint8_t &value)
Read the passive target.
Definition unit_ST25R3916.hpp:1038
bool writeStreamModeDefinition(const uint8_t value)
Write the stream mode definition.
Definition unit_ST25R3916.hpp:408
virtual void update(const bool force=false) override
Update the unit state.
Definition unit_ST25R3916.cpp:281
bool readModeDefinition(uint8_t &value)
Read the mode definition.
Definition unit_ST25R3916.hpp:287
bool readPhaseMeasurementDisplay(uint8_t &value)
Read the phase measurement display.
Definition unit_ST25R3916.hpp:1563
bool readAmplitudeMeasurementReference(uint8_t &value)
Read the amplitude measurement reference.
Definition unit_ST25R3916.hpp:1481
bool nfcaSelect(const m5::nfc::a::PICC &picc)
Select specific PICC.
Definition unit_ST25R3916_nfca.cpp:431
bool readIOConfiguration1(uint8_t &value)
Read the I/O configuration 1.
Definition unit_ST25R3916.hpp:211
bool writeReceiverConfiguration2(const uint8_t value)
Write the receiver configuration 2.
Definition unit_ST25R3916.hpp:503
bool readNoResponseTimer2(uint8_t &value)
Read the no-response timer 2.
Definition unit_ST25R3916.hpp:679
bool readRSSIDisplay(uint8_t &value)
Read the external field detector deactivation threshold.
Definition unit_ST25R3916.hpp:1378
bool readCorrelatorConfiguration1(uint8_t &value)
Read the correlator configuration 1.
Definition unit_ST25R3916.hpp:585
bool writeTXDriver(const uint8_t value)
Write the TX driver.
Definition unit_ST25R3916.hpp:1211
bool writeUndershootProtectionConfiguration(const uint16_t value)
Write the undershoot protection configuration 1-2.
Definition unit_ST25R3916.hpp:1731
bool readUndershootProtectionConfiguration2(uint8_t &value)
Read the undershoot protection configuration 2.
Definition unit_ST25R3916.hpp:1704
bool writePtMemoryF(const uint8_t *tx, const uint32_t tx_len)
Write pattern memory for NFC-F target.
Definition unit_ST25R3916_util.cpp:214
bool readAuxiliaryDefinition(uint8_t &value)
Read the Auxiliary definition.
Definition unit_ST25R3916.hpp:417
bool readReceiverConfiguration1(uint8_t &value)
Read the receiver configuration 1.
Definition unit_ST25R3916.hpp:476
bool nfcaSelectWithAnticollision(bool &completed, m5::nfc::a::PICC &picc, const uint8_t lv)
Select PICC with anti-collision.
Definition unit_ST25R3916_nfca.cpp:371
bool readAuxiliaryDisplay(uint8_t &value)
Read the auxiliary display.
Definition unit_ST25R3916.hpp:1431
bool writeSubcarrierStartTimer(const uint8_t value)
Write the subcarrier start timer.
Definition unit_ST25R3916.hpp:463
bool readResistiveAMModulation(uint8_t &value)
Read the resistive AM modulation.
Definition unit_ST25R3916.hpp:1316
bool nfcfTransmit(const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms)
Transmit to NFC-F PICC.
Definition unit_ST25R3916_nfcf.cpp:85
bool writeOvershootProtectionConfiguration1(const uint8_t value)
Write the overshoot protection configuration 1.
Definition unit_ST25R3916.hpp:1640
bool readNumberOfTransmittedBytes2(uint8_t &value)
Read the number of transmitted bytes 2.
Definition unit_ST25R3916.hpp:1069
bool mifareClassicAuthenticateA(const m5::nfc::a::PICC &picc, const uint8_t block, const m5::nfc::a::mifare::classic::Key &key=m5::nfc::a::mifare::classic::DEFAULT_KEY)
Authentication using keyA of the specified block.
Definition unit_ST25R3916.hpp:1865
bool readTXDriverTiming(uint8_t &value)
Read the TX driver timing.
Definition unit_ST25R3916.hpp:1257
bool readPassiveTargetModulation(uint8_t &value)
Read the passive target modulation.
Definition unit_ST25R3916.hpp:1220
bool writeCapacitanceMeasurementConfiguration(const uint8_t value)
Write the capacitance measurement configuration.
Definition unit_ST25R3916.hpp:1582
std::array< uint8_t, 6 > Key
MIFARE classic Key.
Definition mifare.hpp:50
Crypto1 for MIFARE Classic.
Top level namespace of M5Stack.
NFC
NFC type.
Definition nfc.hpp:27
Bitrate
Communication bitrate.
Definition nfc.hpp:52
Command
ISO-14443-3/4,MIFARE,NTAG commands.
Definition nfca.hpp:684
ModulationMode
Definition nfcv.hpp:73
Definition emulation_layer_a_ST25R3916.cpp:52
Definition emulation_layer_f_ST25R3916.cpp:68
PICC for NFC-A.
Definition nfca.hpp:481
Settings for begin.
Definition unit_ST25R3916.hpp:70
bool using_irq
Exists IRQ PIN?
Definition unit_ST25R3916.hpp:74
bool vdd_voltage_5V
VDD voltage true:5V false:3.3V.
Definition unit_ST25R3916.hpp:72
m5::nfc::NFC mode
Initial target for Poll/Listen.
Definition unit_ST25R3916.hpp:71
uint8_t irq
IRQ PIN.
Definition unit_ST25R3916.hpp:75
bool emulation
Emulation mode?
Definition unit_ST25R3916.hpp:76
uint8_t tx_am_modulation
0-15 See also 4.5.48 TX driver register
Definition unit_ST25R3916.hpp:73