SE050C1HQ1/Z01SCZ
SE050 sometimes don't response READ command, NO ACK when running se05x_Get_Info.
i2c clock 360KHz.
Is that normal situation?
Hi m.c,
What is the platform/host controller with SE050? Would you please clarify?
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Ambarella S5L33M-A0-RH with Linux
Hi m.c,
Thanks for the information! Referring to your snapshots of I2C transaction, looks like you write to 0x90 with 0x00 and then read from 0x90, right? Per I2C spec, the master read operation is as below:
Since you just read 1 byte, so there is a not-acknowledge following this byte as it is the last one.
Hope that makes sense,
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Customer using Linux i2c driver which will check ACK packet after sending request rigorously and print warning message if no ACK. By prevent see this warning, platform provider AMBA suggest add flag in the application when doing i2c read. Is there any cmake option can turn this on (enable I2C_M_IGNORE_NAK flag) or where to add this flag in the source code?
Yes, cmake can be used to add this option, and you may use cmake-gui for that purpose, please refer to the following for details.
option — CMake 3.16.2 Documentation
or if you prefer to add in the command line, please refer to the following for details.
How to set a CMake option() at command line - Stack Overflow
Hope that helps,
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Customer had added the option in cmake file as below,
but unfortunately the issue still exist.
Please help correct if anything wrong about change.
As understanding is the flag I2C_M_IGNORE_NAK is used in read an i2c device while not the compile option.
Can you help check where to add this flag when read i2c device?
The flag is set correctly, but this flag is not for MW of SE050, it is for the I2C driver of the Linux platform, for example, please refer to Linux source code: I2C_M_IGNORE_NAK identifier (v5.4.8) - Bootlin , please make sure the i2C driver from linux is also compiled by the cmake in the same time, otherwise you might have to recompile the kernel.
Hope that helps,
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Customer had confirmed that I2C_M_IGNORE_NAK is in linux kernel source code.
But don't know how to add the option I2C_M_IGNORE_NAK in cmake file.
There's no cmake file in linux kernel source code.
Please help provide a guide on how to add it.(Our linux kernel version is 4.9)
Customer also checked this with Amba,
Amba replied that need add the flag I2C_M_IGNORE_NAK in upper layer when read an i2c device.
Can you help check where to add this flag in read i2c device?
Usually we run "make menuconfig
" to enable any flag supported by the kernel, but if this flag is not supported by the menuconfig, you may add it manually referring to http://www.sprg.uniroma2.it/kernelhacking2002/en/course-notes/ConfigurationFlags.txt , or you just directly add this flag in the command line . Please refer to https://www.linuxquestions.org/questions/linux-software-2/how-do-i-pass-my-cflags-when-compiling-the... for more details.
Hope that helps,
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------