Hi Team,
PCAL6524 IO Expander:
We tried reading the device-id as per section 6.3.2. as per the attached document.
We gave below command from Linux.
$ i2ctransfer -f -y 7 w3@0x22 0xf8 0x44 0xf9
When observed through scope, after 0xf8 we are receiving a NACK and execution stops at STEP3 of section 6.3.2. and we are unable to read the Device ID.
Please find the image below. Please provide us your thoughts regarding proceeding further with STEP4.
Thanks,
Rekha
Hello Rekha,
I hope all is great with you. Thank you for using the NXP communities.
You are correct, after the START command, the master should send the Reserved Device ID I2C-bus address followed by the R/W bit set to 0 (write): ‘1111 1000’ (0XF8).
Based on the image provided, I noticed that after the START command the 0xF8 is not sent.
Could you please send the 0xF8 after the START command?
I hope this information helps.
Regards,
David
Hello David,
Thanks for the quick response.
We are currently working in Linux environment and passing the below command as per PCAL6524 datasheet :
$ i2ctransfer -f -y 7 w3@0x22 0xf8 0x44 0xf9
This means we are sending F8 first. However, on the scope we observe the device address first (as highlighted in the figure by your last post- the rectangle) followed by F8.
Is there a way to send F8 directly from Linux userspace without the device address? If so, please provide the commands.
Regards,
Rekha
Hello Rekha,
Thank you for using the NXP community.
Unfortunately, I am unaware of such LINUX driver.
You have to make sure the 0xF8 is the first byte sent after the START command instead of the I2C address.
I hope this information helps.
Regards,
David