Generating a HDMI signal

nikescar
Posts: 2
Joined: Fri Mar 29, 2019 8:43 am

Generating a HDMI signal

Postby nikescar » Fri Mar 29, 2019 8:57 am

The short of it:
Is the ESP32 powerful enough to generate a single color HDMI signal at 1080p and 4k?

The long of it:
I'm looking to generate a single color HDMI signal when a input button is pressed with sub millisecond latency. I know an FPGA can do this but I'm wondering if the ESP32 is capable. I figure since I can hardcode the needed arrays for each of the 3 data lines (RGB), that should save some clock cycles. In some reading I've done, it seems that HDMI needs a 25Mhz pixel clock which seems doable.

I'm new to these dev boards so, if I'm going down a dead end here feel free to tell me.

ESP_Sprite
Posts: 9727
Joined: Thu Nov 26, 2015 4:08 am

Re: Generating a HDMI signal

Postby ESP_Sprite » Sat Mar 30, 2019 7:52 am

Without any external components you mean? It's going to be hard... as you said before, HDMI needs a pixel clock of 25MHz, however it's a serial protocol that encodes each pixel into (3 lanes of) 10 bits. This means that for each pixel, there are 10 bits that need to be clocked out. As the I2S speed has an absolute theoretical maximum of 80MHz on the ESP32, this means you can obtain a maximum pixel clock of 8MHz... while some monitors/TVs could in theory be nice enough to support a resolution with a pixel clock that low (320x240x60Hz?), it's out of spec and as such far from a given that it would work.

Alternatively, you can use an external RGB-to-HDMI chip and use e.g. Bitlunis VGA stuff to generate the RGB signals, but then you'd be generating HDMI only indirectly.

Deouss
Posts: 425
Joined: Tue Mar 20, 2018 11:36 am

Re: Generating a HDMI signal

Postby Deouss » Sat Mar 30, 2019 7:35 pm

I just wonder - if I supply a HF signal from an external PLL with higher frequencies like 200Mhz+ - can I2S handle it?
For ESP32 cpu is jus a matter of how fast the buffers are read from dma/fifos. This could even increase the fps of cameras

nikescar
Posts: 2
Joined: Fri Mar 29, 2019 8:43 am

Re: Generating a HDMI signal

Postby nikescar » Sun Mar 31, 2019 4:47 am

Thanks for the response ESP_Sprite. I knew that the 3 lanes needed to be encoded in the 10 bits but for some reason was thinking that would only be an issue of eating up clock cycles. Somehow it hadn't occurred to me that the transmission of that data would be the real bottleneck. Doh!

Would a RGB->HDMI encoding chip add significant latency (greater than 1 ms)? Also, are there any chips you would recommend? I'm having trouble finding a chip that takes an RGB signal.

ESP_Sprite
Posts: 9727
Joined: Thu Nov 26, 2015 4:08 am

Re: Generating a HDMI signal

Postby ESP_Sprite » Sun Mar 31, 2019 5:38 am

Deouss - I don't think a pll will help here - as far as I'm aware, the I2S signals get synced to the internal 80MHz clock, so you can't go faster than that.

nikescar - You may want to try looking for a parallel-to-TMDS converter, as that's the underlying physical layer of HDMI/DVI.

Who is online

Users browsing this forum: msfujino and 32 guests