Expert Mode Data File // How to read, Write and take control of the downstream bus using PCA9641A 2 channels I2C-bus multiplexor // Board: Fm+ demo board OM13260, board OM13495 TSSOP16 with PCA9641 // Connectivity: Connect Fm+ I2C bus1 to SDA_MST1 and SCL_MST1, Set A0, A1, A2 and A3 pins to GND; the slave device address = 0x70 // I2C Write Protocol : |S|Addr + W|A|register pointer|A|Data|A|P| // I2C Read Protocol : |S|Addr + W|A|register pointer|A|SR|Addr + R|A|Data|NACK|P| //---------------------------------------------------------- // Expert sw format: // slave addr,Read/Write,stop bit = yes/No,delay ms,register pointer,data,comments: notes //---------------------------------------------------------- // dumy read for user to read this file 71,Read,Yes,00,00,00,Comments: Please read this file before run. use text editor to open //Start program //write cycle; write to reg#3 to reserve 100ms or 0x64 downstream bus 70,Write,Yes,00,03,64,Comments: Write addr 0x70, reg pointer 03 with value 0x64. master need 100ms downstream bus //write cycle; write to reg#1 to request the downstream bus and wait 5ms 70,Write,Yes,05,01,01,Comments: Write addr 0x70, reg pointer 01 with value 0x01. master requests an ownership of downstream bus // Read control register; The value should be 0x01 if this is the first time boot up 70,Write,No,00,01,Comments: Write addr 0x70, pointer 01; Set pointer to 01 register 70,Read,Yes,00,03,Comments: read register 01; value should be 0x03 if the other master not connect to the downstream bus //write cycle; enable BUS_CONNECT bit in CONTR reg (reg #1) to connect this master to the downstream bus; and wait 05ms 70,Write,Yes,05,01,05,Comments: Write addr 0x70, pointer 01 with value 0x05 for BUS = on and control = on see table 11 in datasheet //Now this master connected to the downstream bus and has (100ms - 05ms - write cycle) = 100-5-0.03 (1MKz CLOCK)=94.970 msleft. //PCA9641 will disconnect master from the downstream bus after 94.970ms.