This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VH-Q1: CSITX output image abnormally

Part Number: TDA4VH-Q1
Other Parts Discussed in Thread: TDA4VM, TDA4VH

Tool/software:

Hi, 

TI experts, 

Now we are using SDK 9.0 on our customer board and we meet a problem when we try to use CSITX to output image. 

This is the configuration of CSITX:

However, this configuration can output normal image on TDA4VM on our another customer board, which also uses SDK 9.0. 

Are there any different configurations required on VM and VH?

And my colleagues will post the MIPI waveform measurement results and more software test results later.

Regards, 

Muqun

  • Hello,

    the tivx_csitx_param_t  param in a more visible way:

    and we want to transmit a image of 800x1280, UYVY.

    this is a sample of the transmitted image:

    and this is how it looks like on the receive side:

    apparently, they did not match.

    problem may reside in multiple places. But at first, the MIPI signals transmitted by TDA4 seems not in a good state.

  • Hi all:

      Let me add the results of the hardware test. The MIPI-CSI tested so far has waveform output, but there is no high-frequency part in the waveform. The currently measured periodic waveform is about 1.8MHZ, which is similar to the Low Speed ​​mode of MIPI.

    This waveform is the current MIPI_CSI_TX, which is an abnormal waveform in comparison.

      

    If it is a normal MIPI waveform, there will be a clear contrast between Low Speed ​​and High Speed ​​modes, and high-frequency signals will also be significantly observed.

    This waveform is normal MIPI_CSI_RX.

    Thanks

  • Hi Muqun, Hiajun,

    There are minor differences in CSITX between VM and VH, but they are taken care in the driver and in the OpenVx layer, so from the application perspective, it should just be same. 

    When you see no output on CSITX, are you sure that you are transmitting data to CSITX, essentially is your OpenVX graph running and submitting the frames to the CSITX?

    Also please check and confirm that you are running correct CSITX instance? On TDA4VM, there is only one CSITX instance, where as there are 2 on TDA4VH

    Regards,

    Brijesh

  • Hi Brijesh,

    When you see no output on CSITX,

    it is not no output on CSITX, it is the output signal not correct, neither from the hardware view waveform nor the software view image.

    essentially is your OpenVX graph running and submitting the frames to the CSITX?

    when I do not run my csitx app, I cannot receive any image on the receiver side. and when I start the csitx, the receiver could receive images. this should be enough to confirm the csi instance  is right and the right tiovx app is well working.

  • Hi there,

    We have another board with a TDA4VM with sdk0900b, and my app_csitx.out could work well on this board, and images are normal on the receiver side.

    I also tested the CSITX pin on the J784S4-EVM board, but I don't know how to see images on the EVM board, so I turned to test the waveform of the D3N pin, and compare it with TDA4VM.

    The result is:



    Apparently, the waveform behaves very differently!

    Is this the normal CSITX waveform of TDA4VH? why is it so different from that of TDA4VM?

    Also, how can I see CSITX images on the J784S4-EVM board?

  • Hello Haijun,

    EVM does not seem to have a way to check the CSITX output. So we can just probe the signals and depending on the type of probe used, there could be differences in the signal. So are you using differential probe? What difference are you seeing in signal between TDA4VM and TDA4VH? 

    Regards,

    Brijesh

  • Hi Jadav

    We run the same application and use a 4GHZ differential probe to collect data.
    The yellow waveform in the oscilloscope is TDA4VM. It can be clearly seen that there are MIPI-Low Spped Mode and High Speed ​​Mode (differential signals of about 300mv), and the High Speed ​​mode has very dense data waveforms, which proves that data transmission is normal.

    The green waveform is TDA4VH, but when running the application on TDA4VH, although the MIPI-High Speed ​​mode can be seen, it is obvious that there are very few high-frequency signals, which seems to indicate that the data sent is abnormal and there is no very high-frequency waveform. We cannot receive valid images after converting MIPI-CSI to FPD LINK and then deserializing to DSI.

  • Hi Jadav

    The MIPI-CSI TX on the EVM board is only transmitted through a connector. How do you debug this signal on the EVM board? Are there other boards to test this connector? How do you verify that this function is running normally?

  • Hi, Brijesh, 

    We try to run csitx pdk example on our custom board, using TDA4VH and SDK 9.0, and the waveform is also abnormal. 

    This is the waveform we mesaured. This is almost the same as what is run using our app.

    This is the CCS output:

    We found that there is a line shows "CSITX_MOD_DPHY_TXBYTECLKHS_CLK = 0Hz". Is this right?

  • Hi,

    How are you getting TX Byte clock? If it is enabled, it should not be set to 0x0. Can you please check and confirm that you are using standard SDK binary and there are no changes in the source code?

    Regards,

    Brijesh 

  • Hi, Brijesh, 

    Sorry for replying so late. 

    I just compiled csitx_transmit_test, and then used CCS to put the xer5f file into mcu2_0 and run it.

    I haven't made any changes to the source code.

  • Hi,

    ok, let me check it next week, my concert is tx byte clock, it should not be 0. 

    Regards,

    Brijesh

  • any progress on this?

  • updates on this:

    We tried to run the pdk example, and the output waveform looks good. But tiovx app still outputs abnormal waveform.

    So I changed  my tiovx app to transmit the exactly same image format and size as it in the pdk demo. Still the tiovx app outputs abnormal waveform.

    I checked the csitx fvid2 create parameters, the two sides are exactly the same, both transmits 4 x 3840x2160 RAW12 images at csi lane speed TIVX-CSITX_LANE_BAND_SPEED_1600_TO_1800_MBPS.

    Then I checked the csitx related registers, this time I find some differences:

    registers of the pdk example:

    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 2a38000: 0x66a02a01 | 2a38008: 0x00000000 | 2a3800c: 0x00000003 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 2a38010: 0x00000000 | 2a3803c: 0x00000000 | 2a38040: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 2a38080: 0x00000000 | 2a380c0: 0x00000000 | 2a3813c: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 2a38140: 0x00000000 | 2a38180: 0x00000000 | 2a381c0: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 2a38200: 0x00000000 | 2a38204: 0x00000000 | 2a38208: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 2a3820c: 0x00000000 | 4400000: 0x64781a00 | 4400004: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4400008: 0x00000000 | 440000c: 0x00000000 | 4400020: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4400024: 0x00000000 | 440002c: 0x00000301 | 4400040: 0x00000016 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4400100: 0x0020002c | 4400104: 0x00000028 | 4400108: 0x00001680 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 440010c: 0x00000000 | 4404000: 0x021a202c | 4404004: 0x000000a0 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404008: 0x0000000f | 440400c: 0x0000f0f0 | 4404010: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404014: 0x00000000 | 4404020: 0x80000030 | 4404024: 0x0005000a 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404028: 0x0000191f | 440402c: 0x00005140 | 4404030: 0x00005140 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404034: 0x00000000 | 4404038: 0x00001f0f | 4404040: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404044: 0x00010000 | 4404048: 0x00010000 | 440404c: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404050: 0x00010000 | 4404054: 0x00010000 | 4404058: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 440405c: 0x00010000 | 4404060: 0x00010000 | 4404064: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404068: 0x00010000 | 440406c: 0x00010000 | 4404070: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404074: 0x00010000 | 4404078: 0x00010000 | 440407c: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404080: 0x000001b2 | 4404084: 0x16800870 | 4404088: 0x00000078 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 440408c: 0x00640000 | 4404090: 0x000000a8 | 4404094: 0x00640000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404098: 0x00000090 | 440409c: 0x00640000 | 44040a0: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 44040a4: 0x00640000 | 44040a8: 0x00000000 | 44040ac: 0x00640000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 44040b0: 0x00000000 | 44040b4: 0x00640000 | 44040b8: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 44040bc: 0x00640000 | 4404100: 0x000005a0 | 4404104: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404200: 0x00000000 | 4404204: 0x00000000 | 4404208: 0x00000010 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404d00: 0x00000000 | 4404d04: 0x00000000 | 4404d08: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404d0c: 0x00000000 | 4404d10: 0x00000000 | 4404d14: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404df8: 0x00000000 | 4404dfc: 0x00000000 | 4404e00: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404e04: 0x00000000 | 4404e08: 0x0000007f | 4404e0c: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404e10: 0x0000007f | 4404e20: 0x00000000 | 4404e24: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404e28: 0x00000000 | 4404e30: 0x00000000 | 4404e34: 0x00000007 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404e38: 0x00000000 | 4404e40: 0x000001ff | 4404e44: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4404ffc: 0x50250300 | 4408000: 0x6690a200 | 4408010: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4408014: 0x00000000 | 4408100: 0x00000000 | 4408104: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4408300: 0x00000000 | 4408304: 0x00000000 | 4408500: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4408504: 0x00000000 | 4408700: 0x00000000 | 4408704: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 492: CSITX_TX_APP : 4408a80: 0x00000000 | 4408a84: 0x00000000 | 2a39000: 0x66a02a01 
    src/csitx_transmit_test_main.c @ Line 497: CSITX_TX_APP : -------------------------------
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 2a39000: 0x66a02a01 | 2a39008: 0x00000000 | 2a3900c: 0x00000003 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 2a39010: 0x00000000 | 2a3903c: 0x00000000 | 2a39040: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 2a39080: 0x00000000 | 2a390c0: 0x00000000 | 2a3913c: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 2a39140: 0x00000000 | 2a39180: 0x00000000 | 2a391c0: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 2a39200: 0x00000000 | 2a39204: 0x00000000 | 2a39208: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 2a3920c: 0x00000000 | 4410000: 0x64781a00 | 4410004: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4410008: 0x00000000 | 441000c: 0x00000000 | 4410020: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4410024: 0x00000000 | 441002c: 0x00000300 | 4410040: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4410100: 0x0c200000 | 4410104: 0x00000000 | 4410108: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 441010c: 0x00000000 | 4414000: 0x021a202c | 4414004: 0x00000004 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414008: 0x00000000 | 441400c: 0x00000000 | 4414010: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414014: 0x00000000 | 4414020: 0x00000004 | 4414024: 0x00050005 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414028: 0x00000200 | 441402c: 0x00004e20 | 4414030: 0x00004e20 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414034: 0x00000000 | 4414038: 0x00000000 | 4414040: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414044: 0x00010000 | 4414048: 0x00010000 | 441404c: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414050: 0x00010000 | 4414054: 0x00010000 | 4414058: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 441405c: 0x00010000 | 4414060: 0x00010000 | 4414064: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414068: 0x00010000 | 441406c: 0x00010000 | 4414070: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414074: 0x00010000 | 4414078: 0x00010000 | 441407c: 0x00010000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414080: 0x00000048 | 4414084: 0x00640001 | 4414088: 0x00000078 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 441408c: 0x00640000 | 4414090: 0x000000a8 | 4414094: 0x00640000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414098: 0x00000090 | 441409c: 0x00640000 | 44140a0: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 44140a4: 0x00640000 | 44140a8: 0x00000000 | 44140ac: 0x00640000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 44140b0: 0x00000000 | 44140b4: 0x00640000 | 44140b8: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 44140bc: 0x00640000 | 4414100: 0x00000000 | 4414104: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414200: 0x00000000 | 4414204: 0x00000000 | 4414208: 0x00000010 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414d00: 0x00000000 | 4414d04: 0x00000000 | 4414d08: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414d0c: 0x00000000 | 4414d10: 0x00000000 | 4414d14: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414df8: 0x00000000 | 4414dfc: 0x00000000 | 4414e00: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414e04: 0x00000000 | 4414e08: 0x0000007f | 4414e0c: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414e10: 0x0000007f | 4414e20: 0x00000000 | 4414e24: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414e28: 0x00000000 | 4414e30: 0x00000000 | 4414e34: 0x00000007 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414e38: 0x00000000 | 4414e40: 0x000001ff | 4414e44: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4414ffc: 0x50250300 | 4418000: 0x6690a200 | 4418010: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4418014: 0x00000000 | 4418100: 0x00000000 | 4418104: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4418300: 0x00000000 | 4418304: 0x00000000 | 4418500: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4418504: 0x00000000 | 4418700: 0x00000000 | 4418704: 0x00000000 
    src/csitx_transmit_test_main.c @ Line 506: CSITX_TX_APP : 4418a80: 0x00000000 | 4418a84: 0x00000000 | 50: 0x00000000 

    registers of the tiovx app:

    0x2a38000: 0x66a02a01 | 0x2a38008: 0x00000000 | 0x2a3800c: 0x00000003 | 0x2a38010: 0x00000000 | 0x2a3803c: 0x00000000
    0x2a38040: 0x00000000 | 0x2a38080: 0x00000000 | 0x2a380c0: 0x00000000 | 0x2a3813c: 0x00000000 | 0x2a38140: 0x00000000
    0x2a38180: 0x00000000 | 0x2a381c0: 0x00000000 | 0x2a38200: 0x00000000 | 0x2a38204: 0x00000000 | 0x2a38208: 0x00000000
    0x2a3820c: 0x00000000 | 0x4400000: 0x64781a00 | 0x4400004: 0x00000000 | 0x4400008: 0x00000000 | 0x440000c: 0x00000000
    0x4400020: 0x00000000 | 0x4400024: 0x00000000 | 0x440002c: 0x00000301 | 0x4400040: 0x00000016 | 0x4400100: 0x0c20002c
    0x4400104: 0x00000028 | 0x4400108: 0x00001680 | 0x440010c: 0x00000000 | 0x4404000: 0x021a202c | 0x4404004: 0x000000b0
    0x4404008: 0x0000000f | 0x440400c: 0x0000f0f0 | 0x4404010: 0x00000000 | 0x4404014: 0x00000000 | 0x4404020: 0x80000030
    0x4404024: 0x0005000a | 0x4404028: 0x0000191f | 0x440402c: 0x00005140 | 0x4404030: 0x00005140 | 0x4404034: 0x00000000
    0x4404038: 0x00001f0f | 0x4404040: 0x00010000 | 0x4404044: 0x00010000 | 0x4404048: 0x00010000 | 0x440404c: 0x00010000
    0x4404050: 0x00010000 | 0x4404054: 0x00010000 | 0x4404058: 0x00010000 | 0x440405c: 0x00010000 | 0x4404060: 0x00010000
    0x4404064: 0x00010000 | 0x4404068: 0x00010000 | 0x440406c: 0x00010000 | 0x4404070: 0x00010000 | 0x4404074: 0x00010000
    0x4404078: 0x00010000 | 0x440407c: 0x00010000 | 0x4404080: 0x0000017a | 0x4404084: 0x0f000438 | 0x4404088: 0x000001b2
    0x440408c: 0x16800870 | 0x4404090: 0x000000a8 | 0x4404094: 0x00640000 | 0x4404098: 0x00000090 | 0x440409c: 0x00640000
    0x44040a0: 0x00000000 | 0x44040a4: 0x00640000 | 0x44040a8: 0x00000000 | 0x44040ac: 0x00640000 | 0x44040b0: 0x00000000
    0x44040b4: 0x00640000 | 0x44040b8: 0x00000000 | 0x44040bc: 0x00640000 | 0x4404100: 0x000005a0 | 0x4404104: 0x00000000
    0x4404200: 0x00000000 | 0x4404204: 0x00000000 | 0x4404208: 0x00000010 | 0x4404d00: 0x00000000 | 0x4404d04: 0x00000000
    0x4404d08: 0x00000000 | 0x4404d0c: 0x00000000 | 0x4404d10: 0x00000000 | 0x4404d14: 0x00000000 | 0x4404d14: 0x00000000
    0x4404d14: 0x00000000 | 0x4404df8: 0x00000000 | 0x4404dfc: 0x00000000 | 0x4404e00: 0x00000000 | 0x4404e04: 0x00000000
    0x4404e08: 0x0000007f | 0x4404e0c: 0x00000000 | 0x4404e10: 0x0000007f | 0x4404e20: 0x00000000 | 0x4404e24: 0x00000000
    0x4404e28: 0x00000000 | 0x4404e30: 0x00000000 | 0x4404e34: 0x00000007 | 0x4404e38: 0x00000000 | 0x4404e40: 0x000001ff
    0x4404e44: 0x00000000 | 0x4404ffc: 0x50250300 | 0x4408000: 0x6690a200 | 0x4408010: 0x00000000 | 0x4408014: 0x00000000
    0x4408100: 0x00000000 | 0x4408104: 0x00000000 | 0x4408300: 0x00000000 | 0x4408304: 0x00000000 | 0x4408500: 0x00000000
    0x4408504: 0x00000000 | 0x4408700: 0x00000000 | 0x4408704: 0x00000000 | 0x4408a80: 0x00000000 | 0x4408a84: 0x00000000
    -------------------------------
    0x2a39000: 0x66a02a01 | 0x2a39008: 0x00000000 | 0x2a3900c: 0x00000003 | 0x2a39010: 0x00000000 | 0x2a3903c: 0x00000000
    0x2a39040: 0x00000000 | 0x2a39080: 0x00000000 | 0x2a390c0: 0x00000000 | 0x2a3913c: 0x00000000 | 0x2a39140: 0x00000000
    0x2a39180: 0x00000000 | 0x2a391c0: 0x00000000 | 0x2a39200: 0x00000000 | 0x2a39204: 0x00000000 | 0x2a39208: 0x00000000
    0x2a3920c: 0x00000000 | 0x4410000: 0x64781a00 | 0x4410004: 0x00000000 | 0x4410008: 0x00000000 | 0x441000c: 0x00000000
    0x4410020: 0x00000000 | 0x4410024: 0x00000000 | 0x441002c: 0x00000300 | 0x4410040: 0x00000000 | 0x4410100: 0x0c200000
    0x4410104: 0x00000000 | 0x4410108: 0x00000000 | 0x441010c: 0x00000000 | 0x4414000: 0x021a202c | 0x4414004: 0x00000004
    0x4414008: 0x00000000 | 0x441400c: 0x00000000 | 0x4414010: 0x00000000 | 0x4414014: 0x00000000 | 0x4414020: 0x00000004
    0x4414024: 0x00050005 | 0x4414028: 0x00000200 | 0x441402c: 0x00004e20 | 0x4414030: 0x00004e20 | 0x4414034: 0x00000000
    0x4414038: 0x00001f00 | 0x4414040: 0x00010000 | 0x4414044: 0x00010000 | 0x4414048: 0x00010000 | 0x441404c: 0x00010000
    0x4414050: 0x00010000 | 0x4414054: 0x00010000 | 0x4414058: 0x00010000 | 0x441405c: 0x00010000 | 0x4414060: 0x00010000
    0x4414064: 0x00010000 | 0x4414068: 0x00010000 | 0x441406c: 0x00010000 | 0x4414070: 0x00010000 | 0x4414074: 0x00010000
    0x4414078: 0x00010000 | 0x441407c: 0x00010000 | 0x4414080: 0x00000048 | 0x4414084: 0x00640001 | 0x4414088: 0x00000078
    0x441408c: 0x00640000 | 0x4414090: 0x000000a8 | 0x4414094: 0x00640000 | 0x4414098: 0x00000090 | 0x441409c: 0x00640000
    0x44140a0: 0x00000000 | 0x44140a4: 0x00640000 | 0x44140a8: 0x00000000 | 0x44140ac: 0x00640000 | 0x44140b0: 0x00000000
    0x44140b4: 0x00640000 | 0x44140b8: 0x00000000 | 0x44140bc: 0x00640000 | 0x4414100: 0x00000000 | 0x4414104: 0x00000000
    0x4414200: 0x00000000 | 0x4414204: 0x00000000 | 0x4414208: 0x00000010 | 0x4414d00: 0x00000000 | 0x4414d04: 0x00000000
    0x4414d08: 0x00000000 | 0x4414d0c: 0x00000000 | 0x4414d10: 0x00000000 | 0x4414d14: 0x00000000 | 0x4414d14: 0x00000000
    0x4414d14: 0x00000000 | 0x4414df8: 0x00000000 | 0x4414dfc: 0x00000000 | 0x4414e00: 0x00000000 | 0x4414e04: 0x00000000
    0x4414e08: 0x0000007f | 0x4414e0c: 0x00000000 | 0x4414e10: 0x0000007f | 0x4414e20: 0x00000000 | 0x4414e24: 0x00000000
    0x4414e28: 0x00000000 | 0x4414e30: 0x00000000 | 0x4414e34: 0x00000007 | 0x4414e38: 0x00000000 | 0x4414e40: 0x000001ff
    0x4414e44: 0x00000000 | 0x4414ffc: 0x50250300 | 0x4418000: 0x6690a200 | 0x4418010: 0x00000000 | 0x4418014: 0x00000000
    0x4418100: 0x00000000 | 0x4418104: 0x00000000 | 0x4418300: 0x00000000 | 0x4418304: 0x00000000 | 0x4418500: 0x00000000
    0x4418504: 0x00000000 | 0x4418700: 0x00000000 | 0x4418704: 0x00000000 | 0x4418a80: 0x00000000 | 0x4418a84: 0x00000000
    ===========================================================================
    

    the difference is:

    I noticed that the register csi_tx_if_v2_dt0_cfg matches the right data type and size for pdk example, while csi_tx_if_v2_dt1_cfg matches it for tiovx app.

    So I wonder what is the difference between csi_tx_if_v2_dt0_cfg and csi_tx_if_v2_dt1_cfg, and may it be the cause?

    Hope this can help.

  • Forget to mention that, I tried to read register 0x4404d18 and 0x4404d1c, but I failed to read them. every time I read these two registers, the linux system will hang and reboot. I wonder why this happen?

  • Hi haijun,

    no, sorry, i did not get the chance to check it out. 

    But looking at the register dump, yes, it seems PDK driver is configuring CSITX to output RAW12 data correctly, whereas OpenVX node is configuring it to output YUV422 data type (datatype set to 0x1E). What input data image are you using in creating CSITX node?

    -  Are you using raw_image data structure as an input to the CSITX node? Then are you setting up msb position to 11 and pixel_container to TIVX_RAW_IMAGE_16_BIT?  This will then make the CSI2 datatype to RAW12.

    - Are you using vx_image data structure as input? then are you you using VX_DF_IMAGE_U16 or TIVX_RAW_IMAGE_P12_BIT datatype while creating the image? 

    Additionally, i am also seeing the difference in the frame size. Is the CSITX parameters setup correctly? Are you sure that the create parameters in both the cases are matching? 

    Regards,

    Brijesh

  • -  Are you using raw_image data structure as an input to the CSITX node? Then are you setting up msb position to 11 and pixel_container to TIVX_RAW_IMAGE_16_BIT?  This will then make the CSI2 datatype to RAW12.

    Yes, I can confirm this pretty sure, every single keywords are right.

    Is the CSITX parameters setup correctly? Are you sure that the create parameters in both the cases are matching? 

    Yes, I hexdumpped all the "InstParams->CreatePrms" before calling Fvid2_Create. they are exactly the same.

    here is the hexdump:

    [MCU_Cortex_R5_0]  SCICLIENT_CCS_INIT: Jul 12 2023, 20:32:00Sciclient_Init Passed.
    =================================================================
     DEVGRP = 0
    =================================================================
    SYSFW Common Board Configuration with Debug enabled... PASSED
    SYSFW PM Board Configuration... PASSED
    SYSFW Security Board Configuration... PASSED
    =================================================================
     DMSC Firmware Version 9.0.6--v09.00.06 (Kool Koala)
     Firmware revision 0x9
     ABI revision 3.1
    =================================================================
    Sciclient_ccs_init Passed.
    SCISERVER Board Configuration header population... PASSED
    [MAIN_Cortex_R5_0_0] 
    Clock Freq: CSITX_MOD_ESC_CLK = 20000000Hz
    Clock Freq: CSITX_MOD_DPHY_TXBYTECLKHS_CLK = 0Hz
    Clock Freq: CSITX_MOD_VBUS_CLK = 250000000Hz
    Clock Freq: CSITX_MOD_MAIN_CLK = 500000000Hz
    CSITX_TX_APP: Sample Application - STARTS !!!
    CSITX_TX_APP: Tx DF:0x2c
    CSITX_TX_APP: Tx Resolution:3840 x 2160
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  2C 00 00 00 00 00 00 00 00 0F 00 00 70 08 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 2B 00 00 00 01 00 00 00 11 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  16 00 00 00 28 00 00 00 28 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  0A 00 10 00 00 00 08 00 00 00 80 00 01 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  01 00 00 00 00 00 00 00 01 00 00 00 2C 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 0F 00 00 70 08 00 00 00 1E 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  2B 00 00 00 01 00 00 00 11 00 00 00 16 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  28 00 00 00 28 00 00 00 00 00 00 00 0A 00 10 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 08 00 00 00 80 00 01 00 00 00 02 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 02 00 00 00 2C 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 0F 00 00 70 08 00 00 00 1E 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 2B 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  01 00 00 00 11 00 00 00 16 00 00 00 28 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  28 00 00 00 00 00 00 00 0A 00 10 00 00 00 08 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 80 00 01 00 00 00 03 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  03 00 00 00 2C 00 00 00 00 00 00 00 00 0F 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  70 08 00 00 00 1E 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 2B 00 00 00 01 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  11 00 00 00 16 00 00 00 28 00 00 00 28 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 0A 00 10 00 00 00 08 00 00 00 80 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  01 00 00 00 01 00 00 00 01 00 00 00 04 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  08 00 00 00 FF 01 00 00 0E 00 00 00 04 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  C8 00 00 00 02 00 00 00 02 00 00 00 4D 01 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 13 00 00 00 0A 00 00 00 05 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  40 51 00 00 40 51 00 00 00 00 00 00 01 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 F0 F0 F0 F0 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 
    src/csitx_transmit_test_main.c @ Line 255: CSITX_TX_APP  00 00 00 00 
    CSITX_TX_APP: CSITX DRV created
    

    It just comes to my mind that before I ran my tiovx app which outpus 4xRaw12, I ran a tiovx app which outputs 4xUYVY. 

    This may be the reason why you see YUV422 data type in registres.

    what is the difference between csi_tx_if_v2_dt0_cfg and csi_tx_if_v2_dt1_cfg

    I would like to know what dt0, dt1, ... dt7 mean in the register table?

  • Hi,

    It just comes to my mind that before I ran my tiovx app which outpus 4xRaw12, I ran a tiovx app which outputs 4xUYVY. 

    This may be the reason why you see YUV422 data type in registres.

    Then are the register dump taken after running tiovx app, which outputs 4x UYVY data? 

    Also if you dont start with tiovx app with outputs 4x UYVY output and directly start with tiovx app with outputs 4x RAW12 data, do you see correct output? 

    I would like to know what dt0, dt1, ... dt7 mean in the register table?

    There is where the datatype for each virtual channel is configured. 

    Regards,

    Brijesh 

  • Then are the register dump taken after running tiovx app, which outputs 4x UYVY data?

    run APP outputs 4xUYVY -> stop app -> run APP outputs 4x RAW 12 -> dump regs

    Also if you dont start with tiovx app with outputs 4x UYVY output and directly start with tiovx app with outputs 4x RAW12 data, do you see correct output? 

    this time the registers are exactly the same, but I still cannot recv the right image.

    any ideas on how to debug this problem further ?

  • can you please also compare below register at the offset 0x04404080? 

    CSI_TX_IF_DT0_CFG

    Regards,

    Brijesh

  • this register is the same: 0x0000017a

  • nonono, it is 0x000001b2, both pdk example and tiovx app

  • Hi haijun,

    but then there is no difference in the register between PDK and tiovx app, isn't it? It should just work fine, same as PDK. isn't it? Are you seeing frame corruption on the receiving side? Is your graph running fine on OpenVX side, at correct fps? Is it sending frames continuously from tiovx?

    Regards,

    Brijesh

  • Hi, 

    this is my app, you can compile and run it on EVM board. It outputs 1 x 1920x1080 UYVY image at csi lane speed CSITX_LANE_BAND_SPEED_870_TO_950_MBPS .

    app_csitx.zip

    this is the image I received on my side using our product board, but it is apparently not correct.

    So I would like to see the image on EVM board on your side.

    It could not be better if you can check any mistake in my code.

    thank you very much

  • Hi,

    But you are just storing incrementing data in the input frame in below function. The output will not be correct in this case. are you checking the pixel values in the receiving end? 

    static void generate_frame_0(void *data_ptr, uint32_t width, uint32_t height)
    {
    static uint32_t offset;
    uint8_t *addr = data_ptr;

    for (vx_size i = 0; i < image_byte_size; i++){
    *addr++ = (i + offset) & 0xFF;
    }
    offset++;
    }

    Regards,

    Brijesh

  • I have tried to check the image on send side, it looks like:

    So the received image is quite different from it on the send side.

  • Hi Haijun,

    But i can only check from the register perspective on EVM, since CSITX output is not connected on EVM. 

    Regards,

    Brijesh

  • Hello,

    I finally resolved this.

    Just one line code:

    The cause is the wrong memory address submitted to csitx_drv in the csitx target code. It should be physical address rather than target address.

    I checked the function tivxMemShared2TargetPtr, it finally goes to this function:

    On SOC J784S4, this function convert the ptr to another value, while on SOC J721E, it returns the original value of ptr. That is why my code can work well on j721e but not on j784s4.

    But, finally, one more question, why there is a convert of address on j784s4 but not on j721e?

  • Hi Haijun,

    oh, this issue is fixed in the latest release. In SDK9.2, i see we are using tivxMemShared2PhysPtr API to get the physical address of the buffer. 

    This is required on J784s4 because the buffer memory is in high mem, so in order to make it accessible on R5F, RAT is used, but this RAT mapped memory cannot be used for DMA/CSITX. CSITX requires physical memory..

    Regards,

    Brijesh

  • Then why is RAT not needed for J721E?

    In other words, as far as the code is concerned, how to understand the macro #if and #else

  • Well, for J721E, its not required, because its one to one mapping and Frame buffer memory is stored within 32bit/4GB range. 

    Regards,

    Brijesh

  • ok, thank you.