工具与软件:
您好!
我们在集成 TDA4 DSS 和 UB941串行器时遇到了一些问题。
按照启动指南、我们目前停留在此处: 
我们已经进行的测试:
- DSI 输出与 EVM 上的 DSI-eDP 桥(SN65)搭配使用
- 检查极性:尝试了不同的组合、但到目前为止都不起作用
- 时钟:外部时钟似乎没有问题、但外部时序不起作用;DSI_DTYPE = 0
- 图形发生器适用于0x65 = 0x05、 0x65 = 0x0D、但不适用于0x65 = 0x09
- 串行器错误寄存器不指示任何问题
SER 的错误寄存器:
D reg 0x1f = 0x8f [FREQUENCY_COUNTER] = as expected I reg 0x28 = 0x0 [DSI_STATUS] I reg 0x29 = 0x0 [DSI_ERR_COUNT] I reg 0x2a = 0x0 [DSI_VC_DTYPE] I reg 0x2b = 0x0 [DSI_ERR_RPT_0] I reg 0x2c = 0x0 [DSI_ERR_RPT_1] I reg 0x2d = 0x0 [DSI_ERR_RPT_2] D reg 0xc = 0x5 [GENERAL_STS] = OK D reg 0x50 = 0x16 [BRIDGE_STS] = OK D reg 0x5f = 0x58 [DSI_FREQ_DSI_FREQ_P1] = 528 MHz I reg 0xf = 0x1f [DPHY_STATUS] I reg 0x10 = 0x0 [DPHY_DLANE0_ERR] I reg 0x11 = 0x0 [DPHY_DLANE1_ERR] I reg 0x12 = 0x0 [DPHY_DLANE2_ERR] I reg 0x13 = 0x0 [DPHY_DLANE3_ERR] I reg 0x14 = 0x0 [DPHY_ERR_CLK_LANE] I reg 0x15 = 0x0 [DPHY_SYNC_STS] DES reg 0x1b = 0xa9 [FREQUENCY_COUNTER] = as expected
DSS DSI 配置:
// screen = (1002 * 2) x 733 lines dsiPrms.numOfLanes = 4U; dsiPrms.laneSpeedInKbps = 528815UL; // = (60 fps x 733 lines x 2004 pixels x 24bpp) / 4 lanes / 1000 Fvid2_control(dctrlHandle, IOCTL_DSS_DCTRL_SET_DSI_PARAMS, dsiPrms, nullptr) DISPLAY_CONTROLLER_VIDEOPORT_NODE_ID = DSS_DCTRL_NODE_VP3; DISPLAY_CONTROLLER_OUTPUT_NODE_ID = DSS_DCTRL_NODE_DSI_DPI2; Dss_DctrlVpParams *vpParams; Dss_DctrlAdvVpParams *advVpParams; Dss_dctrlVpParamsInit(vpParams); Dss_dctrlAdvVpParamsInit(advVpParams); vpParams->vpId = CSL_DSS_VP_ID_3; advVpParams->vpId = CSL_DSS_VP_ID_3; vpParams->lcdOpTimingCfg.mInfo.standard = FVID2_STD_CUSTOM; vpParams->lcdOpTimingCfg.mInfo.width = 1920; vpParams->lcdOpTimingCfg.mInfo.height = 720; vpParams->lcdOpTimingCfg.mInfo.fps = 60U; vpParams->lcdOpTimingCfg.mInfo.pixelClock = 88135920; // = (60 * 1002 * 2 * 733) // TskipCnt: SER IND[0x05] = 0x18 ( 12<<1 ) vpParams->lcdOpTimingCfg.mInfo.scanFormat = FVID2_SF_PROGRESSIVE; vpParams->lcdPolarityCfg.actVidPolarity = FVID2_POL_HIGH; // SER [0x12] = 0x00 vpParams->lcdPolarityCfg.hsPolarity = FVID2_POL_LOW; // SER IND[0x21] = 0x60 vpParams->lcdPolarityCfg.vsPolarity = FVID2_POL_LOW; // SER IND[0x21] = 0x60 vpParams->lcdPolarityCfg.pixelClkPolarity = FVID2_EDGE_POL_RISING; advVpParams->lcdAdvSignalCfg.hVAlign = CSL_DSS_VP_HVSYNC_ALIGNED; vpParams->lcdOpTimingCfg.dvoFormat = FVID2_DV_GENERIC_DISCSYNC; vpParams->lcdOpTimingCfg.videoIfWidth = FVID2_VIFW_24BIT; // same config verified with pattern generator vpParams->lcdOpTimingCfg.mInfo.hBackPorch = 22U; vpParams->lcdOpTimingCfg.mInfo.hSyncLen = 20U; vpParams->lcdOpTimingCfg.mInfo.hFrontPorch = 42U; vpParams->lcdOpTimingCfg.mInfo.vBackPorch = 10U; vpParams->lcdOpTimingCfg.mInfo.vSyncLen = 2U; vpParams->lcdOpTimingCfg.mInfo.vFrontPorch = 1U; Fvid2_control(dctrlHandle, IOCTL_DSS_DCTRL_SET_VP_PARAMS, vpParams, nullptr); Fvid2_control(m_dctrlHandle, IOCTL_DSS_DCTRL_SET_ADV_VP_PARAMS, advVpParams, nullptr);
UB941配置:
{0x01, 0x01}, /* reset device */
{0x01, 0x08}, /* disable DSI */
{0x1E, 0x01}, /* select DSI0 */
{0x03, 0x9A}, /* general cfg */
{0x06, 0x68}, /* DES device id */
{0x07, 0x54}, /* backlight driver device id */
{0x12, 0x00}, /* DE_POLARITY */
{0x17, 0x9E}, /* General cfg reg*/
{0x4F, 0x8C}, /* 4 DSI lanes*/
{0x1F, 0x28}, /* Set Freq Counter Period */
{0x40, 0x04},
{0x41, 0x20}, /* DSI Config_0 reg */
{0x42, 0x5F},
{0x40, 0x04},
{0x41, 0x21}, /* DSI_CONFIG_1 Register */
{0x42, 0x60}, // low-low
{0x40, 0x04},
{0x41, 0x30},
{0x42, 0x00},
{0x41, 0x31},
{0x42, 0x14}, /* HSYNC = 20 */
{0x41, 0x32},
{0x42, 0x00},
{0x41, 0x33},
{0x42, 0x02}, /* VSYNC = 2 */
{0x41, 0x05}, /* DSI_ERR_CFG_1 */
{0x42, 0x18}, // Tskip = 12
{0x40, 0x10}, // startup sequence
{0x41, 0x86},
{0x42, 0x0A},
{0x41, 0x94},
{0x42, 0x0A},
{0x01, 0x00}, // start
{0x04, 0x20} // Clear CRC Error Counters
您是否知道 UB941为何不能识别数据/时序?
此致、
Thomas