Sorry, no real clue about this particular issue, just raising questions...
I assume, INT signal is Open Drain out (from chip), you have a pull-up. Is it a very weak pull-up (internal) or a stronger external?
Could it be that you see spurious INTs?
Could it be, that your external RTC chip fires twice an INT ("randomly")? Two different reasons why RTC chips sends an INT?
E.g. sporadic, every 10 sec. another INT (same signal, but different reason).
Are you using edge or level triggered INTs?
I assume, usually we use edge trigger INTs (level triggered INTs can generate a new INT if not fast enough to clear).
Suggestions:
Just count how many INTs triggered you have seen, how many you have processed. If you find a discrepancy - a hint to debug why.
Use an external scope if you see a "glitch" on the INT signal (e.g. INT signal is "floating").
Can you realize "spurious" INTs? Example: if you are edge triggered, you get an INT triggered, but the INT signal is back to inactive (before you have done anything, like clearing INT) - it is "spurious" (a signal integrity issue on board or with the external chip).
Just add "debug hooks", like counting INTs, check INT signal level status (after an edge triggered), if INT is triggered - what was the reason...
I assume, INT signal is Open Drain out (from chip), you have a pull-up. Is it a very weak pull-up (internal) or a stronger external?
Could it be that you see spurious INTs?
Could it be, that your external RTC chip fires twice an INT ("randomly")? Two different reasons why RTC chips sends an INT?
E.g. sporadic, every 10 sec. another INT (same signal, but different reason).
Are you using edge or level triggered INTs?
I assume, usually we use edge trigger INTs (level triggered INTs can generate a new INT if not fast enough to clear).
Suggestions:
Just count how many INTs triggered you have seen, how many you have processed. If you find a discrepancy - a hint to debug why.
Use an external scope if you see a "glitch" on the INT signal (e.g. INT signal is "floating").
Can you realize "spurious" INTs? Example: if you are edge triggered, you get an INT triggered, but the INT signal is back to inactive (before you have done anything, like clearing INT) - it is "spurious" (a signal integrity issue on board or with the external chip).
Just add "debug hooks", like counting INTs, check INT signal level status (after an edge triggered), if INT is triggered - what was the reason...
Statistics: Posted by tjaekel — Sun Sep 01, 2024 10:16 pm