【问题标题】:Can not read more than 32 blocks in a single READ MULTIPLE BLOCKS command from M24LR在 M24LR 的单个 READ MULTIPLE BLOCKS 命令中不能读取超过 32 个块
【发布时间】:2019-01-06 08:51:12
【问题描述】:

我正在尝试通过 NFC-V 从M24LR 芯片读取多个块(所有这些块都在一个 READ MULTIPLE BLOCKS 命令中)。

let writeData = new Uint8Array(5);
writeData[0] = 0x0A; // Flags
writeData[1] = 0x23; // Read multiple block
writeData[2] = 0x00; // Address of starting block (first 8bit) 
writeData[3] = 0x00; // Address (second 8bit)
writeData[4] = 0x1F; // Numbers of block (0x20 is not working)
nfc.transceive(writeData.buffer)
  .then(response => {
    console.log('response: ' + response);
  })
  .catch(error => {
    console.log('error transceive: ' + JSON.stringify(error));
  });

如果我要求 32 个块,它运行良好,如果我要求 33 个块,命令失败并出现错误。

是不是我做错了什么? READ MULTIPLE BLOCKS 命令有限制吗?

【问题讨论】:

    标签: tags nfc rfid iso-15693


    【解决方案1】:

    查看数据表(M24LR64-R: Dynamic NFC/RFID tag IC with 64-Kbit EEPROM with I²C bus and ISO 15693 RF interface, DocID15170 Rev 16, section 26.5;同样适用于M24LR64E-RM24LR16E-RM24LR04E-R):

    假设它们都位于同一扇区中,则最大块数固定为 32。如果块数与扇区重叠,则 M24LR64-R 返回错误代码。

    因此,这些芯片的 READ MULTIPLE BLOCKS 命令限制为 32 个块。

    【讨论】:

    • 谢谢罗兰。因此,如果我想获得超过 32 个块,创建一个循环(每 32 个块)并多次发送收发命令是一个好习惯吗?
    • 是的,这是绕过该限制的唯一方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多