主题中讨论的其他器件:TDA4VH
工具与软件:
您好、TI:
我们正在定制电路板上使用 TDA4VH、并尝试启用 DSI0输出。 (我们使用的是 processor_sdk_j784s4版本10)
DSI0输出进一步连接到 GMSL2串行器/解串器。
我们确实遇到了检测到 PCLK 而检测到 VS、但未检测到 HS 的情况。
TDA4和串行器显示相同的错误指示。
- 我们使用单摄像头应用程序作为测试应用程序(摄像头正在工作并发送30FPS)。
- 我们在代码中设置的显示设置为:
- 4通道、391.58Mbps 通道速度、重新计时20Mhz、FPS 60
| Htot | 1420. |
| Hactive | 1280 |
| HFP | 100 |
| Hsw | 20. |
| HBP | 20. |
| Vtot | 766 |
| Vactive | 720. |
| VFP | 32. |
| Vsw | 4. |
| VBP | 10. |
根据论坛上的其他主题、Params 在多个地方更改。
当我们使用 devmem2检查寄存器时、在运行用例期间、我们会得到以下结果:
root@j784s4-evm:~# devmem2 0x048000EC /dev/mem opened. Memory mapped at address 0xffff95ce9000. Read at address 0x048000EC (0xffff95ce90ec): 0x00000023 root@j784s4-evm:~# devmem2 0x048000C0 /dev/mem opened. Memory mapped at address 0xffffa7adf000. Read at address 0x048000C0 (0xffffa7adf0c0): 0x0030002E root@j784s4-evm:~# devmem2 0x048000B4 /dev/mem opened. Memory mapped at address 0xffff99586000. Read at address 0x048000B4 (0xffff995860b4): 0x00020284 root@j784s4-evm:~# devmem2 0x048000C4 /dev/mem opened. Memory mapped at address 0xffff8e46e000. Read at address 0x048000C4 (0xffff8e46e0c4): 0x01260F00 root@j784s4-evm:~# devmem2 0x048000F0 /dev/mem opened. Memory mapped at address 0xffffb6211000. Read at address 0x048000F0 (0xffffb62110f0): 0x00000004 root@j784s4-evm:~#
在 dss_dctrlDsi.c 文件中、我们注意到以下代码块(函数 dsDctrlUpdateVideoSizeConfig):
我们已将 vFrontPorch 设置为转发的值、并且检测到 VSync。
但是对于 HSYNC、除了使用 BPP 的乘法之外、使用了附加值:14、12、6、20。
您能解释一下这些值以及它们是如何计算的吗?
horzTotal = mInfo->width + mInfo->hFrontPorch + mInfo->hBackPorch + mInfo->hSyncLen;
dsiObj->videoSizeCfg.vact = mInfo->height;
if (DSS_DSI_CONNECTION_DSI2DP_BRIDGE != connectedTo)
{
dsiObj->videoSizeCfg.vfp = 1;
}
else
{
//We have forced entering here, even we do not have DSI2DP bridge
dsiObj->videoSizeCfg.vfp = mInfo->vFrontPorch;
}
dsiObj->videoSizeCfg.vbp = mInfo->vBackPorch;
dsiObj->videoSizeCfg.vsa = mInfo->vSyncLen;
dsiObj->videoSizeCfg.hsa = (mInfo->hSyncLen * BPP) - 14U;
dsiObj->videoSizeCfg.hbp = (mInfo->hBackPorch * BPP) - 12U;
dsiObj->videoSizeCfg.rgb = mInfo->width * BPP;
dsiObj->videoSizeCfg.hfp = (mInfo->hFrontPorch * BPP) - 6U;
dsiObj->videoSizeCfg.blkLinePulsePacket = (horzTotal * BPP) - 20U - dsiObj->videoSizeCfg.hsa;
您是否有其他想法、我们可以检查什么、以及可能有什么问题?
此致、
Milena

