ZHCSIJ2C July 2018 – April 2024 DS90UB935-Q1
PRODUCTION DATA
# Deserializer Settings
desAddr=0x7a
serAlias=0x1A
# Deserializer configuration for I2C passthrough
# Refer to Deserializer datasheet for I2C passthrough configuration
reg_0x58 = board.ReadI2C(desAddr,0x58)
reg_0x58 = reg_0x58 | 0x40
# Enable I2C Passthrough
board.WriteI2C(desAddr,0x58,reg_0x58)
temp_code = board.ReadI2C(desAddr,0x53)
# DS90UB935-Q1 Settings
board.WriteI2C(serAlias,0xB0,0x04)
board.WriteI2C(serAlias,0xB1,0x4B)
dynamic_config_ori = board.ReadI2C(serAlias,0xB2)
temp_ramp_dynamic_config= dynamic_config_ori | 0x20
board.WriteI2C(serAlias,0xB1,0x4C)
temp_ramp_static_config=board.ReadI2C(serAlias,0xB2)
temp_ramp_static_config=(temp_ramp_static_config & 0x8F) | 0x70
board.WriteI2C(serAlias,0xB2, temp_ramp_static_config)
board.WriteI2C(serAlias,0xB1,0x4B)
dynamic_offset= { 0: -1,
1: -1,
2: 0,
3: 0,
4: 1,
5: 1,
6: 1,
7: 3}
board.WriteI2C(serAlias,0xB2,temp_ramp_dynamic_config + dynamic_offset[temp_code])
reg_0x58 = reg_0x58 | 0x20 # Enable all auto ACK I2C Passthrough on deserializer
board.WriteI2C(desAddr,0x58,reg_0x58)
board.WriteI2C(serAddr,0x01,0x01) #Soft Reset to apply serializer updates, reinitialization of lock
# wait for deserializer lock time