📄 tmbslsaa7104local.h
字号:
{0x61, 0x15}, /* Standard Control */ {0x62, 0x3f}, /* Burst Amplitude */ {0x63, 0x1f}, /* Subcarrier Frequency, Byte 0 */ {0x64, 0x7c}, /* Subcarrier Frequency, Byte 1 */ {0x65, 0xf0}, /* Subcarrier Frequency, Byte 2 */ {0x66, 0x21}, /* Subcarrier Frequency, Byte 3 */ {0x6C, 0x00}, /* Horizontal Trigger (LSB's) */ {0x6D, 0x00}, /* Horizontal Trigger (MSB's) + Vtrig */ {0x6E, 0x80}, /* Reset when changing Subcarrier frequency */ {0x70, 0xff}, // Active display window start {0x71, 0x9f}, // Active display window end {0x72, 0x60}, // Active display window MSB start/end {0x7A, 0x13}, /* First Active Line don't care if 0x6E is 0x80 */ {0x7B, 0x05}, /* Last Active Line don't care if 0x6E is 0x80 */ {0x7C, 0x40}, /* (MSB's), don't care if 0x6E is 0x80 */ {0x98, 0xb3}, //HLEN lsbs {0x99, 0x06} //HLEN msbs
};static const subaddInfo_t saa7104_ntsc_J[] = { {0x28, 0x19}, /* BS */ {0x29, 0x1d}, /* BE */ {0x5B, 0x7d}, /* Gain-U */ {0x5C, 0xaf}, /* Gain-V */ {0x5D, 0x23}, /* Gain-U MSB, Black Level */ {0x5E, 0x2e}, /* Gain-V MSB, Blanking Level */ {0x5F, 0x6e}, /* Gain-V MSB, Blanking Level in Vertical */ {0x61, 0x01}, /* Standard Control */ {0x62, 0x43}, /* Burst Amplitude */};
#if 0static const subaddInfo_t saa7104_rgb_pal[] = { {0x5B, 0x7D}, /* Gain-U */ {0x5C, 0xAF}, /* Gain-V */ {0x5D, 0x2D}, /* Gain-U MSB, Black Level */ {0x5E, 0x3F}, /* Gain-V MSB, Blanking Level */ {0x5F, 0x3F}, /* Gain-V MSB, Blanking Level in Vertical */ {0x61, 0x16}, /* Standard Control */ {0x62, 0x4b}, /* Burst Amplitude */ {0x63, 0xCB}, /* Subcarrier Frequency, Byte 0 */ {0x64, 0x8A}, /* Subcarrier Frequency, Byte 1 */ {0x65, 0x09}, /* Subcarrier Frequency, Byte 2 */ {0x66, 0x2A}, /* Subcarrier Frequency, Byte 3 */ {0x6B, 0x1b}, /* FS on RCV1 falling, Htrig on RCV2 falling */ {0x6C, 0x02}, /* Horizontal Trigger (LSB's) */ {0x6D, 0x24}, /* Horizontal Trigger (MSB's) + Vtrig */ {0x6E, 0x80}, /* Reset when changing Subcarrier frequency */ {0x70, 0x89}, /* Begin RCV2 output */ {0x71, 0xff}, /* End RCV2 output */ {0x72, 0x00}, /* MSBs RCV2 output */ {0x7A, 0x16}, /* First Active Line don't care if 0x6E is 0x80 */ {0x7B, 0x36}, /* Last Active Line don't care if 0x6E is 0x80 */ {0x7C, 0x40}, /* (MSB's), don't care if 0x6E is 0x80 */};
static const subaddInfo_t saa7104_digital[] = { {0x28, 0x19}, /* BS */ {0x29, 0x1d}, /* BE */ {0x5A, 0x88}, /* CHPS */ {0x5B, 0x76}, /* Gain-U */ {0x5C, 0xb1}, /* Gain-V */ {0x5D, 0x2D}, /* Gain-U MSB, Black Level */ {0x5E, 0x2e}, /* Gain-V MSB, Blanking Level */ {0x5F, 0x2e}, /* Gain-V MSB, Blanking Level in Vertical */ {0x61, 0x11}, /* Standard Control */ {0x62, 0x3f}, /* Burst Amplitude */ {0x63, 0x1f}, /* Subcarrier Frequency, Byte 0 */ {0x64, 0x7c}, /* Subcarrier Frequency, Byte 1 */ {0x65, 0xf0}, /* Subcarrier Frequency, Byte 2 */ {0x66, 0x21}, /* Subcarrier Frequency, Byte 3 */ {0x6C, 0x00}, /* Horizontal Trigger (LSB's) */ {0x6D, 0x00}, /* Horizontal Trigger (MSB's) + Vtrig */ {0x6E, 0x90}, /* Reset when changing Subcarrier frequency */ {0x7A, 0x13}, /* First Active Line don't care if 0x6E is 0x80 */ {0x7B, 0x05}, /* Last Active Line don't care if 0x6E is 0x80 */ {0x7C, 0x40}, /* (MSB's), don't care if 0x6E is 0x80 *///new {0x96, 0x30} };
#endifstatic const subaddInfo_t saa7104_hdSync[] ={ { 0x16 , 0x09 }, { 0x17 , 0x1B }, { 0x18 , 0x1B }, { 0x19 , 0x1F }, { 0x1A , 0x20 }, { 0x1B , 0x07 }, { 0x2D , 0x08 }, { 0x38 , 0x1A }, { 0x39 , 0x1A }, { 0x3A , 0x00 }, { 0x54 , 0x01 }, { 0x61 , 0x11 }, { 0x81 , 0x00 }, { 0x82 , 0x00 }, { 0x83 , 0x58 }, { 0x84 , 0x15 }, { 0x85 , 0x88 }, { 0x96 , 0x20/*0x21*/ },// { 0x97 , 0x20 }, { 0x98 , 0xFF }, { 0x99 , 0x0F }, { 0xD4 , 0x02 }, { 0xD5 , 0x00 }, { 0xD6 , 0x00 }, { 0xD7 , 0x00 }, { 0xD8 , 0x01 }, { 0xD9 , 0x00 }, { 0xDA , 0x01 }, { 0xDB , 0x00 }, { 0xDC , 0x04 }};/******************************************************************** * 720x480x60p: 480P * ********************************************************************/#if 1// APPNOTE Settingsstatic const UInt8 d0_720x480x60p[] = { 00, 0x06, 0x10, //0x08, 0x30, // with MV 0x08, 0x20, // without MV 0xff, 0x21, 0x00, 0x00};static const UInt8 d1_720x480x60p[] = { 00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x32, 0x33, 0x43, 0x00}; static const UInt8 d2_720x480x60p[] = { 00, 0x3e, 0x00, 0xdb, 0x12, 0x3e, 0x40, 0x00, 0x00, 0x3e, 0x30, 0x38, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x60, 0x27, 0x50, 0x11, 0x20, 0x00, 0x00, 0x81, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x30, 0x1a, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};static const UInt8 d3_720x480x60p[] = { 00, 0x80, 0x03, 0x80, 0x02, 0xcc, 0x00, 0x80, 0x01, 0xcc, 0x02, 0x64, 0x00, 0x80, 0x00};static const UInt8 d4_720x480x60p[] = { 0x02, 0x04, 0x00, 0x00};static const UInt8 d8_720x480x60p[] = { 0x1e, 0x00, 0x00, 0x00};#elsestatic const UInt8 d0_720x480x60p[] = { 00, 0x06, 0x10, //6 lines of type 1 0x08, 0x20, //8 lines of type 2 0x0a, 0x40, // 10 lines border 0xeb, 0x21, //491 lines of type 2 0x0a, 0x40, // 10 lines border 0x00, 0x00, // end, wrap around};static const UInt8 d1_720x480x60p[] = { 00, 0x01, 0x00, 0x00, 0x00, //type 1 lines use pattern 1 0x52, 0x00, 0x00, 0x00, //type 2 lines use pattern 2-5 0x32, 0x33, 0x43, 0x00, //type 3 lines use pattern 2-3-3-3-3-4 0x62, 0x00, 0x00, 0x00, //type 2 lines use pattern 2-6}; static const UInt8 d2_720x480x60p[] = { 00, 0x3e, 0x80, 0xdb, 0x92, 0x3e, 0xc0, 0x00, 0x00, //pattern 1, vertical sync line 0x3e, 0xb0, 0x38, 0xa0, 0x00, 0x00, 0x00, 0x00, //pattern 2 hor.sync and back porch (63+57 clocks) 0x1d, 0xe0, 0x27, 0xd0, 0x11, 0xa0, 0x00, 0x00, //pattern 3, macrovision line AGC sequence HS OFF 0x81, 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //pattern 4, AGC to Sync, 387 clocks val 2 0x2d, 0xe0, 0x7f, 0x22, 0x2d, 0xe0, 0x10, 0x20, //pattern 5, regular line 46 cl. val 6, 640 cl. val 2, 46 cl. val 6, 16 cl val 2 0xeb, 0xe2, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, //pattern 6, border line 732 clocks val 6, 16 clocks val 2 };static const UInt8 d3_720x480x60p[] = { 00, 0x80, 0x03, // value 0 0x80, 0x02, // value 1 0xcc, 0x00, // value 2 0x80, 0x01, // value 3 0xcc, 0x02, // value 4 0x64, 0x00, // value 5 0xea, 0x00, // value 6 (grey)};static const UInt8 d4_720x480x60p[] = { 0x02, 0x00, 0x10, 0x00};static const UInt8 d8_720x480x60p[] = { 0x1e, 0x00, 0x01, 0x00};#endif/******************************************************************** * 1280x720x60p: 720P * ********************************************************************/#if 1// APPNOTE Settingsstatic const UInt8 d0_1280x720x60p[] = { 00, 0x05, 0x10, 0xe9, 0x22, 0x00, 0x00, 0x00, 0x00,};static const UInt8 d1_1280x720x60p[] = { 00, 0x21, 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
static const UInt8 d2_1280x720x60p[] =
{
00,
0x27, 0x00, 0x27, 0x50, 0x00, 0x00, 0x00, 0x00,
0xdb, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x13, 0xff, 0x10, 0x45, 0x20, 0x00, 0x00,
0x27, 0x30, 0x27, 0x50, 0x00, 0x00, 0x00, 0x00,
0xff, 0x23, 0x21, 0x22, 0x00, 0x00, 0x00, 0x00
};
static const UInt8 d3_1280x720x60p[] = { 00, 0x80, 0x03, 0x80, 0x00, 0xcc, 0x00, 0x80, 0x01, 0xcc, 0x00, 0x0a, 0x00, 0x00, 0x00};static const UInt8 d4_1280x720x60p[] = { //0x01, 0x04, 0x0e, 0x00 0x02, 0x00, 0x10, 0x00 //from 7109 }; static const UInt8 d8_1280x720x60p[] = { //0x2f, 0x00, 0x00, 0x00 0x00, 0x00, 0x0c, 0x00 //from 7109 };#elsestatic const UInt8 d0_1280x720x60p[] = { 00, 0x05, 0x10, // 5 lines of type 1 (vsync) 0x14, 0x20, // 20 lines of type 2 (blank) 0x14, 0x30, // 20 lines of type 3 (border) 0xa8, 0x42, // 680 lines of type 4 (video) 0x14, 0x30, // 20 lines of type 3 (border) 0x05, 0x20, // 5 lines of type 2 (blank) 0x00, 0x00, // end, wrap around};static const UInt8 d1_1280x720x60p[] = { 00, 0x21, 0x00, 0x00, 0x00, //type 1 lines use pattern 1,2 0x43, 0x00, 0x00, 0x00, //type 2 lines use pattern 3,4 0x53, 0x00, 0x00, 0x00, //type 3 lines use pattern 3,5 0x63, 0x00, 0x00, 0x00, //type 4 lines use pattern 3,6}; static const UInt8 d2_1280x720x60p[] = { 00, 0x45, 0x20, 0x27, 0x00, 0x27, 0x50, 0xdb, 0x20, //pattern 1, front porch,hsync and back porch (vsync),370 clocks 0xff, 0x13, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, //pattern 2, sync level (vsync) 1280 clocks 0x45, 0x20, 0x27, 0x30, 0x27, 0x50, 0xdb, 0x20, //pattern 3, front porch, hsync and back porch (hsync), 370 clocks 0xff, 0x23, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, //pattern 4, blank, 1280 clocks 0xff, 0xe3, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, //pattern 5, grey video, 1280 clocks 0x63, 0xe0, 0xff, 0x23, 0x37, 0x20, 0x63, 0xe0, //pattern 6, video line with border, 1280 clocks};static const UInt8 d3_1280x720x60p[] = { 00, 0x80, 0x03, // value 0 vertical sync and horizontal sync low 0x80, 0x00, // value 1 sync low level 0xcc, 0x00, // value 2 black level 0x8a, 0x01, // value 3 horizontal sync low 0xcc, 0x00, // value 4 blank level 0x0e, 0x00, // value 5 sync high 0xea, 0x00, // value 6 (grey)};static const UInt8 d4_1280x720x60p[] = { 0x05, 0x04, 0x01, 0x00}; static const UInt8 d8_1280x720x60p[] = { 0x17, 0x00, 0x02, 0x00};#endif/******************************************************************** * 1920x1080x60i: 1080i * ********************************************************************/// APPNOTE Settingsstatic const UInt8 d0_1920x1080x60i[] = { 00, 0x05, 0x20, 0x01, 0x40, 0x0e, 0x60, 0x1c, 0x12, 0x02, 0x60, 0x01, 0x50, 0x04, 0x20, 0x01, 0x30, 0x0f, 0x60, 0x1c, 0x12, 0x02, 0x60, 0x00, 0x00};static const UInt8 d1_1920x1080x60i[] = { 0x00, 0x34, 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x24, 0x14, 0x00, 0x00, 0x14, 0x14, 0x00, 0x00, 0x14, 0x24, 0x00, 0x00,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -