FXLS8471Q i2c communication sample

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

FXLS8471Q i2c communication sample

ソリューションへジャンプ
2,124件の閲覧回数
piotrrosenbaum
Contributor I

Hi !

I Can't communicate with FXLS8471Q via i2c. I want to read WHO_I_AM register but device don't respond.

After read who value is 255. Can You show me a example code how to read it ?

#define FXLS8471Q_SLAVE_ADDR       0x1E

#define FXLS8471Q_WHOAMI     0x0D

void FXLS_init(void) {

    uint8_t who;

    Soft_I2C1_send_address(FXLS8471Q_SLAVE_ADDR);

    Soft_I2C1_send_data(FXLS8471Q_WHOAMI, END);

    Soft_I2C1_send_address(FXLS8471Q_SLAVE_ADDR);

    Soft_I2C1_send_data(0x00, END);

    who = Soft_I2C1_read_data(END);

}

タグ(2)
0 件の賞賛
1 解決策
1,698件の閲覧回数
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Piotr,

Here is an example code to read the WHO_AM_I register (0x0D) using I2C when SA0 = SA1 = 0.

//FXLS8471Q 7-bit I2C address

#define FXLS8471Q_I2C_ADDRESS   0x1E // SA0 pin = SA1 = 0 -> 7-bit I2C address is 0x1E

who_am_i = I2C_ReadRegister(FXLS8471Q_I2C_ADDRESS, 0x0D);

unsigned char I2C_ReadRegister(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress)

{

  unsigned char result;

  

  I2C_Start();         

  I2C0_D = u8SlaveAddress << 1; /* Send I2C device address with W/R bit = 0 */

  I2C_Wait();

  I2C0_D = u8RegisterAddress; /* Send register address */

  I2C_Wait();

  I2C_RepeatedStart();

  I2C0_D = (u8SlaveAddress << 1) | 0x01; /* Send I2C device address this time with W/R bit = 1 */

  I2C_Wait();

  I2C_EnterRxMode();

  I2C_DisableAck();

  result = I2C0_D;

  I2C_Wait();

  I2C_Stop(); 

  result = I2C0_D;

  Pause(50);

  return result;

}

A copy from the data sheet:

Single byte read_text.JPG

Single byte read.JPG

I hope it helps.

Regards,

Tomas

PS: If my answer helps to solve your question, please mark it as "Correct". Thank you.

元の投稿で解決策を見る

0 件の賞賛
1 返信
1,699件の閲覧回数
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Piotr,

Here is an example code to read the WHO_AM_I register (0x0D) using I2C when SA0 = SA1 = 0.

//FXLS8471Q 7-bit I2C address

#define FXLS8471Q_I2C_ADDRESS   0x1E // SA0 pin = SA1 = 0 -> 7-bit I2C address is 0x1E

who_am_i = I2C_ReadRegister(FXLS8471Q_I2C_ADDRESS, 0x0D);

unsigned char I2C_ReadRegister(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress)

{

  unsigned char result;

  

  I2C_Start();         

  I2C0_D = u8SlaveAddress << 1; /* Send I2C device address with W/R bit = 0 */

  I2C_Wait();

  I2C0_D = u8RegisterAddress; /* Send register address */

  I2C_Wait();

  I2C_RepeatedStart();

  I2C0_D = (u8SlaveAddress << 1) | 0x01; /* Send I2C device address this time with W/R bit = 1 */

  I2C_Wait();

  I2C_EnterRxMode();

  I2C_DisableAck();

  result = I2C0_D;

  I2C_Wait();

  I2C_Stop(); 

  result = I2C0_D;

  Pause(50);

  return result;

}

A copy from the data sheet:

Single byte read_text.JPG

Single byte read.JPG

I hope it helps.

Regards,

Tomas

PS: If my answer helps to solve your question, please mark it as "Correct". Thank you.

