From 93de7fcd5c8581458a497c487e850d0932e714c4 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Mon, 4 Apr 2011 15:07:39 +0000 Subject: [PATCH] pn53x drivers: fix timer corrections location --- libnfc/drivers/arygon.c | 16 ++++++++-------- libnfc/drivers/pn532_uart.c | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/libnfc/drivers/arygon.c b/libnfc/drivers/arygon.c index 43380a7..f16e98a 100644 --- a/libnfc/drivers/arygon.c +++ b/libnfc/drivers/arygon.c @@ -115,14 +115,6 @@ arygon_probe (nfc_device_desc_t pnddDevices[], size_t szDevices, size_t * pszDev CHIP_DATA (pnd)->type = PN532; CHIP_DATA (pnd)->state = NORMAL; CHIP_DATA (pnd)->io = &arygon_tama_io; - // Timer stops only after 5 bits are received => 5*128 cycles - // When sent ...ZY (cmd ends with logical 0): - // TODO: calibration - // 50: empirical tuning - CHIP_DATA (pnd)->timer_correction_zy = 50 - (5 * 128); - // When sent ...YY (cmd ends with logical 1): - // a ...ZY signal finishes 64us later than a ...YY signal - CHIP_DATA (pnd)->timer_correction_yy = CHIP_DATA (pnd)->timer_correction_zy + 64; bool res = arygon_reset_tama (pnd); nfc_device_free (pnd); @@ -183,6 +175,14 @@ arygon_connect (const nfc_device_desc_t * pndd) // The PN53x chip connected to ARYGON MCU doesn't seems to be in SLEEP mode CHIP_DATA (pnd)->state = NORMAL; CHIP_DATA (pnd)->io = &arygon_tama_io; + // Timer stops only after 5 bits are received => 5*128 cycles + // When sent ...ZY (cmd ends with logical 0): + // TODO: calibration + // 50: empirical tuning + CHIP_DATA (pnd)->timer_correction_zy = 50 - (5 * 128); + // When sent ...YY (cmd ends with logical 1): + // a ...ZY signal finishes 64us later than a ...YY signal + CHIP_DATA (pnd)->timer_correction_yy = CHIP_DATA (pnd)->timer_correction_zy + 64; pnd->driver = &arygon_driver; // Check communication using "Reset TAMA" command diff --git a/libnfc/drivers/pn532_uart.c b/libnfc/drivers/pn532_uart.c index dc23f7c..4d1f24f 100644 --- a/libnfc/drivers/pn532_uart.c +++ b/libnfc/drivers/pn532_uart.c @@ -96,14 +96,6 @@ pn532_uart_probe (nfc_device_desc_t pnddDevices[], size_t szDevices, size_t * ps CHIP_DATA (pnd)->type = PN532; CHIP_DATA (pnd)->state = SLEEP; CHIP_DATA (pnd)->io = &pn532_uart_io; - // Timer stops only after 5 bits are received => 5*128 cycles - // When sent ...ZY (cmd ends with logical 0): - // TODO: calibration - // 50: empirical tuning - CHIP_DATA (pnd)->timer_correction_zy = 50 - (5 * 128); - // When sent ...YY (cmd ends with logical 1): - // a ...ZY signal finishes 64us later than a ...YY signal - CHIP_DATA (pnd)->timer_correction_yy = CHIP_DATA (pnd)->timer_correction_zy + 64; // Check communication using "Diagnose" command, with "Communication test" (0x00) bool res = pn53x_check_communication (pnd); @@ -168,6 +160,14 @@ pn532_uart_connect (const nfc_device_desc_t * pndd) CHIP_DATA(pnd)->type = PN532; CHIP_DATA(pnd)->state = SLEEP; CHIP_DATA(pnd)->io = &pn532_uart_io; + // Timer stops only after 5 bits are received => 5*128 cycles + // When sent ...ZY (cmd ends with logical 0): + // TODO: calibration + // 50: empirical tuning + CHIP_DATA (pnd)->timer_correction_zy = 50 - (5 * 128); + // When sent ...YY (cmd ends with logical 1): + // a ...ZY signal finishes 64us later than a ...YY signal + CHIP_DATA (pnd)->timer_correction_yy = CHIP_DATA (pnd)->timer_correction_zy + 64; pnd->driver = &pn532_uart_driver; // Check communication using "Diagnose" command, with "Communication test" (0x00)