Not able to read Interrupt Status Register on MAX30102

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Not able to read Interrupt Status Register on MAX30102

1,076 Views
_dabo
Contributor I

I am currently trying to develop a pulse oximeter. For this I use the MAX30102 sensor and the NXP LPC1768 microcontroller. The communication is done via I2C.

I have configured the MAX30102 sensor to generate an interrupt as soon as the FIFO is full.

As soon as I start the program in debug mode, an interrupt is generated (debug jumps to the interrupt service routine and the logic analyzer shows that the interrupt line goes low).

When I try to read the MAX30102's interrupt status registers on this first interrupt, I get a value of 0x00. And no other interrupt is generated either. I suspect this is because the I2C read of the interrupt status register is not working properly, and thus the interrupt on the MAX30102 is not reset.

However, if I read the FIFO data register interrupts are continuously generated because reading this register resets the interrupts on the MAX30102.

But now to the whimsical part. If I read other registers of the MAX30102 with the same I2C read function, I get values. E.g. the FIFO_CONFIG register, in which I have written before. There I get by reading the same value that I have written into the register.

But why does the reading of the interrupt status register with the same function not work?

I traced the I2C_Read_Function for reading both registers with a logic analyzer and it was correct for both registers.

Does anyone of you have any general ideas what this problem could be and what I can try, because I'm getting desperate with this project?! I have already tried a lot, so I am grateful for any solution that I have not yet pursued.

 

Attached my code files. I tried to cut it to the important parts, but i can not narrow it down more.

Labels (1)
0 Kudos
3 Replies

486 Views
sridhar150202
Contributor I
  1. Does this sensor work with LPC2378?? Please answer my question.
Tags (1)
0 Kudos

1,061 Views
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @_dabo 

"When I try to read the MAX30102's interrupt status registers on this first interrupt, I get a value of 0x00. "

->> Does the MAX30102 need enabled interrupt before, or did the status register cleared when you read? I think you need read User Manual of this sensor about how to config and handler the interrupt.

 

BR

Alice

0 Kudos

1,050 Views
_dabo
Contributor I

Hi @Alice_Yang,

thanks for replying. 

Yes MAX30102 needs to enable interrupt. I am doing so in max30102_init() and confirmed via Logic Analzyer that Interrupts are generated. 

Interrupt Status Register clears after reading, but at the moment i am reading the register it should not be cleared. 

0 Kudos