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.

TVP5158: Video artifacts at temperatures below -30 degrees Celsius

Part Number: TVP5158

Hi All,

We have an issue with the TVP5158 in our custom CCA design. When the temperature dips below -30 degrees Celsius we start seeing line artifacts on the video. I've attached a couple of examples.

We've verified that the reset sequence is being followed and we are applying the 2.3.2 patch just in case. The issue has been narrowed down to the decoder by verifying the input signals look good at the pin. And the output looks good if the blue loss of sync test pattern is being applied. Only when it starts processing input video do we see the artifacts (including a blue test pattern from a generator).

The issue won't go away unless we reset the chip or power cycle the board. Even if we bring the temperature back up, the video still shows the corruption. We've also seen this on multiple boards, so we're pretty sure it's not just a one off part or PWB issue.

Along with the patch, we modify the following registers to configure the part to our use case.
NAME, REGISTER, VALUE
TVP5158_DECODER_WREN, 0xFE, 0x0F
TVP5158_AVD_OUT_CTRL_1, 0xB0, 0x60
TVP5158_AVD_OUT_CTRL_2, 0xB1, 0x17
TVP5158_POWER_CTRL, 0x1A, 0xF0
TVP5158_OUTPUT_FORM_CTRL_1, 0xA8, 0x04
TVP5158_OUTPUT_FORM_CTRL_2, 0xA9, 0x44
TVP5158_BLUE_SC_Y_CTRL, 0x90, 0x29
TVP5158_BLUE_SC_CB_CTRL, 0x91, 0xF0
TVP5158_BLUE_SC_CR_CTRL, 0x92, 0x6E
TVP5158_OFM_MODE_CTRL, 0xB2, 0x25
TVP5158_BRIGHTNESS_CONTRAST_RANGE, 0x12, 0x13

I'm hoping that only a simple register tweak is all we need to fix this!

Thanks for your help in advance!

