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?