This commit is contained in:
Piotr Dobrowolski 2018-06-25 21:56:55 +02:00
parent 9e50ae99ba
commit 9d2cb3ad5e

View File

@ -183,9 +183,35 @@ uint8_t matrixInit() {
i2cWrite(0x64, 0x2d, 0x82);
i2cWrite(0x64, 0x40, 0x00);
i2cWrite(0x64, 0x41, 0x00);
i2cWrite(0x64, 0x42, 0x3f);
i2cWrite(0x64, 0x43, 0x01);
i2cWrite(0x64, 0x44, 0x43);
i2cWrite(0x64, 0x45, 0x14);
i2cWrite(0x64, 0x46, 0xe4);
i2cWrite(0x64, 0x47, 0x80);
i2cWrite(0x64, 0x48, 0x04);
i2cWrite(0x64, 0x49, 0b10110100);
i2cWrite(0x64, 0x4a, 0xff);
//i2cWrite(0x64, 0x49, 0xc0);
i2cWrite(0x64, 0x4b, 0x06);
i2cWrite(0x64, 0x4c, 0x76);
i2cWrite(0x64, 0x4b, 0x24);
uint8_t err;
uint8_t physettings[4] = {0x4c, 0x02, 0x50, 0x00};
if ((err = twi_writeTo(0x64, physettings, 4, true)) != 0) {
Serial.printf("rxphy write failed: %d\r\n", err);
}
physettings[0] = 0x4d;
physettings[1] = 0x16;
physettings[2] = 0x21;
if ((err = twi_writeTo(0x64, physettings, 3, true)) != 0) {
Serial.printf("txphy write failed: %d\r\n", err);
}
//i2cWrite(0x64, 0x4c, 0x76);
/*debugf("reg49: %02x", get_reg49_value());
@ -205,8 +231,8 @@ uint8_t matrixInit() {
//i2cWrite(0x64, 0x49, 0xc0);
//i2cWrite(0x64, 0x4a, 0b11000000);
i2cWrite(0x65, 0x0f, 0x10);
i2cWrite(0x64, 0x4a, 0b11101111);
//i2cWrite(0x65, 0x0f, 0x10);
//i2cWrite(0x64, 0x4a, 0b11101111);
}
void i2cDump(uint8_t addr) {
@ -242,7 +268,7 @@ void init()
matrixInit();
procTimer.initializeMs(3000, *[]() {
procTimer.initializeMs(500, *[]() {
Serial.println(millis());
Serial.println("Hello!");
debugf(" int: %02x %02x %02x", i2cRead(0x64, 0x29, 3), Wire.read(), Wire.read());
@ -263,6 +289,8 @@ void init()
debugf("ctrl11: %02x", i2cRead(0x64, 0x4b));
debugf("rxphy: %02x %02x %02x", i2cRead(0x64, 0x4c, 3), Wire.read(), Wire.read());
debugf("txphy: %02x %02x", i2cRead(0x64, 0x4d, 2), Wire.read());
//i2cDump(0x64);
/*setEDID(0, edidbuf);
@ -271,19 +299,58 @@ void init()
setEDID(3, edidbuf);*/
Serial.println("====\n\n0x65 (0):");
//Serial.println("====\n\n0x65 (0):");
//select_output(0);
//i2cDump(0x65);
for (int port = 0; port < 4; port++) {
Serial.printf("RX Port %d: ", port);
i2cWrite(0x65, 0x07, port);
uint8_t status = i2cRead(0x65, 0x07);
if (status & 0x80) Serial.printf("online ");
if (status & 0x40) Serial.printf("de ");
if (status & 0x20) Serial.printf("hdmi ");
if (status & 0x10) Serial.printf("enc ");
Serial.printf("%02x ", i2cRead(0x65, 0x07));
Serial.printf("%02x ", i2cRead(0x65, 0x09));
Serial.printf("%02x \r\n", i2cRead(0x65, 0x0f));
Serial.println("====\n\n0x65 (1):");
uint8_t status2 = i2cRead(0x65, 0x08);
if (status2 & 0x40) Serial.printf("vsync ");
Serial.printf("[%02x ", i2cRead(0x65, 0x07));
Serial.printf("%02x ", i2cRead(0x65, 0x08));
Serial.printf("%02x ", i2cRead(0x65, 0x09));
Serial.printf("%02x ", i2cRead(0x65, 0x0a));
Serial.printf("%02x ", i2cRead(0x65, 0x0e));
Serial.printf("%02x] \r\n", i2cRead(0x65, 0x0f));
}
for (int port = 0; port < 2; port++) {
Serial.printf("TX Port %d: ", port);
i2cWrite(0x65, 0x07, port << 2);
uint8_t status = i2cRead(0x65, 0x08);
if (status & 0x80) Serial.printf("mute ");
if (status & 0x02) Serial.printf("enc_opt ");
uint8_t status3 = i2cRead(0x65, 0x09);
if (status3 & 0x04) Serial.printf("rsen ");
uint8_t status4 = i2cRead(0x65, 0x0f);
if (status4 & 0x01) Serial.printf("enc ");
if (status4 & 0x02) Serial.printf("ri_rdy ");
if (status4 & 0x10) Serial.printf("rptr ");
Serial.printf("[%02x ", i2cRead(0x65, 0x07));
Serial.printf("%02x ", i2cRead(0x65, 0x08));
Serial.printf("%02x ", i2cRead(0x65, 0x09));
Serial.printf("%02x ", i2cRead(0x65, 0x0a));
Serial.printf("%02x ", i2cRead(0x65, 0x0e));
Serial.printf("%02x]\r\n", i2cRead(0x65, 0x0f));
}
//Serial.println("====\n\n0x65 (1):");
//select_output(1);
//i2cDump(0x65);
Serial.printf("%02x ", i2cRead(0x65, 0x07));
Serial.printf("%02x ", i2cRead(0x65, 0x09));
Serial.printf("%02x \r\n", i2cRead(0x65, 0x0f));
//Serial.printf("%02x ", i2cRead(0x65, 0x07));
//Serial.printf("%02x ", i2cRead(0x65, 0x09));
//Serial.printf("%02x \r\n", i2cRead(0x65, 0x0f));
}).start();
}