2024-02-11 09:13 AM
Hi community,
since I cannot find a suitable LL-driver for reading register with 16bits address, here is my experiment.
the nfc tag init function:
the ReadID funciton is called, in background is GetICREF function.
in low level the BSP_I2C2_Read16 function is called:
console output:
but the logic analyser only captures these values:
*******************************************************************************************************************
my questions:
1. is my BSP_I2C2_Read16 funciton ok?
2. the device address is 0xae, where does the value 0x57 come from?
3. the register address is 0x0017, why is only the LSB 0x17 captured?
Any other suggestions are willcome! thanks a lot.
Solved! Go to Solution.
2024-02-11 09:27 AM - edited 2024-02-11 09:29 AM
That's the first part of the transaction. A write of 0x17 to 0x57. On the bus, this shows up as 0x57 << 1 (i.e. 0xAE) and 0x17, which is what you see.
0x57 is the 7-bit address, 0xAE is the 8-bit address (7 bit address with the R/W bit appended).
Not enough info to determine why the memory address is 8 bits instead of 16. Presumably the nBuffSize parameter specified it as 8 bits.
2024-02-11 09:27 AM - edited 2024-02-11 09:29 AM
That's the first part of the transaction. A write of 0x17 to 0x57. On the bus, this shows up as 0x57 << 1 (i.e. 0xAE) and 0x17, which is what you see.
0x57 is the 7-bit address, 0xAE is the 8-bit address (7 bit address with the R/W bit appended).
Not enough info to determine why the memory address is 8 bits instead of 16. Presumably the nBuffSize parameter specified it as 8 bits.
2024-02-12 01:56 PM
Hi @TDK
thanks a lot. It works now.
Here is my read process, share it for someone who maybe also need it:)