ADS7038: Autonomous Mode: what happens when SEQ_START/DWC_EN are not set to 0 on alert

Part Number: ADS7038

Tool/software:

Hi,

Im trying to determine if the ads7038 is suitable for my application.

As said in the title, when in autonomous mode, will the EVENT_HIGH_FLAG, EVENT_LOW_FLAG continue to be set when entering and leaving the comparator window when SEQ_START and DWC_EN are not set to 0?

I need the high and low flags to be set and unset without MCU intervention so the can drive mosfets that bypass shunts when entering and leaving the ideal window of the shunt as fast as possible.

Or are the low and high flags only set again after clearing them.

Page 26: of the datasheet:

The idea is that the MCU will only poll the LAST_VALUE_CHx register for the value and show the value on a display and that this code should not delay the driving of the mosfet.

regards,

Klaas-Jan

  • Hi Klaas-Jan,

    The EVENT_HIGH_FLAG and EVENT_LOW_FLAG are only able to be set after clearing them first, as you suspected.

    Regards,
    Joel

  • Thanks for the speedy reply! Say that i have 3 channels with all high/low threshold set. Can i leave them uncleared for 1 channel for a while until i really need to know something about the window of that channel again? Will the flags on the other channels still be set? To put it otherwise, if i don't clear the flags for 3 channels and i dont clear them and the ADC goes trough all windows on those 3 channels, will the flags all be 1 at some point?

    regards,

    Klaas-Jan

  • Hi Klaas-Jan,

    The flags on other channels will still be able to be set while another channel has its own flags set, even if you don't clear the first channel's flags first. 

    Say you have channel 1, and separate events happen to set the EVENT_HIGH_FLAG and EVENT_LOW_FLAG bits. Even if channel 1's flag bits aren't cleared, the flag bits for channel 2 can still be set if another event triggers channel 2's EVEN_HIGH_FLAG or EVENT_LOW_FLAG bits. 

    To preserve the flags that have already been set, you can use the set bit command, with opcode 0x18.

    Regards,
    Joel

  • ok! thank you very much for your assistance!