无法在来自 M24LR 的单个 READ MULTIPLE BLOCKS 命令中读取超过 32 个块

Can not read more than 32 blocks in a single READ MULTIPLE BLOCKS command from M24LR

我正在尝试通过 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 命令是否有限制?

参见数据表(M24LR64-R:带 64-Kbit EEPROM 的动态 NFC/RFID 标签 IC 带 I²C 总线和 ISO 15693 RF 接口,DocID15170 Rev 16,第 26.5 节;同样适用于M24LR64E-R, M24LR16E-R, and M24LR04E-R):

The maximum number of blocks is fixed at 32 assuming that they are all located in the same sector. If the number of blocks overlaps sectors, the M24LR64-R returns an error code.

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