DLPC8445: How can I obtain the DLPC8445 control program tool?

Part Number: DLPC8445


Use the Android motherboard to output a 4K VBO signal and send it to the DLPC8445. Input instructions to the DLPC8445 via I2C. However, the display failed to succeed. Therefore, I want to verify the problem using auxiliary tools.

#!/bin/sh

I2C_BUS=1
DLP_ADDR=0x1b
CMD_REG=0x11

echo "--- DLPC8445 VBO Source Initialization Script ---"

echo "1. Disabling LEDs..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xD0 0x01 0x00 0x00 i
sleep 0.5

echo "2. Configuring VBO Channel Mapping (8-lane direct)..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xBA 0x09 0x00 0x08 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 i
sleep 0.5

echo "3. Configuring VBO Parameters (10-bit, 36bpp RGB, 8-lane, 2Gbps range)..."
i2cset -y $I2C_BUS $DLP_ADDR 0xBB 0x01 0x00 0x00 0x08 i
sleep 0.5

echo "4. Setting Input Image Size to 3840x2160..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xE3 0x04 0x00 0x00 0x0F 0x70 0x08 i
sleep 0.5

echo "5. Setting External Source Sync Polarity to Auto-Detect..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xB4 0x01 0x00 0x00 i
sleep 0.5

echo "6. Setting Display Image Orientation to Rear Projection (Long-axis flip)..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xE6 0x01 0x00 0x02 i
sleep 0.5

echo "7. Setting Display Size to 3840x2160..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xE5 0x04 0x00 0x00 0x0F 0x70 0x08 i
sleep 0.5

echo "8. Executing Display (E1h) to apply all queued settings..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xE1 0x00 0x00 i
echo "Waiting for DLP to process and lock source..."
sleep 1

echo "9. CRITICAL DEBUG STEP - Checking Source Lock Status (B1h)..."
SOURCE_STATUS=""
TIMEOUT_COUNT=0
MAX_TIMEOUT=30

while [ "$SOURCE_STATUS" != "0x02" ] && [ $TIMEOUT_COUNT -lt $MAX_TIMEOUT ]; do
CURRENT_STATUS_OUTPUT=$(i2ctransfer -y $I2C_BUS w2@$DLP_ADDR 0x91 0xb1 r2)

SOURCE_STATUS=$(echo $CURRENT_STATUS_OUTPUT | awk '{print $2}')

case "$SOURCE_STATUS" in
"0x02")
echo " SUCCESS: Source is LOCKED (0x00 0x02)! Current status: $CURRENT_STATUS_OUTPUT"
;;
"0x01")
echo " INFO: Source is DETECTING (0x00 0x01)... Waiting. Current status: $CURRENT_STATUS_OUTPUT"
;;
"0x00")
echo " ERROR: Source Configuration Error (0x00 0x00)! Current status: $CURRENT_STATUS_OUTPUT"
break
;;
*)
echo " WARNING: Unexpected Source Status: $CURRENT_STATUS_OUTPUT. Retrying..."
;;
esac
sleep 1
TIMEOUT_COUNT=$((TIMEOUT_COUNT + 1))
done

if [ "$SOURCE_STATUS" != "0x02" ]; then
echo "ERROR: Source did not lock within $MAX_TIMEOUT seconds. Please check SoC video output and VBO configuration."
fi
echo "10. Enabling LEDs (R, G, B)..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xD0 0x01 0x00 0x07 i
sleep 0.5

echo "11. Setting LED Current to 800,800,800..."
i2cset -y $I2C_BUS $DLP_ADDR $CMD_REG 0xD1 0x0C 0x00 0x20 0x03 0x20 0x03 0x20 0x03 0x00 0x00 0x00 0x00 0x00 0x00 i
sleep 0.1

echo "--- DLPC8445 Initialization Complete. Image should be displayed now. ---"