📄 hx8824.c
字号:
I2CWriteByte(HX8824_ADDR, 0x97, 0x01);
I2CWriteByte(HX8824_ADDR, 0x98, 0x07);
I2CWriteByte(HX8824_ADDR, 0x99, 0x01);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x03);
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x0E);
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0xF0);
I2CWriteByte(HX8824_ADDR, 0x9F, 0x00);
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x3C); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x1A); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x0A); // N
I2CWriteByte(HX8824_ADDR, 0xD3, 0x67); // M: 360 -1
I2CWriteByte(HX8824_ADDR, 0xD4, 0x01); // M
//I2CWriteByte(SAA7111_ADDR, 0x08, 0xC8); // NTSC
//I2CWriteByte(HX8824_ADDR, 0x12, 0x9B);
//I2CWriteByte(HX8824_ADDR, 0x13, 0x00);
// I2CWriteByte(PLL_ADDR, 0x0B, 0x13);
// I2CWriteByte(PLL_ADDR, 0x0B, 0x13); // CLKM = 14.49
// I2CWriteByte(PLL_ADDR, 0x14, 0x2D);
// I2CWriteByte(PLL_ADDR, 0x15, 0x18);
// I2CWriteByte(PLL_ADDR, 0x16, 0x62);
// I2CWriteByte(PLL_ADDR, 0x09, 0x32); // CLKO = 6.44
// I2CWriteByte(PLL_ADDR, 0x11, 0x26);
// I2CWriteByte(PLL_ADDR, 0x12, 0x15);
// I2CWriteByte(PLL_ADDR, 0x13, 0x66);
#endif
//****************************************************************************************
#if mode7228_8060
bVideo = 1;
S1 = 0;
S2 = 1;
Mode = 8;
I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
I2CWriteByte(HX8824_ADDR, 0x02, 0x20);
I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
I2CWriteByte(HX8824_ADDR, 0x10, 0x1C); // input format select
//I2CWriteByte(HX8824_ADDR, 0x11, 0x0C); // 656
I2CWriteByte(HX8824_ADDR, 0x11, 0x0B); //601
I2CWriteByte(HX8824_ADDR, 0x20, 0xAE);
I2CWriteByte(HX8824_ADDR, 0x21, 0x07);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
I2CWriteByte(HX8824_ADDR, 0x20, 0x66);
I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
I2CWriteByte(HX8824_ADDR, 0xA0, 0x00);
I2CWriteByte(HX8824_ADDR, 0xA1, 0x2A);
I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
I2CWriteByte(HX8824_ADDR, 0x90, 0xF8);
I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
I2CWriteByte(HX8824_ADDR, 0x92, 0x48);
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0x90);
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
I2CWriteByte(HX8824_ADDR, 0x98, 0x92);
I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x13);
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x26);
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0x58);
I2CWriteByte(HX8824_ADDR, 0x9F, 0x02);
//I2CWriteByte(SAA7111_ADDR, 0x08, 0x88);
//I2CWriteByte(HX8824_ADDR, 0x14, 0x00);
//I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
//I2CWriteByte(HX8824_ADDR, 0x16, 0x00);
//I2CWriteByte(HX8824_ADDR, 0x17, 0x00);
//I2CWriteByte(HX8824_ADDR, 0x19, 0x01);
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x0B); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x0C); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x09); // N
I2CWriteByte(HX8824_ADDR, 0xD3, 0x4C); // M: 309 -1
I2CWriteByte(HX8824_ADDR, 0xD4, 0x01); // M
#endif
//****************************************************************************************
#if mode7228_8048
bVideo = 1;
S1 = 0;
S2 = 1;
Mode = 9;
I2CWriteByte(HX8824_ADDR, 0x10, 0x1C); // USE EXTERNAL SYNC AND DE
I2CWriteByte(HX8824_ADDR, 0x11, 0x0F); // 656
//I2CWriteByte(HX8824_ADDR, 0x11, 0x0B); //601
I2CWriteByte(HX8824_ADDR, 0x20, 0x86);
I2CWriteByte(HX8824_ADDR, 0x21, 0x09);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
I2CWriteByte(HX8824_ADDR, 0x20, 0x65);
I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
I2CWriteByte(HX8824_ADDR, 0x26, 0x07);
//I2CWriteByte(HX8824_ADDR, 0x27, 0x0A); // DELAY
I2CWriteByte(HX8824_ADDR, 0xA0, 0xC4); //f4
I2CWriteByte(HX8824_ADDR, 0xA1, 0x1C); //1e
I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
I2CWriteByte(HX8824_ADDR, 0x00, 0xD0); // 720
I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
I2CWriteByte(HX8824_ADDR, 0x02, 0x20); // 288
I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
/* // for PVI
I2CWriteByte(HX8824_ADDR, 0x90, 0x25); //
I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
I2CWriteByte(HX8824_ADDR, 0x92, 0x3F);
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0x7A);
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
I2CWriteByte(HX8824_ADDR, 0x96, 0x20); //
I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
I2CWriteByte(HX8824_ADDR, 0x98, 0x0D);
I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x03);
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x1F); //0x20
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0);
I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
*/
// for 8819
I2CWriteByte(HX8824_ADDR, 0x90, 0xFB); // 1003
I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
I2CWriteByte(HX8824_ADDR, 0x92, 0x30); // 48
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0x58); // 88
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
I2CWriteByte(HX8824_ADDR, 0x96, 0x20); // 800
I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
I2CWriteByte(HX8824_ADDR, 0x98, 0x09); // 521
I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x03); // 3
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x1e); // 29
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0); // 480
I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
//I2CWriteByte(SAA7111_ADDR, 0x08, 0x88); // SAA7111 PAL OUTPUT
// I2CWriteByte(HX8824_ADDR, 0x12, 0xBB);
// I2CWriteByte(HX8824_ADDR, 0x13, 0x00);
// I2CWriteByte(HX8824_ADDR, 0x14, 0x15);
// I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
// I2CWriteByte(HX8824_ADDR, 0x16, 0x16);
// I2CWriteByte(HX8824_ADDR, 0x17, 0x00);
// I2CWriteByte(HX8824_ADDR, 0x19, 0x01);
#if IN_PLL
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x05); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x06); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x09); // N
I2CWriteByte(HX8824_ADDR, 0xD3, 0x85); // M: 333 -1
I2CWriteByte(HX8824_ADDR, 0xD4, 0x00); // M
#endif
#if EX_PLL
I2CWriteByte(PLL_ADDR, 0x0B, 0x0f);
I2CWriteByte(PLL_ADDR, 0x14, 0x1e);
I2CWriteByte(PLL_ADDR, 0x15, 0xf0);
I2CWriteByte(PLL_ADDR, 0x16, 0x5d);
I2CWriteByte(PLL_ADDR, 0x09, 0x0e);
I2CWriteByte(PLL_ADDR, 0x11, 0x06);
I2CWriteByte(PLL_ADDR, 0x12, 0x7e);
I2CWriteByte(PLL_ADDR, 0x13, 0x4c);
#endif
#endif
//****************************************************************************************
#if mode7228_6448
bVideo = 1;
S1 = 0;
S2 = 1;
Mode = 10;
I2CWriteByte(HX8824_ADDR, 0x10, 0x1C); // USE EXTERNAL SYNC AND DE
//I2CWriteByte(HX8824_ADDR, 0x11, 0x0C); // 656
I2CWriteByte(HX8824_ADDR, 0x11, 0x0B); //601
I2CWriteByte(HX8824_ADDR, 0x20, 0x99);
I2CWriteByte(HX8824_ADDR, 0x21, 0x09);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
I2CWriteByte(HX8824_ADDR, 0x21, 0x12);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
//I2CWriteByte(HX8824_ADDR,(0x27, 0x0A); // DELAY
I2CWriteByte(HX8824_ADDR, 0xA0, 0x73);
I2CWriteByte(HX8824_ADDR, 0xA1, 0x04);
I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
I2CWriteByte(HX8824_ADDR, 0x02, 0x20);
I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
I2CWriteByte(HX8824_ADDR, 0x90, 0x20);
I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
I2CWriteByte(HX8824_ADDR, 0x92, 0x60);
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0x90);
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
I2CWriteByte(HX8824_ADDR, 0x96, 0x80);
I2CWriteByte(HX8824_ADDR, 0x97, 0x02);
I2CWriteByte(HX8824_ADDR, 0x98, 0x0D);
I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x23);
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0);
I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
//I2CWriteByte(SAA7111_ADDR, 0x08, 0x88); // SAA7111 PAL OUTPUT
I2CWriteByte(HX8824_ADDR, 0x12, 0xBB);
I2CWriteByte(HX8824_ADDR, 0x13, 0x00);
//I2CWriteByte(HX8824_ADDR, 0x14, 0x15);
//I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
//I2CWriteByte(HX8824_ADDR, 0x16, 0x16);
//I2CWriteByte(HX8824_ADDR, 0x17, 0x00);
I2CWriteByte(HX8824_ADDR, 0x19, 0x01);
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x10); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x0E); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x09); // N
I2CWriteByte(HX8824_ADDR, 0xD3, 0x26); // M: 295 -1
I2CWriteByte(HX8824_ADDR, 0xD4, 0x01); // M
#endif
//****************************************************************************************
#if mode7228_3224
bVideo = 1;
S1 = 0;
S2 = 1;
Mode = 11;
I2CWriteByte(HX8824_ADDR, 0x10, 0x1C); // input format select
I2CWriteByte(HX8824_ADDR, 0x11, 0x0F); // 656
//I2CWriteByte(HX8824_ADDR, 0x11, 0x0B); //601
I2CWriteByte(HX8824_ADDR, 0x20, 0x36);
I2CWriteByte(HX8824_ADDR, 0x21, 0x13);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
I2CWriteByte(HX8824_ADDR, 0x20, 0x10);
I2CWriteByte(HX8824_ADDR, 0x21, 0x24);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
I2CWriteByte(HX8824_ADDR, 0x29, 0x01); //delay
I2CWriteByte(HX8824_ADDR, 0xA0, 0x54); //C5
I2CWriteByte(HX8824_ADDR, 0xA1, 0x01); //04
I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
I2CWriteByte(HX8824_ADDR, 0x00, 0xD0); // 720
I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
I2CWriteByte(HX8824_ADDR, 0x02, 0x20); // 288
I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
I2CWriteByte(HX8824_ADDR, 0x90, 0x5E); //
I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
I2CWriteByte(HX8824_ADDR, 0x92, 0x3F); //
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0x7A); // 68
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -