My Arduino is the master and I'm communicating with a Atmel CryptoMemory, precisely the AT88SC0104CA.
Not really sure how to receive/read data from it. There are 2 commands for reading data in this device, 0xB1 and 0xB2. However, to receive data on Arduino, requestFrom() is needed.
When this command is used, I can see via logic analyzer that it automatically sends 0xB1. Changing the address on requestFrom() only changes to "odd" commands like 0xB3, 0xB5.
So how I'm supposed to send the command 0xB2 and read from the slave device?
What I tried was initializing the command (0xB2) with Wire.beginTransmission(), do the initializations steps (selecting zone, and initializing according to datasheet) then just forcing a read with WIre.read().
Unfortunately it does not read anything and in some cases it reads a byte but does not acknowledge (NAK).
Is it possible to just "force a read" with Wire.read() if the device is supposed to send data after a command? Or I must call requestFrom() when receiving data?
The AT88SC0104CA datasheet fully describes the communications protocol.
Since this device is supposed to by cryptographically secure, you will need to study the data sheet pretty carefully.
It surely describes, and I am far away from completely understanding the functionalities.
But I just can't replicate some commands or atleast I feel like doing something really wrong on reading commands via Arduino as mentioned with the Wire.h reading methods.
For help on this forum, you will need to provide some basic information, as described in the "How to get the best out of this forum" post, linked at the head of every forum category.
Some helpful explanation and troubleshooting hints for I2C have very kindly been provided by forum user Koeple.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.