Multi-slave operation is used to control multiple DRV8847S devices through one I2C line as shown in Figure 7-25. The default device address of the DRV8847 device is 0x60 (7-bit address). Therefore, any DRV8847S device can be accessed using this address. The steps for multi-slave configuration for programming device-1 out of 4 connected devices (as shown in Figure 7-25) are as follows:
- The DRV8847S device variant is configured for multi-slave operation by writing the DISFLT bit (IC2_CON register) of all connected devices to 1b. This step will disable the nFAULT output pin of all DRV8847S, to avoid any race condition between master and slave I2C device.
- Pull the nFAULT pins (nFAULT2, nFAULT3, and nFAULT4 pins) of three devices (2, 3, and 4) to low to release the I2C buses of the slave device (device-2, device-3 and device-4). Now only device-1 is connected to master.
- Since, only one device, DRV8847S (1), is connected to the controller, and, therefore, its slave address can be reprogrammed from default 0x60 (7-bit address) to another unique address.
- Similarly, the slave address (SLAVE_ADDR) of the other three devices (device-2, device-3 and device-4) can be reprogrammed sequentially to unique addresses by a combination of nFAULT pins.
- When all slave addresses are reprogrammed, write the DISFLT bit to 0b (IC2_CON register). This will enable the nFAULT output pin for fault flagging.
- All the nFAULT pins are released and a multi-slave setup is complete. Now all connected slave devices can be accessed using the newly reprogrammed address.
- The above steps should be repeated for any device in case of a power reset (nSLEEP). .