This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ76930: Concurrent Read Write Prevention

Part Number: BQ76930

Hi,

I have been working with the BQ76930EVM and was wondering if there is a way to prevent reading from the memory at the same time the memory is being updated after a scan of the ADC's. Is this incorporated already into the internal circuitry of the BQ76930 module? Is there some way I can determine whether a concurrent read/write has occurred?

Thanks,

Connor Dempsey

  • Hi Connor,
    This is handled in the design. See the comment in the data sheet at 7.3.1.1. If you get the (voltage) value near a 0xFF to 0x00 transition and read as bytes you will eventually see the write between reads. When reading a voltage ramp as single bytes you can experience a discontinuity. Use the multiple byte read transaction. I don't know how you satisfy yourself about a simultaneous read/write.
  • Hi WM5295,

    You're correct, 7.3.1.1 did answer my question. By a simultaneous read/write I meant that the ADC would write to a register whilst the register is being read over I2C.

    Second question, -- if I send an I2C command to read a specific byte, which is in the middle of being updated. Then the BQ76930 will block my read command until the specific byte has finished updating, or until the entire decimation period ends?

    Thanks again,

    Connor

  • Hi Connor,
    I'm not the designer nor do I have access to the design, however it is my understanding it is a synchronous design. Read and write do not happen simultaneously, the ADC does not accumulate in the register where the value is stored, it is prepared and transferred for storage. Similarly the I2C does not operate from the storage register, data is transferred and then serialized in the interface logic.
    The part does not have a hold-off feature, if you read before data is available you get the previous value. Reading voltages immediately after boot will show the reset value of the registers, 00.