Ben

@0h00000000@ioc.exchange

All things embedded, data, science.

Well crap, I don't have any monitors that can accept 1080p24, they all want a 60hz or better refresh rate. I'm limited to a 62.5Mhz pixel clock. It looks like 800x600 is the best I can do with what I have, and that will let me validate that my HDMI logic is working.

The smaller BGA121 package would let me do 1500Mbps - or a 75Mhz pixel clock. I really need something with a SERDES interface(s), then I could just do display port over one lane. All those FPGAs need a paid version of the Lattice software though. Doh!

I'll screw with it in the morning. Time for the gym.

I wasn't getting signal out of the re-drivers, and I tried everything, for hours. And then I realized I had the I2C addresses swapped for the 2 redrivers, so I was talking to the one I wasn't using.

Now I've got signal after the driver, but monitor isn't syncing up. I'm gonna try swapping some bits on the data lanes around like I had them originally.

Well, there is a problem with the HDMI clock out from the FPGA - weird repeating pattern.

I use a 4th LVDS DDR geared lane and stuff it with 1's or 0's on alternating 1/5 DDR clock signal. I might have my math wrong I'll need to double check here.

Blue is 56MHz generated from SDR debug pin, and green is measured with diff probe on 560Mhz LVDS out. They should match.

OMG - I FINALLY got the I2C to the HDMI re-drivers working. I took an hour off to go watch the fireworks and then came back and locked in.

There were two main issues. First the MUX needed > 2.5v. Secondly, the EN pins had a 250k internal pull up, but when I measured them they were 0V. It turns out I tied them to extra FPGA pins in case I wanted to control them. The FPGA was uninitialized and pulling them down.

Then I had one of the addresses wrong. But finally, the thing that should be UBER simple to get working, is working.

I'll try configuring them tomorrow and see if I get a HDMI signal out of them.

Crap - I have a MUX for I2C for the HDMI drivers, and I routed 1V8 for VCC, but the datasheet says 2.5V minimum.

It's a tiny package, but the rework is doable, the complicating factor is the million things I have hooked up to it for debugging.