SLVAFA4 august   2023 TPS650330-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Programmable Camera PMICs
    1. 2.1 Advantages of Production Programming
    2. 2.2 Key Features
    3. 2.3 Default Register Settings
  6. 3Production Line Programming
    1. 3.1 External I2C Controller
    2. 3.2 SerDes Back-Channel
    3. 3.3 Example Code
  7. 4Summary
  8. 5References

Example Code

Scalable Automotive 2-MP Camera Module Reference Design With Camera PMIC is used to demonstrate a production programming example with a remote deserializer present on the DS90UB954-Q1 EVM. This imager used in this reference design is the Onsemi® AR0233. This image sensor requires a power sequence that is different from the default TPS65033000-Q1 sequence and does not allow the 1.8 V IO rail to power up first. As this is a dual board design, the AR0233 image board is simply disconnected during the PMIC reprogramming over the back-channel.

With the DS90UB954-Q1 EVM connected and powered, a local PC can run a script to configure the back-channel and execute the program flow from Figure 3-6.

import time


# Set up IDs
UB954 = 0x60
UB953ID = 0x30
UB953 = 0x18
PMICID = 0xC0
PMIC = 0xC0

print "Configuring Back-Channel"

# Set up Port0
board.WriteI2C(UB954, 0x4C, 0x01)

# Set up Back Channel Config (0x58)
board.WriteI2C(UB954,0x58,0x5E)

# Set up SER ID
#board.WriteI2C(UB954,0x5B,UB953ID)
# Set up SER Alias ID
board.WriteI2C(UB954,0x5C,UB953)
# Set up Slave/PMIC ID
board.WriteI2C(UB954,0x5E,PMICID)
# Set up Slave/PMIC Alias ID
board.WriteI2C(UB954,0x66,PMIC)

time.sleep(0.1)

print "Reprogramming PMIC"

# Reprogram PMIC Power Sequence
board.WriteI2C(PMIC,0x02,0xDD)  # Unlock control registers
board.WriteI2C(PMIC,0x03,0x16)  # Disable Buck3 and LDO
board.WriteI2C(PMIC,0x04,0x1A)  # Disable the configuration CRC 
board.WriteI2C(PMIC,0x05,0xAA)  # Unlock configuration registers
board.WriteI2C(PMIC,0x0F,0x02)  # Reprogram power sequence
board.WriteI2C(PMIC,0x10,0x1A)
board.WriteI2C(PMIC,0x13,0x71)
board.WriteI2C(PMIC,0x14,0x42)
board.WriteI2C(PMIC,0x15,0x32)
board.WriteI2C(PMIC,0x16,0x52)
board.WriteI2C(PMIC,0x17,0x23)
board.WriteI2C(PMIC,0x03,0x1F)  # Enable Buck3 and LDO
board.WriteI2C(PMIC,0x0E,0x0A)  # Reprogram Buck2 power sequence
board.WriteI2C(PMIC,0x11,0x02)  # Configure nRSTOUT as global PGOOD
board.WriteI2C(PMIC,0x29,0xAE)  # Write new configuration CRC
board.WriteI2C(PMIC,0x04,0x1E)  # Enable configuration CRC
board.WriteI2C(PMIC,0x4A,0x2D)  # Write registers to EEPROM

time.sleep(1)
print "PMIC Reprogrammed"

Figure 3-6 and Figure 3-5 demonstrate the script execution with the Analog LaunchPad software.

GUID-20220923-SS0I-VCFH-NBDW-WQZMWNBDLWVP-low.pngFigure 3-4 Analog LaunchPad SerDes Link
GUID-20220923-SS0I-THVW-TJF2-LVHVNDNTS7Z5-low.pngFigure 3-5 Analog LaunchPad Scripting Window

Figure 3-6 and Figure 3-7 show the PMIC power sequence before and after reprogramming.

GUID-20220922-SS0I-XX0F-WNG7-KKH8CWPLFKPX-low.pngFigure 3-6 TPS65033000 Default Power Sequence
GUID-20220922-SS0I-PRDN-PMXM-4RDPRW1XNMLR-low.pngFigure 3-7 TPS65033000 Power Sequence After Reprogramming