Hello,
I have a question about the calculation of the DSI param:dsiObj->dphyTxFbDiv.
I have got the calculate formula as below:
FbDiv = (2*ipDiv*opDiv*DataRate)/(19.2MHz);
and this is our input param:
prm.timings.width = 1280U;
prm.timings.height = 768;
prm.timings.hFrontPorch = 110U;
prm.timings.hBackPorch = 220U;
prm.timings.hSyncLen = 40U;
prm.timings.vFrontPorch = 5U;
prm.timings.vBackPorch = 20U;
prm.timings.vSyncLen = 5U;
prm.timings.pixelClock = 74250000ULL;
frame rate = 60Hz;
DataFormat:RGB888;
data_lane = 2;
which means the DataRate per lane = (1280+110+220+40)*(768+5+20+5)*24*60/2 bps = 948.024Mbps;
and the other dsi_setting is:
dsiObj->dphyTxIpDiv = 0x02;
dsiObj->dphyTxOpDiv = 0x02;
dsiObj->dphyTxRate = (0xE)|(0xE<<5);
dsiObj->cfgDsiTx.numOfLanes = 0x02;
dsiObj->privDsiTx.numOfLanes = 0x02;
dsiObj->dphyTxFbDiv = 0x18C;// (2*2*2*948.024)/(19.2MHz) = 395.01, 0x18C = 396 in hex
but actually it works only with the TxFbDiv value 0x173(which is given in demo) instead of 0x18C or 0x18B.
Is there any range of the TxFbDiv_Value or I just make mistakes in my calculation?
Best Regards,
David