Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This code have bch error. #1

Open
AndyDengChina opened this issue Apr 27, 2024 · 13 comments
Open

This code have bch error. #1

AndyDengChina opened this issue Apr 27, 2024 · 13 comments
Assignees
Labels
bug Something isn't working

Comments

@AndyDengChina
Copy link

This code have bch error.

@zerkman
Copy link
Owner

zerkman commented Apr 27, 2024

Are you using Vivado ? Which FPGA are you targeting ?

Please give the steps you followed to reproduce that error.

@AndyDengChina
Copy link
Author

Thank you for your reply,

FPGA : ARTIX7 XCA7A35T-2FGG484C
VIVADO 2023.1
HDMI receiving device prompt: ChecksumErrOrBCHParityErr

@zerkman zerkman self-assigned this Apr 28, 2024
@zerkman zerkman added the bug Something isn't working label Apr 28, 2024
@zerkman
Copy link
Owner

zerkman commented Apr 28, 2024

Thank you for reporting this. I must find a way to check this myself and try and fix this.

@zerkman
Copy link
Owner

zerkman commented Nov 14, 2024

I have performed various checks in the BCH and parity encoding, and I did not find any evident error. The different users are not reporting any similar errors.
However, I have recently encountered an issue on one specific board, whose HDMI output has part of its TMDS channels' differential pairs swapped for routing optimization reasons. This is equivalent to a logic NOT operation on such channels. This obviously causes signaling errors and also incorrect image display. This could also be the problem with your setup.

The zhdmi demo should display an image like this one:
img_0

If nothing is displayed, or if some of the RGB components on the display are incorrect, this could indicate that the HDMI output has some inversion on some channels.
The recent commits on this repository enable an INVERTED_TX generic bitfield which allows you to specify which TMDS channels are inverted. With this information the HDMI transmitter is able to invert back the corresponding channel values.

Please let me know if this is helpful to you.

@AndyDengChina
Copy link
Author

HDMI sink prompt: ChecksumErrOrBCHParityErr
But the HDMI sink can display video normally.

@zerkman
Copy link
Owner

zerkman commented Feb 13, 2025

Can you explain what your HDMI sink is exactly? Is it a debugging device?
Could you make it produce additional information to narrow the search for the issue?

Also could you try inverting the clock signal by setting the INVERTED_TX generic to "1000" ?

@AndyDengChina
Copy link
Author

AndyDengChina commented Feb 14, 2025

Thank you for your patient guidance

hdmi sink ic : MTK TSUSV56

Image

Could you make it produce additional information to narrow the search for the issue?
-- NO

Also could you try inverting the clock signal by setting the INVERTED_TX generic to "1000" ?

   Is it possible to modify here?

serial_clk: entity zhdmi.tmds_serializer port map (
	clk => clk,
	sclk => sclk,
	reset => reset,
            --tmds_d => "1111100000",   
	tmds_d => "0000011111",
	tx_d_n => tx_clk_n,
	tx_d_p => tx_clk_p
);

@zerkman
Copy link
Owner

zerkman commented Feb 14, 2025

Thank you for the information. I haven't found any useful information on this sink device.

Did you try using another display / HDMI sink ?
Does your display work correctly using other HDMI sources ? (computer, game console etc)?

About the clock inversion, you need the latest commit of ZHDMI:

$ cd zhdmi
$ git pull

You can see an example in demo/hdl/zhdmi_demo_top_zynqberry.vhd. On this example INVERTED_TX is set to "1001" so the clock and blue component signals are inverted. This is due to the fact the TMDS P/N pairs of the HDMI output are physically swapped on this board, and it is not possible, on Xilinx FPGAs, to just swap the pair assignment in the constraint file, for ouput pin pairs that are set as TMDS outputs. The only seemingly possible option is to logically invert the input bits for the corresponding TMDS transmitters.

If you set INVERTED_TX to "1000" only the clock component will be inverted. From left to right, the different bits correspond to the clock, red, green and blue TMDS pairs. If the colors look correct on your display, there should be no need to invert the RGB components.

@zerkman
Copy link
Owner

zerkman commented Feb 14, 2025

Oh, it is TSUMV56, not TSUSV56. Is it on the same board as the XC7A35T, or a separate one? Is there a datasheet for TSUMV56 available somewhere?

@AndyDengChina
Copy link
Author

AndyDengChina commented Feb 17, 2025

I didn't use any other HDMI SINK,
There is no such error message when using other HDMI sources
I still have the same issue with setting INVERTED_TX to "1000"
XC7A35T and TSUMV56 are designed on one PCB board
TSUMV56 is a chip from Taiwan, and the datasheet are not written in detail
I have his datasheet, but I can't send it to the Internet.
But I can send the datasheet to your email.

@zerkman
Copy link
Owner

zerkman commented Feb 18, 2025

Ok, please send the datasheet to my email (the address is on my git commits). It may help me understand what is going on.

@AndyDengChina
Copy link
Author

AndyDengChina commented Feb 20, 2025

I have sent an email to: [email protected]

But the email was not sent successfully, please let me know email address

@zerkman
Copy link
Owner

zerkman commented Feb 21, 2025

You can send it to [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants