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.

DRV8704: Read-Modify-Write on the status register

Part Number: DRV8704

Hi,

In the datasheet of the DRV8704, it is mentioned that to clear an error bit in the status register, a zero should be written to that bit (table 11). However, it is not possible to write a single bit in a register, the whole register must be written. Is the implementation like "write zero to clear, write one to leave as-is", or is "write zero to clear, write one to set"? These are two fundamentally different implementations and it is not quite clear which implementation is used.

In case it is "write zero to clear, write one to set", then the only thing that can be done to reset a single error bit, is to reset all the errors bits at once. If an initial error occurs, a read-modify-write cycle is required to clear the error, and an additional error may go undetected if it occurs between the read and the write operation. In that case, the write operation will reset the error, and the user will never know that the additional error occurred.

Is is possible to clarify the error resetting procedure in more detail?

  • Hi Wouter,

    Writing a one to a bit in the STATUS register does not affect it ("leave as-is"). If you wish to clear a single bit and leave the other bits unchanged, you can write a zero to the bit that needs to be cleared and write 1's for the other bits. Doing so will cause only one fault bit to be cleared while the others remained unchanged.