Jason

  • Are you using the industrial temp range variant of the TVP?

    The blue screen test is a great test, but can you please extend a little on the test by setting the luma and chroma values such that there are forced transitions on each bit, i.e. luma = 0, chroma = 255, then luma = 255, chroma = 0, and other single bit transitions, e.g. luma = 192, chroma = 64 so the msb toggles. I just want to make sure that this isn't a system level issue with transitioning bits.

    BR,

    Steve

  • Hi Steve,

    Sorry for not replying in a timely manner. My company switched e-mails so I didn't get the notification!

    We are still investigating the issue. We are using the industrial temp range variant of the part. I'll post the video of the luma / chroma results as soon as I get it.

    There are a couple of new observations we've made.

    1) If all 4 inputs are fed by the same source (using a buffered splitter), then the issue is much worse and more frequent.

    2) On our board, the Analog Power (1.1V, and 3.3V) and Digital Power (1.1V & 3.3V) are tied to the same power supply. We did this because the datasheet provided the same tolerance for each and didn’t specify tighter/cleaner requirements on VDDA. Could this potentially be causing an issue with the initialization of the analog circuitry? Our PDN for 3.3V and 1.1V meets the requirements from the datasheet, but perhaps the high frequency events are causing ADC or PLL issues?

    We noticed that one of the dev kits we had used previously that VDDA & VDD were isolated by ferrite beads and the separate power islands had their own decoupling. Can you provide details on how the VDDA rails are used internally?

    Please let me know if you have any questions! Thanks for your help!

    Jason

  • It is always better to filter analog supplies, but I don't think this is the issue here. The tolerance is not the issue with the analog supplies, but noise injection. Any noise on the digital supplies will potentially feed through into the analog domains.

    Looking more closely at the second image above you can see the big image shift. This implies to me that the real issue is timing, possibly setup/hold violations feeding the digital data to your down-stream processor.

    Can you capture an eye diagram of the clock vs each digital data-pin at your target processor in turn and make sure that there is sufficient setup and hold margin per the target requirements?

    BR,

    Steve

  • Hi Steve,

    Thanks for the quick response! We'll get to work on the eye diagrams.

    I'm still a little confused as to how this would explain some of the original observations:

    1) The internally generated blue loss of sync test pattern looks fine, yet the same color blue from an external pattern generator would look bad.
    2) Being in pixel interleaved mode I'd expect all the channels to be equally as bad. We're seeing the behavior mostly on a single channel out of the 4.
    3) Warming the board up to room temperature doesn't fix the issue unless we reset the chip.

    Thanks again!

    Jason
  • Jason,
    I wasn't sure what more you are using or how the TVP is configured, so just guessing at possibilities. The large shift could be caused by the target getting out of sync with the TVP and one possibility would be setup/hold violations.

    Regarding pixel interleaved, each channel will have its own sync codes embedded so if the receiving device does not re-sync every line then it could be caused by a receiving channel getting out of sync due to a momentary glitch in the sync codes.

    Re-warming up, again, if the receiving processor does not continually sync to the digital video stream then once out of step it would remain that way.

    We have seen many processors assume that once they have locked to the video that there is a fixed frame size and never re-sync. This is bad since the source is an analog stream and the video could go in and out of lock causing jumps in the number of lines sent and/or the line length whilst the TVP re-locks.

    Not saying this IS the issue, but setup/hold needs to be verified anyhow for general system stability.

    Is it possible for you to reset the target processor without power cycling the TVP or force the target to try to re-start looking for the video?

    BR,
    Steve
  • Hi Steve,

    We only modify the settings as per the first post. So not a lot changes were made to the default settings. These being the ones I could see causing trouble:

    AVD_OUT_CTRL_1 = 0x60

    AVD_OUT_CTRL_2 = 0x17

    POWER_CTRL = 0xF0

    OUTPUT_FORM_CTRL_1 = 0x04

    OUTPUT_FORM_CTRL_2 = 0x44

    OFM_MODE_CTRL = 0x25

    We were able to reset the target device during the failure state (video attached this time) without changing the TVP or its settings. It still kept failing in the same manner after a number of resets. I've attached the register dump from all 4 cores in the 5158. One failed for channel 2 and the other for channel 4. I did a diff of them and there were no obvious differences in the registers.

    We're getting a board moded up with jumpers to try and capture the eye. It's a little difficult as most of the design is blind and buried vias. Hopefully have some results soon.

    The next test I'm trying to do is experiment with some of the individual core settings in the TVP. See if there is a way make it worse or cause any change.

    Thanks!

    Jason

    tvp5158_cahnnel_4_fail.txt
    ######## CORE 1 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0xa0 
     I2C (0x5f): 0x02 = 0x84 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x01 
    ######## CORE 2 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0x80 
     I2C (0x5f): 0x02 = 0x07 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x02 
    ######## CORE 3 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0xa0 
     I2C (0x5f): 0x02 = 0x04 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x04 
    ######## CORE 4 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0x80 
     I2C (0x5f): 0x02 = 0x84 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x08 
    
    tvp5158_channel_2_fail.txt
    ######## CORE 1 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0xa0 
     I2C (0x5f): 0x02 = 0x84 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x01 
    ######## CORE 2 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0x80 
     I2C (0x5f): 0x02 = 0x87 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x02 
    ######## CORE 3 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0x90 
     I2C (0x5f): 0x02 = 0x05 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x04 
    ######## CORE 4 ########
     I2C (0x5f): 0x00 = 0x1e 
     I2C (0x5f): 0x01 = 0xb0 
     I2C (0x5f): 0x02 = 0x84 
     I2C (0x5f): 0x03 = 0x00 
     I2C (0x5f): 0x04 = 0x02 
     I2C (0x5f): 0x05 = 0x00 
     I2C (0x5f): 0x06 = 0x00 
     I2C (0x5f): 0x07 = 0x00 
     I2C (0x5f): 0x08 = 0x51 
     I2C (0x5f): 0x09 = 0x58 
     I2C (0x5f): 0x0a = 0x0d 
     I2C (0x5f): 0x0b = 0x02 
     I2C (0x5f): 0x0c = 0x81 
     I2C (0x5f): 0x0d = 0x00 
     I2C (0x5f): 0x0e = 0x03 
     I2C (0x5f): 0x0f = 0x03 
     I2C (0x5f): 0x10 = 0x80 
     I2C (0x5f): 0x11 = 0x80 
     I2C (0x5f): 0x12 = 0x13 
     I2C (0x5f): 0x13 = 0x80 
     I2C (0x5f): 0x14 = 0x00 
     I2C (0x5f): 0x15 = 0x00 
     I2C (0x5f): 0x16 = 0x10 
     I2C (0x5f): 0x17 = 0x0a 
     I2C (0x5f): 0x18 = 0x40 
     I2C (0x5f): 0x19 = 0x00 
     I2C (0x5f): 0x1a = 0xf0 
     I2C (0x5f): 0x1b = 0x00 
     I2C (0x5f): 0x1c = 0x0c 
     I2C (0x5f): 0x1d = 0x00 
     I2C (0x5f): 0x1e = 0x00 
     I2C (0x5f): 0x1f = 0x00 
     I2C (0x5f): 0x20 = 0x00 
     I2C (0x5f): 0x21 = 0x00 
     I2C (0x5f): 0x22 = 0x80 
     I2C (0x5f): 0x23 = 0x80 
     I2C (0x5f): 0x24 = 0x00 
     I2C (0x5f): 0x25 = 0xf5 
     I2C (0x5f): 0x26 = 0x00 
     I2C (0x5f): 0x27 = 0x00 
     I2C (0x5f): 0x28 = 0x00 
     I2C (0x5f): 0x29 = 0x06 
     I2C (0x5f): 0x2a = 0x1e 
     I2C (0x5f): 0x2b = 0x04 
     I2C (0x5f): 0x2c = 0x00 
     I2C (0x5f): 0x2d = 0xf2 
     I2C (0x5f): 0x2e = 0x08 
     I2C (0x5f): 0x2f = 0x04 
     I2C (0x5f): 0x30 = 0xff 
     I2C (0x5f): 0x31 = 0xff 
     I2C (0x5f): 0x32 = 0x00 
     I2C (0x5f): 0x33 = 0x00 
     I2C (0x5f): 0x34 = 0x6a 
     I2C (0x5f): 0x35 = 0x08 
     I2C (0x5f): 0x36 = 0x05 
     I2C (0x5f): 0x37 = 0x07 
     I2C (0x5f): 0x38 = 0x7a 
     I2C (0x5f): 0x39 = 0x00 
     I2C (0x5f): 0x3a = 0xd0 
     I2C (0x5f): 0x3b = 0x02 
     I2C (0x5f): 0x3c = 0x19 
     I2C (0x5f): 0x3d = 0x00 
     I2C (0x5f): 0x3e = 0xf0 
     I2C (0x5f): 0x3f = 0x00 
     I2C (0x5f): 0x40 = 0x25 
     I2C (0x5f): 0x41 = 0x03 
     I2C (0x5f): 0x42 = 0x40 
     I2C (0x5f): 0x43 = 0x00 
     I2C (0x5f): 0x44 = 0x04 
     I2C (0x5f): 0x45 = 0x00 
     I2C (0x5f): 0x46 = 0x07 
     I2C (0x5f): 0x47 = 0x00 
     I2C (0x5f): 0x48 = 0x7a 
     I2C (0x5f): 0x49 = 0x00 
     I2C (0x5f): 0x4a = 0xd0 
     I2C (0x5f): 0x4b = 0x02 
     I2C (0x5f): 0x4c = 0x01 
     I2C (0x5f): 0x4d = 0x00 
     I2C (0x5f): 0x4e = 0x15 
     I2C (0x5f): 0x4f = 0x00 
     I2C (0x5f): 0x50 = 0x7a 
     I2C (0x5f): 0x51 = 0x00 
     I2C (0x5f): 0x52 = 0xd0 
     I2C (0x5f): 0x53 = 0x02 
     I2C (0x5f): 0x54 = 0x8d 
     I2C (0x5f): 0x55 = 0x00 
     I2C (0x5f): 0x56 = 0xbc 
     I2C (0x5f): 0x57 = 0x02 
     I2C (0x5f): 0x58 = 0x26 
     I2C (0x5f): 0x59 = 0x00 
     I2C (0x5f): 0x5a = 0xdc 
     I2C (0x5f): 0x5b = 0x00 
     I2C (0x5f): 0x5c = 0x1e 
     I2C (0x5f): 0x5d = 0x09 
     I2C (0x5f): 0x5e = 0x34 
     I2C (0x5f): 0x5f = 0x03 
     I2C (0x5f): 0x60 = 0x00 
     I2C (0x5f): 0x61 = 0x09 
     I2C (0x5f): 0x62 = 0x40 
     I2C (0x5f): 0x63 = 0x1e 
     I2C (0x5f): 0x64 = 0x18 
     I2C (0x5f): 0x65 = 0x00 
     I2C (0x5f): 0x66 = 0x0b 
     I2C (0x5f): 0x67 = 0x00 
     I2C (0x5f): 0x68 = 0x00 
     I2C (0x5f): 0x69 = 0x1f 
     I2C (0x5f): 0x6a = 0x1f 
     I2C (0x5f): 0x6b = 0x02 
     I2C (0x5f): 0x6c = 0x10 
     I2C (0x5f): 0x6d = 0x04 
     I2C (0x5f): 0x6e = 0x64 
     I2C (0x5f): 0x6f = 0x20 
     I2C (0x5f): 0x70 = 0x7d 
     I2C (0x5f): 0x71 = 0x00 
     I2C (0x5f): 0x72 = 0x8a 
     I2C (0x5f): 0x73 = 0x64 
     I2C (0x5f): 0x74 = 0x04 
     I2C (0x5f): 0x75 = 0x02 
     I2C (0x5f): 0x76 = 0x0f 
     I2C (0x5f): 0x77 = 0x0f 
     I2C (0x5f): 0x78 = 0x03 
     I2C (0x5f): 0x79 = 0x05 
     I2C (0x5f): 0x7a = 0x20 
     I2C (0x5f): 0x7b = 0x1e 
     I2C (0x5f): 0x7c = 0x02 
     I2C (0x5f): 0x7d = 0x08 
     I2C (0x5f): 0x7e = 0x03 
     I2C (0x5f): 0x7f = 0x03 
     I2C (0x5f): 0x80 = 0x0a 
     I2C (0x5f): 0x81 = 0x00 
     I2C (0x5f): 0x82 = 0x5a 
     I2C (0x5f): 0x83 = 0x06 
     I2C (0x5f): 0x84 = 0x00 
     I2C (0x5f): 0x85 = 0x03 
     I2C (0x5f): 0x86 = 0x22 
     I2C (0x5f): 0x87 = 0x00 
     I2C (0x5f): 0x88 = 0x00 
     I2C (0x5f): 0x89 = 0x16 
     I2C (0x5f): 0x8a = 0x1d 
     I2C (0x5f): 0x8b = 0x64 
     I2C (0x5f): 0x8c = 0x00 
     I2C (0x5f): 0x8d = 0x00 
     I2C (0x5f): 0x8e = 0x0a 
     I2C (0x5f): 0x8f = 0x04 
     I2C (0x5f): 0x90 = 0x29 
     I2C (0x5f): 0x91 = 0xf0 
     I2C (0x5f): 0x92 = 0x6e 
     I2C (0x5f): 0x93 = 0x00 
     I2C (0x5f): 0x94 = 0x00 
     I2C (0x5f): 0x95 = 0x00 
     I2C (0x5f): 0x96 = 0x60 
     I2C (0x5f): 0x97 = 0x50 
     I2C (0x5f): 0x98 = 0x00 
     I2C (0x5f): 0x99 = 0x00 
     I2C (0x5f): 0x9a = 0x00 
     I2C (0x5f): 0x9b = 0x0a 
     I2C (0x5f): 0x9c = 0x05 
     I2C (0x5f): 0x9d = 0x05 
     I2C (0x5f): 0x9e = 0x03 
     I2C (0x5f): 0x9f = 0xbc 
     I2C (0x5f): 0xa0 = 0xbc 
     I2C (0x5f): 0xa1 = 0x00 
     I2C (0x5f): 0xa2 = 0x0d 
     I2C (0x5f): 0xa3 = 0x02 
     I2C (0x5f): 0xa4 = 0x90 
     I2C (0x5f): 0xa5 = 0x01 
     I2C (0x5f): 0xa6 = 0x78 
     I2C (0x5f): 0xa7 = 0x00 
     I2C (0x5f): 0xa8 = 0x04 
     I2C (0x5f): 0xa9 = 0x44 
     I2C (0x5f): 0xaa = 0x03 
     I2C (0x5f): 0xab = 0xd8 
     I2C (0x5f): 0xac = 0x05 
     I2C (0x5f): 0xad = 0x00 
     I2C (0x5f): 0xae = 0x01 
     I2C (0x5f): 0xaf = 0x00 
     I2C (0x5f): 0xb0 = 0x60 
     I2C (0x5f): 0xb1 = 0x05 
     I2C (0x5f): 0xb2 = 0x25 
     I2C (0x5f): 0xb3 = 0xe4 
     I2C (0x5f): 0xb4 = 0xe4 
     I2C (0x5f): 0xb5 = 0x00 
     I2C (0x5f): 0xb6 = 0x1b 
     I2C (0x5f): 0xb7 = 0x04 
     I2C (0x5f): 0xb8 = 0x40 
     I2C (0x5f): 0xb9 = 0x00 
     I2C (0x5f): 0xba = 0x00 
     I2C (0x5f): 0xbb = 0x01 
     I2C (0x5f): 0xbc = 0xd7 
     I2C (0x5f): 0xbd = 0x0f 
     I2C (0x5f): 0xbe = 0x00 
     I2C (0x5f): 0xbf = 0x00 
     I2C (0x5f): 0xc0 = 0x00 
     I2C (0x5f): 0xc1 = 0x88 
     I2C (0x5f): 0xc2 = 0x88 
     I2C (0x5f): 0xc3 = 0xc9 
     I2C (0x5f): 0xc4 = 0x01 
     I2C (0x5f): 0xc5 = 0x00 
     I2C (0x5f): 0xc6 = 0x00 
     I2C (0x5f): 0xc7 = 0x00 
     I2C (0x5f): 0xc8 = 0x00 
     I2C (0x5f): 0xc9 = 0xa5 
     I2C (0x5f): 0xca = 0xff 
     I2C (0x5f): 0xcb = 0x7e 
     I2C (0x5f): 0xcc = 0x01 
     I2C (0x5f): 0xcd = 0x00 
     I2C (0x5f): 0xce = 0x00 
     I2C (0x5f): 0xcf = 0x00 
     I2C (0x5f): 0xd0 = 0x00 
     I2C (0x5f): 0xd1 = 0x00 
     I2C (0x5f): 0xd2 = 0x00 
     I2C (0x5f): 0xd3 = 0x00 
     I2C (0x5f): 0xd4 = 0x00 
     I2C (0x5f): 0xd5 = 0x00 
     I2C (0x5f): 0xd6 = 0x00 
     I2C (0x5f): 0xd7 = 0x00 
     I2C (0x5f): 0xd8 = 0x00 
     I2C (0x5f): 0xd9 = 0x00 
     I2C (0x5f): 0xda = 0x00 
     I2C (0x5f): 0xdb = 0x00 
     I2C (0x5f): 0xdc = 0x00 
     I2C (0x5f): 0xdd = 0x00 
     I2C (0x5f): 0xde = 0x00 
     I2C (0x5f): 0xdf = 0x00 
     I2C (0x5f): 0xe0 = 0x25 
     I2C (0x5f): 0xe1 = 0x25 
     I2C (0x5f): 0xe2 = 0x00 
     I2C (0x5f): 0xe3 = 0x00 
     I2C (0x5f): 0xe4 = 0x25 
     I2C (0x5f): 0xe5 = 0x25 
     I2C (0x5f): 0xe6 = 0x25 
     I2C (0x5f): 0xe7 = 0x25 
     I2C (0x5f): 0xe8 = 0x01 
     I2C (0x5f): 0xe9 = 0x00 
     I2C (0x5f): 0xea = 0x00 
     I2C (0x5f): 0xeb = 0x00 
     I2C (0x5f): 0xec = 0x00 
     I2C (0x5f): 0xed = 0x00 
     I2C (0x5f): 0xee = 0x00 
     I2C (0x5f): 0xef = 0x25 
     I2C (0x5f): 0xf0 = 0x08 
     I2C (0x5f): 0xf1 = 0x00 
     I2C (0x5f): 0xf2 = 0x00 
     I2C (0x5f): 0xf3 = 0x00 
     I2C (0x5f): 0xf4 = 0x00 
     I2C (0x5f): 0xf5 = 0x00 
     I2C (0x5f): 0xf6 = 0x00 
     I2C (0x5f): 0xf7 = 0x00 
     I2C (0x5f): 0xf8 = 0x00 
     I2C (0x5f): 0xf9 = 0x25 
     I2C (0x5f): 0xfa = 0x25 
     I2C (0x5f): 0xfb = 0x25 
     I2C (0x5f): 0xfc = 0x25 
     I2C (0x5f): 0xfd = 0x25 
     I2C (0x5f): 0xfe = 0x0f 
     I2C (0x5f): 0xff = 0x08 
    

  • Jason,

    This video clip doesn't seem to have the image slip that the above picture shows. Not sure if this is telling us anything or not to be honest.

    In the video clip you can see a rolling artifact. Was the same video signal being fed to all analog inputs or were they different? Does the rolling occur if the same video is fed to all channels. (just information gathering)

    For the forced blue screen test you did earlier I assume you only forced one channel to blue screen and left the remaining channels enabled?

    BR,

    Steve

  • Hi Steve,

    You're correct, the image slip only occurs randomly. Haven't really noticed a pattern as of yet.

    In the case of the video we were sending all the same pattern on all 4 inputs. From the same pattern generator and through a buffered splitter.

    I believe that the earlier blue test pattern behavior for loss of sync was on all channels, not just the failing one. Never occurred to me to just pull the one input, as I was toggling at the source instead of the buffer. I'll redo the test with just the single input being pulled.

    Thanks again!

    Jason
  • Hi Steve,

    We repeated the failure with removing only the misbehaving source and leaving the others active. I was surprised to see the failure still occurring on the blue loss of sync pattern (attached). We're working on some SI simulations to see if there's an issue on the receiving end of our FPGA. And we're also having one of the cards moded up to try and filter the input rails.

    We're still a little perplexed as to why only 1 channel of the 4 interleaved gets into that state. Are there any other documents from TI that describe how the timing of the interleaved output is derived? i.e. whether individual channels could have different timing behavior.

    Thanks again!

    Jason

  • Jason,

    If you have access to the clock signal trace between the TVP and your FPGA you could try loading it slightly. (I call it the finger test). Try touching the pin or exposed trace, adding a little capacitance. If this has ANY effect on the displayed image (makes it worse or makes it better, or even just changes anything at all) then you most likely have a timing violation.

    I can't comment why it seems to only affect one channel since there are many factors which feed into correctly decoding the data correctly.

    The fact that you see this on the blue screen makes me think that it isn't anything to do with the analog front end, so I don't think filtering the analog supplies will have any effect.

    BR,

    Steve

  • Hi Steve,

    The failure only occurs below -30 degrees celsius. And the part / traces aren't very accessible. So, we're going to work on getting a card moded up to bring the signals out. 

    We were poking around the register set of the TVP5158 and were able to make the issue "go away" by inverting the clock polarity (Out_CLK_Pol_Sel of register B2h). This seems to point to an output timing issue as you suspected. However, when we look at the design it shows we have enough margin on that interface. Perhaps we misinterpreted the datasheet?

    My colleague is typing up what we think the datasheet means right now and he'll post it here in a little bit.  

    Hopefully you can clarify our understanding of it!

    Thanks again for your help!

    Jason

  • Hi Steve,

    Just want to make sure we are interpreting the datasheet properly to calculate the setup/hold margins.

    In 5.8 AC Timing, it shows that data is updated on falling edges and should be clocked on the rising edge at the RX end (which we do)

    The worst case setup time at the RX (ignoring board skews) should be ~2.6 ns ((108 MHz x 45%, worst case duty cycle) – 1.5 ns (max t5))

    However, Figure 3-11 showing the pixel interleaving timing implies that the data is valid on the falling edge and transitioning on the rising edge.

    i.e. our FPGA should be clocking on falling edges of the 108 MHz clock, not rising and we only need to be concerned about hold time violations (min t5 is 0.22 ns)

    Is the intent that the RX should be clocking on the rising or falling edge of the 108 MHz clock?

    Thanks,

    Jordan

  • Jordan,

    Figure 3-11 is trying to show the data relationship between channels and not relationship to the clock. The active clock edge depends on configuration.

    The key points here are that there is an active edge, i.e. the edge that causes the data to change. All timings should be calculated from that edge. The recommendation to use the opposite edge to capture data is a general recommendation which tries to ensure setup times are valid.

    Now, what looks like it is missing from the datasheet is the output hold time. Using the min data valid time and max rise/fall times ends up implying a negative hold time, which I don't believe to be true.

    I think you should be safe to assume hold time of 0ns and a max data valid time of 1.5ns. At 108MHz the nominal period is 9.26ns with a half cycle time of 4.63ns. Subtract 2.6ns setup time leaves 2.03ns. Subtract the max data valid time of 1.5ns leaves just about 500ps of margin if you use the riding edge to capture and the falling edge to trigger. This assumes zero clock & data length skew.

    The other spanner in the works is that there will actually be some jitter on the clock since the clock is derived from the incoming video. This too will eat into your margin.

    If possible in your FPGA design can you instantiate buffers on the data inputs to delay data with respect to the clock and use the falling edge to capture your data (or invert the TVP clock and use the rising edge). Basically, use the same clock edge to capture as what you have configured for launch, but delay the data to ensure hold times.

    You should also probably add clock_uncertainty of a few 100ps to your timing constraints.

    The missing data hold time is an issue in calculating timings here unfortunately.

    BR,

    Steve

  • Hi Steve,

    In regards to clock uncertainty/jitter, is this captured by the MIN 44 to MAX 55% duty cycle of the 108 MHz Clock spec in the datasheet?

    We did some more testing today with 2 CCAs.
    We swept them from -40C to 80C to get an idea of how the timing shifts over temperature.
    We powered them both up at cold and left them powered as we ramped to 80C.

    On one, the video worked with rising edge (across the full temp range) but failed for inverted clock until the temp exceeded 15C.

    On the other, rising edge failed but inverted clock worked across the full temp range. We power cycled the chip at hot (80C) and then it worked for both rising and falling edge clocking.

    Based on the datasheet, I don't see how the tolerances could stack up where we could have 1 CCA that fails inverted clock (assume it is hold time violations) and another CCA that fails rising edge clocking (assume it is setup time violations)??

    I am working on getting a CCA instrumented up so I can measure the clock/data relationship coming out of the TVP5158 during these different fault conditions.

    Thanks,

    Jordan
  • Jordan,
    Fundamentally I don't recommend using the opposite edge of the clock that launches the data since the relationship between the launch edge and the 'capture' edge will vary based on anything which causes clock jitter.

    If you use the same edge then the clock to data relationship will be fixed (will vary with temperature/voltage variation etc... very slightly, but will be deterministic and should match the datasheet) but will not depend on things like video source jitter etc...

    For the moment I would suggest looking at the clock and data pins coming out of the TVP since you should be able to access them easily. This will indicate how much variance is caused by the TVP. Your FPGA tools should then allow you to compensate in order to ensure correct setup-hold times (set_input_delay etc... to account for trace lengths and nominal TVP clock-data skew with clock_uncertainty to compensate for data skew across temperature)

    BR,
    Steve
  • Hi Steve,

    Instead of scoping the 5158 pins (our system is embedded and it is sandwiched between 2 CCAs with a heatsink), we added the capability to adjust the FPGA clock skew dynamically.

    This way we could shift the clock and pin-point the centre of the RX eye.

    At room temp, it was as expected where clocking on the rising edge (opposite of launch) we didn't have a lot of setup margin ~2ns but loads of hold time margin ~5ns.

    As we lowered the temp, the timing shifted slightly but not significantly ~0.4 ns.

    We reset the 5158 at cold until we encountered the timing issue and when the video is failing, the eye has shifted dramatically.  It appears that the clock coming out of the 5158 is inverted.

    This explains why when we set the 5158 to invert its output clock the issue goes away.

    Any thoughts on what could be causing the 5158 output clock to be inverted intermittently upon initialization at cold (below -25C)?

    I was seeing the inversion ~20% of the time.

    With the launch edge changing from falling to rising, it is difficult to set the FPGA skew since we will need to find a mid-point that works with falling & rising edges.

    Thanks,

    Jordan

  • Hmm... interesting.

    I could certainly picture the skew moving as much as a half cycle over temperature, but not randomly inverting. It would be a slow shift as temperature changes, much like you say you see to a small degree.

    Are you able to read back the clock settings to see if this is a register programming issue, i.e. is the clock configuration different between good and bad?

    Do you write to the register that contains the clock inversion during startup? Is it possible that the I2C timing does not have enough margin and writes to the clock control register are corrupt at cold temp? Reading back the clock control register should help check that.

    The launch edge should not invert like that randomly.

    BR,

    Steve

  • Hi Steve,

    Yes, we write to the clock control register (sub address 0xB2) because the output is disabled by default.
    It's default values is 0x20. We write 0x25 during configuration of the chip to enable the OUT_CLK_P (which we use for clocking the data) and to turn on the video output ports.

    We did read this register during our testing at is was always 0x25 as expected even in the modes where it appeared the clock was inverted.

    Thanks,

    Jordan
  • Hmm. I can't think of any other reason why this would be inverted.

    I assume all the reset signals /timings are as required? Can you try holding the device in reset at power up longer?

    The only other place I can think to look is the crystal. It might be that the oscillator is taking longer to stabilize, or that it is unstable at cold temp. We did have one customer many years ago have a high temp issue (not on a TVP product though) and it turned out to be their crystal was actually the root cause. Their symptoms were startup issues but these were at powerup, not after reset like your issue.

    BR,
    Steve
  •  Hi Steve,

    I captured the reset sequence (CH 1 - RESET, CH 2 - I2C SCL, CH3 - 108 MHz output clock, CH4 - Data line) at cold in the attached image.

    I don't show the entire reset pulse, but it was 25 ms length.  No activity on the I2C bus afterwards.

    But, there is a burst on the 108 MHz for ~100us after reset is released before it is disabled by default.  Is this normal?

    Looks like this burst is likely causing our FPGA PLL to have sync issues.  During the fault conditions, the TVP5158 Clock/Data relationship is NOT inverted, so it is our FPGA PLL that is initializing wrong intermittently at cold.

    We added a PLL reset of the FPGA after we have initialized the TVP5158 and the 108 MHz clock is running.  It appears to clean up the issue and we are going to run a weekend loop to confirm.

    Jordan

  • Jordan,
    I don't know if the burst is normal or not unfortunately.

    I would say though that behavior or PLLs around resets can be tricky, although I would have expected the action of reset being low to disable the outputs, but from the scope captures it looks like the output is driven high whilst in reset then goes tri-state some time after the reset is de-asserted.

    Now, in general the behavior of a PLL is not stable until its reference clock source is stable and should be reset after the reference is stable. This is true for the TVP i.e. make sure the crystal is running and stable before releasing reset (which I believe you are doing), but then as you have found with your FPGA, you should not expect the FPGA PLL to behave until its reference is stable (i.e. until you have configured and enabled the TVP clock output). It could be that the FPGA PLL doesn't like the 108MHz burst (possibly triggering a 'fake' lock state) or it could be the slow droop causing metastability going in to the PLL.

    Either way, it sounds like you have found the root cause of your problems :-) This was a tough one.

    BR,
    Steve
  • Thanks again Steve for your help. Just wanted to close up this thread with what our solution ended up being.

    We confirmed that our FPGA's PLL was trying to lock onto the TVP5158's output clock before it had stabilized. This appears to have been made worse at cold where the artifacts were first observed.

    Our fix was to reset the FPGA's PLL once the TVP5158's output clock stabilizes. This has cleared up the issue.
  • Jason,

    Glad you have a reliable solution.

    BR,

    Steve