0 件の賞賛
%3CLINGO-SUB%20id%3D%22lingo-sub-493646%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFXLS8471Q%20i2c%E9%80%9A%E4%BF%A1%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-493646%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%20%EF%BC%81%3C%2FP%3E%3CP%3Ei2c%E7%B5%8C%E7%94%B1%E3%81%A7FXLS8471Q%E3%81%A8%E9%80%9A%E4%BF%A1%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82WHO_I_AM%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%8C%E5%BF%9C%E7%AD%94%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E8%AA%AD%E3%81%BF%E5%8F%96%E3%81%A3%E3%81%9F%E5%BE%8C%E3%81%AE%E5%80%A4%E3%81%AF%20255%20%E3%81%A7%E3%81%99%E3%80%82%E8%AA%AD%E3%81%BF%E6%96%B9%E3%81%AE%E4%BE%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%A6%8B%E3%81%9B%E3%81%A6%E3%82%82%E3%82%89%E3%81%88%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22_jivemacro_uid_1464013746319501%20jive_macro_code%20jive_text_macro%22%20data-renderedposition%3D%22134_50_798_32%22%20jivemacro_uid%3D%22_1464013746319501%22%3E%3CP%3E%23FXLS8471Q_SLAVE_ADDR%200x1E%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%20%3C%2FP%3E%3CP%3E%23%E5%AE%9A%E7%BE%A9%20FXLS8471Q_WHOAMI%200x0D%3C%2FP%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22_jivemacro_uid_14640136729548970%20jive_macro_code%20jive_text_macro%22%20data-renderedposition%3D%22244_50_798_224%22%20jivemacro_uid%3D%22_14640136729548970%22%3E%3CP%3Evoid%20FXLS_init(void)%20%7B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Euint8_t%20%E8%AA%B0%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3ESoft_I2C1_send_address(FXLS8471Q_SLAVE_ADDR)%3B%3C%2FP%3E%3CP%3ESoft_I2C1_send_data(FXLS8471Q_WHOAMI%E3%80%81END)%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3ESoft_I2C1_send_address(FXLS8471Q_SLAVE_ADDR)%3B%3C%2FP%3E%3CP%3ESoft_I2C1_send_data(0x00%2C%20END)%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Ewho%20%3D%20Soft_I2C1_read_data(END)%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-493647%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXLS8471Q%20i2c%20communication%20sample%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-493647%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%83%94%E3%82%AA%E3%83%88%E3%83%AB%E3%81%95%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AF%3CSPAN%20lang%3D%22EN-US%22%3E%E3%80%81SA0%20%3D%20SA1%20%3D%200%20%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AB%20I%20%3CSUP%3E2%3C%2FSUP%3E%20C%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20WHO_AM_I%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%20(0x0D)%20%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%20%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_macro_code%20jive_text_macro%20_jivemacro_uid_14642664011759806%22%20data-renderedposition%3D%22117_8_1192_32%22%20jivemacro_uid%3D%22_14642664011759806%22%20modifiedtitle%3D%22true%22%3E%3CP%3E%2F%2FFXLS8471Q%207%E3%83%93%E3%83%83%E3%83%88I2C%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%3C%2FP%3E%3CP%3E%23define%20FXLS8471Q_I2C_ADDRESS%200x1E%20%2F%2F%20SA0%E3%83%94%E3%83%B3%20%3D%20SA1%20%3D%200%20-%26gt%3B%207%E3%83%93%E3%83%83%E3%83%88I2C%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AF0x1E%E3%81%A7%E3%81%99%20%3C%2FP%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_macro_code%20jive_text_macro%20_jivemacro_uid_14642662161523383%22%20data-renderedposition%3D%22175_8_1192_16%22%20jivemacro_uid%3D%22_14642662161523383%22%3E%3CP%3Ewho_am_i%20%3D%20I2C_ReadRegister(FXLS8471Q_I2C_ADDRESS%E3%80%810x0D)%3B%3C%2FP%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_macro_code%20jive_text_macro%20_jivemacro_uid_14642660521477583%22%20data-renderedposition%3D%22217_8_1192_416%22%20jivemacro_uid%3D%22_14642660521477583%22%3E%3CP%3Eunsigned%20char%20I2C_ReadRegister(unsigned%20char%20u8SlaveAddress%2C%20unsigned%20char%20u8RegisterAddress)%3C%2FP%3E%3CP%3E%7B%3C%2FP%3E%3CP%3Eunsigned%20char%20%E7%B5%90%E6%9E%9C%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%20%3C%2FP%3E%3CP%3EI2C_%E9%96%8B%E5%A7%8B()%3B%20%3C%2FP%3E%3CP%3EI2C0_D%20%3D%20u8SlaveAddress%20%26lt%3B%26lt%3B%201%3B%20%2F*%20W%2FR%E3%83%93%E3%83%83%E3%83%88%20%3D%200%E3%81%A7I2C%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3C%2FP%3E%3CP%3EI2C_Wait()%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EI2C0_D%20%3D%20u8RegisterAddress%3B%20%2F*%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E9%80%81%E4%BF%A1%20*%2F%3C%2FP%3E%3CP%3EI2C_Wait()%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EI2C_%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E9%96%8B%E5%A7%8B()%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EI2C0_D%20%3D%20(u8SlaveAddress%20%26lt%3B%26lt%3B%201)%20%7C%200x01%3B%20%2F*%20%E4%BB%8A%E5%9B%9E%E3%81%AFW%2FR%E3%83%93%E3%83%83%E3%83%88%20%3D%201%E3%81%A7I2C%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%BE%E3%81%99%20*%2F%20%3C%2FP%3E%3CP%3EI2C_Wait()%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EI2C_EnterRxMode()%3B%3C%2FP%3E%3CP%3EI2C_DisableAck()%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E7%B5%90%E6%9E%9C%20%3D%20I2C0_D%3B%3C%2FP%3E%3CP%3EI2C_Wait()%3B%3C%2FP%3E%3CP%3EI2C_%E5%81%9C%E6%AD%A2()%3B%20%3C%2FP%3E%3CP%3E%E7%B5%90%E6%9E%9C%20%3D%20I2C0_D%3B%3C%2FP%3E%3CP%3E%E4%B8%80%E6%99%82%E5%81%9C%E6%AD%A2(50)%3B%3C%2FP%3E%3CP%3E%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B7%E3%83%BC%E3%83%88%E3%81%8B%E3%82%89%E3%81%AE%E3%82%B3%E3%83%94%E3%83%BC%3A%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Single%20byte%20read_text.JPG%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Single%20byte%20read_text.JPG%22%20style%3D%22width%3A%20689px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F58141i23EEB5F8ABC667A7%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Single%20byte%20read_text.JPG%22%20alt%3D%22Single%20byte%20read_text.JPG%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Single%20byte%20read.JPG%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Single%20byte%20read.JPG%22%20style%3D%22width%3A%20854px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F58167i81568F9C4BD43EDE%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Single%20byte%20read.JPG%22%20alt%3D%22Single%20byte%20read.JPG%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E3%81%8A%E5%BD%B9%E3%81%AB%E7%AB%8B%E3%81%A6%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%83%88%E3%83%BC%E3%83%9E%E3%82%B9%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%2011px%3B%20font-family%3A%20arial%2C%20helvetica%2C%20'helvetica%20neue'%2C%20verdana%2C%20sans-serif%3B%20color%3A%20%2351626f%3B%22%3E%3CEM%3E%E8%BF%BD%E4%BC%B8%3A%20%E7%A7%81%E3%81%AE%E5%9B%9E%E7%AD%94%E3%81%8C%E8%B3%AA%E5%95%8F%E3%81%AE%E8%A7%A3%E6%B1%BA%E3%81%AB%E5%BD%B9%E7%AB%8B%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E3%80%8C%E6%AD%A3%E8%A7%A3%E3%80%8D%E3%81%A8%E3%83%9E%E3%83%BC%E3%82%AF%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%80%82%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E