📄 post.02
字号:
/************************************************
* *
* POST.C: Power-up reset routine *
* *
************************************************/
#include <reg51.h>
#include "mosaic.h"
#include "osd.h"
void postPLLInit(void);
void postTDAInit(void);
void postStartSync(void);
#if ENABLE_TCON
void postTCONInit(void);
#endif
unsigned char idata MosaicFlag;
extern unsigned char data DDCStopCount;
extern unsigned int idata ival, ival1;
//
// Register table for POST init
//
unsigned char code postInitTable[] = {
#if MASCOTV_E
1,0x07,
0x0C,
#endif
#if MASCOT_V
6, 0x25,
0xFC,0x00,0x12,0x10, //CR25-28
0x00,0x55, //CR29-2A
11, 0x12, //CR12: ADC
0x3A, 0x30, //R: OFFSET, COARSER, FINE
0x3A, 0x30, //G: OFFSET, COARSER, FINE
0x3A, 0x30, //B: OFFSET, COARSER, FINE
0x43, //CONTROL=00100100: H+ V+ Ip=100(100uA)
0xF2, //VCO=10111010: Z=101(4K) Vco=11(100MHz/V)
0xA0, //DIVIDER: 1344
0x15, //PHASEA
0x00, //PHASEB
2, 0x4E,
0x47, 0x76, //CR4E-4F
#endif
5, 0x2B,
0x0A,0x3F, //DCLK, 65M
0x00,0x80,
0x00, //CR2F
#if MASCOT2_R2
5, 0x20, // Minify
0x00, 0x00, 0x00, 0x00, //CR20-CR23
#if ENABLE_TCON
0x00, //CR24
#else
0xC0, //CR24
#endif
#endif
16, 0x30, // Capture Interface
0x03,
0x00, //CR30-31
0x0F,//0x07, //CR32: -H/-V//2002/1/17 06:47PM
0x00, //CR33
0xA5,0x00,0x1D,0x00, //CR34-37: Capture H/V Start
0xFF,0x03,0xFF,0x02, //CR38-3B: Capture Width/Height
0xFF, //CR3C: Capture FIFO Depth, width/4-1
0x01,0x00,0x05, //CR3D-3F: Clamp
15, 0x40, // Display Interface
0x10, //00 //CR40
0xA8,0x7F,0x82,0x11, //CR41-CR44: Hort
0x26,0xFF,0x23,0x03,0x03,0x06, //CR45-4A: Vert
0x00,0x00,0x00, //CR4B-4D: H/V Zoom
0x05, //CR4E
9, 0x50, // Panel Interface
#if MASCOT_VZ
#if AU_S15
0x86+(USE_GAMMA*8), //CR50: TFT 18-bit double_pixel
#else
0x80+(USE_GAMMA*8), //CR50: TFT 24-bit double_pixel
#endif
#elif (LG_151+LG_151X4+CHIMEI_N141X201_C3+CHIMEI_N141X201_C4)
0x01+(USE_GAMMA*8)), //CR50: TFT 24-bit single_pixel
#elif (HT17E1_200+CHIMEI_M170E1_01+ACER_17_E3+SAMSUNG_170)
0x00+(USE_GAMMA*8), //CR50: TFT 24-bit double_pixel
#elif AU150X2
0x46+(USE_GAMMA*8), //CR50: TFT 18-bit double_pixel,gamma on, dithering on
#elif CPT_CLAA150XA03
0x06+(USE_GAMMA*8), //CR50: TFT 18-bit double_pixel, dithering on
#else
0x02+(USE_GAMMA*8), //CR50: TFT 18-bit double_pixel
#endif
#if (CHIMEI_M141X101+CHIMEI_N141X201_C3+CHIMEI_N141X201_C4)
0x03, //CR51
#else
0x00, //CR51
#endif
0x00,0x00,0x00, //CR52-54: Contrast Adjustment
0x00,0x00,0x00, //CR55-57: Background Color
0x00, //CR58
1, 0x80, // OSD Control
0x00, // CR80
1,0x5f,
#if MASCOTV_E
0x00, // the phase of output clock
#endif
-1 // EOT
};
//
// POST Initialization
//
void postInitMosaic(void)
{
#if DEBUGMSG
printf("POST:\n");
#endif
MosaicFlag = 0;
// TDA Initialization
postTDAInit();
// Program POST init registers
#if DEBUGMSG
printf(" init Mosiac\n");
#endif
RegDataTableOut(postInitTable);
#if ENABLE_TCON
// Init MVz TCON
postTCONInit();
#endif
// Init and start Sync Processor
postStartSync();
}
// POST Philips TDA8752 Initialization
void postTDAInit(void)
{
#if MASCOT_V
extern unsigned char code Mode12Tda[]; //12:48.4KHz/60Hz -/- 65MHz: 1024x768
#if DEBUGMSG
printf(" Use MascotV\n");
#endif
// TDADataTableOut(Mode12Tda);
#elif MRT_VITESSE2
extern unsigned char code Mode12Tda[];//12:48.4KHz/60Hz -/- 65MHz: 1024x768
unsigned char code ADCInitData[] = {
0xFC, 0x00, 0x11, 0x10, 0x00, 0x00 //80-85
};
unsigned char i;
#if DEBUGMSG
printf(" init MRT Vitesse2\n");
#endif
TDADataTableOut(Mode12Tda);
for (i=0; i<sizeof(ADCInitData); i++)
TDAByteOut(i+0x80, ADCInitData[i]);
#endif
}
// POST Start Sync Processor
void postStartSync(void)
{
unsigned char code sync_init0[] = {
0x00, //CR08, disable Sync
VERRORRANGE, //CR09, Vsync error
HERRORRANGE //CR0A, Hsync error
};
unsigned char code sync_init1[] = {
0x00,0x00,0x00, //CR00-02: clear status
0x00,0x36,0x00, //CR03-05: interrupt mask
0x00, //CR06
0x00 //CR07, separate sync
};
#if DEBUGMSG
printf(" sync start\n");
#endif
RegDataOut(0x08, sync_init0, 3);
RegDataOut(0x00, sync_init1, 8);
#if (MASCOT_VZ==MASCOTVZ_A)
RegByteOut(0x07, 0x06); //start Sync process
#elif MASCOTV_P
RegByteOut(0x07, 0x14); //start Sync processor
#elif MASCOTV_D
RegByteOut(0x07, 0x04); //start Sync processor
#else
RegByteOut(0x08, 0x01); //start Sync processor
#endif
}
#if ENABLE_TCON
//
// Init MVz TCON
//
unsigned char code initTCON[] = {
#if AU_S15
#if (MASCOT_VZ>=MASCOTVZ_B)
0X00,0X00,0X00,0X07,0X20,0X02,0X02,0X00, //CR00-07
0X03,0X00,0X00,0X00,0XC0,0X00,0XBC,0X00, //CR08-0F
0X05,0X00,0X00,0X00,0XC0,0X00,0XBC,0X00, //CR10-17
0X04,0X00,0X04,0X00,0XC0,0X00,0XBC,0X00, //CR18-1F
0X00,0X00,0X00,0X07,0X10,0X10,0X71,0X73, //CR20-27
0X01,0X00,0X00,0X07,0X10,0X10,0X71,0X33, //CR28-2F
0X02,0X00,0X00,0X07,0X10,0X10,0X71,0X73, //CR30-37
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, //CR38-3F
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, //CR40-47
0X00,0X00,0X00,0X07,0X20,0X20,0X22,0X20, //CR48-4F
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, //CR50-57
0X00,0X00,0X10,0X03,0X00,0X03,0X00,0X00, //CR58-5F
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07, //CR60-67
0X30,0X34,0X10,0X10,0X84,0X00,0X00,0X00, //CR68-6F
0X14,0X00,0X18,0X20,0X53,0XFD,0X00,0X00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
/*
0x00,0x00,0x00,0x07,0x20,0x02,0x02,0x00, //CR00-07
0x02,0x00,0x00,0x00,0xBE,0x00,0xBC,0x00, //CR08-0F
0x05,0x00,0x00,0x00,0xBE,0x00,0xBC,0x00, //CR10-17
0x02,0x00,0x04,0x00,0xBE,0x00,0xAC,0x00, //CR18-1F
0x00,0x00,0x00,0x07,0x10,0x00,0x71,0x03, //CR20-27
0x01,0x00,0x00,0x07,0x10,0x00,0x71,0x03, //CR28-2F
0x02,0x00,0x00,0x07,0x10,0x00,0x71,0x03, //CR30-37
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //CR38-3F
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //CR40-47
0x00,0x00,0x00,0x07,0x20,0x00,0x22,0x00, //CR48-4F
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //CR50-57
0x00,0x00,0x10,0x03,0x00,0x03,0x00,0x00, //CR58-5F
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, //CR60-67
0x30,0x04,0x10,0x00,0x84,0x00,0x00,0x00, //CR68-6F
0x14,0x00,0x18,0x20,0x53,0xFD,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
*/
/*
// Patch First Line Problem 03/14
0x03,0x00,0x02,0x03,0x20,0x02,0x02,0x00, //CR00-07
0x03,0x00,0x00,0x00,0xBE,0x00,0xBC,0x00, //CR08-0F
0x05,0x00,0x00,0x00,0xBE,0x00,0xBC,0x00, //CR10-17
0x03,0x00,0x04,0x00,0xBE,0x00,0x00,0x00, //CR18-1F
0x06,0x00,0x09,0x03,0x10,0x00,0x71,0x03, //CR20-27
0x07,0x00,0x09,0x03,0x10,0x00,0x71,0x03, //CR28-2F
0x08,0x00,0x09,0x03,0x10,0x00,0x71,0x03, //CR30-37
0x21,0x00,0x26,0x03,0x1B,0x00,0x1B,0x04, //CR38-3F
0x27,0x00,0x26,0x03,0x1B,0x00,0x1B,0x04, //CR40-47
0x06,0x00,0x00,0x03,0x20,0x00,0x22,0x00, //CR48-4F
0x0A,0x00,0x09,0x03,0x18,0x00,0x1D,0x00, //CR50-57
0x05,0x00,0x00,0x03,0x00,0x03,0x27,0x00, //CR58-5F
0x00,0x03,0x7C,0x01,0x06,0x00,0x00,0x03, //CR60-67
0x30,0x04,0x10,0x00,0x84,0x00,0x00,0x00, //CR68-6F
0x14,0x00,0x18,0x20,0x53,0xFD,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
*/
#else
0x1E,0x00,0x26,0x23,0x20,0x22,0x80,0x84, //CR00-07
0x1E,0x00,0x1F,0x00,0xBE,0xB8,0xBC,0x08, //CR08-0F
0x20,0x00,0x21,0x00,0xBE,0xB8,0xBC,0xB8, //CR10-17
0x1E,0x00,0x23,0x00,0xBE,0xB8,0x00,0x00, //CR18-1F
0x21,0x00,0x26,0x23,0x10,0x10,0x71,0x73, //CR20-27
0x22,0x00,0x26,0x23,0x10,0x10,0x71,0x33, //CR28-2F
0x23,0x00,0x26,0x23,0x10,0x10,0x71,0x73, //CR30-37
0x21,0x00,0x26,0x23,0x1B,0x18,0x1B,0x1C, //CR38-3F
0x27,0x00,0x26,0x23,0x1B,0x18,0x1B,0x1C, //CR40-47
0x21,0x00,0x26,0x23,0x1B,0x18,0x1D,0x18, //CR48-4F
0x27,0x00,0x26,0x23,0x18,0x18,0x1D,0x18, //CR50-57
0x20,0x00,0x05,0x03,0x18,0x1C,0x27,0x20, //CR58-5F
0x01,0x00,0x7C,0x79,0x21,0x00,0x26,0x23, //CR60-67
0x30,0x34,0xB0,0xD4,0x00,0x00,0x00,0x00, //CR68-6F
0x14,0x00,0x18,0x20,0x53,0xFD,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
#endif
#elif CPT_S15
// CPT_S15
#if (MASCOT_VZ>=MASCOTVZ_B)
0x00,0x00,0x00,0x07,0xD0,0x03,0x00,0x01, //CR00-07
0x05,0x00,0x00,0x00,0x01,0x01,0x00,0x01, //CR08-0F
0x27,0x00,0x29,0x00,0xC9,0x02,0xC7,0x02, //CR10-17
0x27,0x00,0x2A,0x00,0xC9,0x02,0xC7,0x02, //CR18-1F
0x29,0x00,0x02,0x00,0xC9,0x02,0xC7,0x02, //CR20-27
0x2A,0x00,0x02,0x00,0xC9,0x02,0xC7,0x02, //CR28-2F
0x2B,0x00,0x03,0x00,0xC9,0x02,0xC7,0x02, //CR30-37
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR38-3F
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR40-47
0x00,0x00,0x00,0x07,0x20,0x00,0x22,0x00, //CR48-4F
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR50-57
0x00,0x00,0x10,0x03,0xB0,0x03,0x29,0x00, //CR58-5F
0x03,0x00,0xE0,0x03,0x00,0x00,0x00,0x07, //CR60-67
0x27,0x04,0x14,0x00,0x84,0x00,0x00,0x00, //CR68-6F
0x00,0x00,0x04,0x20,0x51,0x7D,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
/*
0x06,0x00,0x00,0x03,0xD0,0x03,0x00,0x01, //CR00-07
0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x01, //CR08-0F
0x28,0x00,0x29,0x00,0xC9,0x02,0xC7,0x02, //CR10-17
0x28,0x00,0x2A,0x00,0xC9,0x02,0xC7,0x02, //CR18-1F
0x29,0x00,0x02,0x00,0xC9,0x02,0xC7,0x02, //CR20-27
0x2A,0x00,0x02,0x00,0xC9,0x02,0xC7,0x02, //CR28-2F
0x2B,0x00,0x03,0x00,0xC9,0x02,0xC7,0x02, //CR30-37
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR38-3F
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR40-47
0x06,0x00,0xFF,0x02,0x20,0x00,0x22,0x00, //CR48-4F
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR50-57
0x06,0x00,0x00,0x03,0xB0,0x03,0x29,0x00, //CR58-5F
0x03,0x00,0xE0,0x03,0x07,0x00,0xFF,0x02, //CR60-67
0x2C,0x04,0x15,0x00,0x84,0x00,0x00,0x00, //CR68-6F
0x00,0x00,0x04,0x20,0x51,0x7D,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
*/
#else
0x2B,0x00,0x04,0x00,0x5F,0x04,0xAA,0x01, //CR00-07
0x2A,0x00,0x2B,0x00,0x05,0x00,0xFF,0x03, //CR08-0F
0x28,0x00,0x29,0x00,0xc9,0x02,0xc7,0x02, //CR10-17
0x28,0x00,0x2a,0x00,0xc9,0x02,0xc7,0x02, //CR18-1F
0x29,0x00,0x01,0x00,0xc9,0x02,0xc7,0x02, //CR20-27
0x2a,0x00,0x02,0x00,0xc9,0x02,0xc7,0x02, //CR28-2F
0x2b,0x00,0x03,0x00,0xc9,0x02,0xc7,0x02, //CR30-37
0x29,0x00,0x02,0x00,0x1B,0x00,0x1B,0x04, //CR38-3F
0x29,0x00,0x02,0x00,0x1b,0x00,0x1b,0x04, //CR40-47
0x2A,0x00,0x03,0x00,0x1B,0x00,0x1E,0x00, //CR48-4F
0x29,0x00,0x02,0x00,0x1a,0x00,0x1c,0x00, //CR50-57
0x2A,0x00,0x05,0x00,0x5A,0x04,0x29,0x00, //CR58-5F
0x03,0x00,0xe0,0x03,0x2B,0x00,0x04,0x00, //CR60-67
0xA0,0x04,0x15,0x00,0x00,0x00,0x00,0x00, //CR68-6F
0x00,0x00,0x18,0x30,0x51,0x7d,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
#endif
#elif HANNSTAR_S15
0x00,0x00,0x00,0x07,0x50,0x03,0x00,0x01, //CR00-07
0x06,0x00,0x00,0x00,0x20,0x00,0x18,0x00, //CR08-0F
0x03,0x00,0x01,0x00,0x84,0x01,0x82,0x01, //CR10-17
0x06,0x00,0x01,0x00,0x20,0x00,0x18,0x00, //CR18-1F
0x00,0x00,0x00,0x07,0x20,0x00,0x50,0x03, //CR20-27
0x01,0x00,0x00,0x07,0x20,0x00,0x50,0x03, //CR28-2F
0x02,0x00,0x00,0x07,0x20,0x00,0x50,0x03, //CR30-37
0x05,0x00,0x00,0x03,0x1C,0x00,0x1C,0x04, //CR38-3F
0x05,0x00,0x00,0x03,0x1C,0x00,0x1C,0x04, //CR40-47
0x00,0x00,0x00,0x07,0x20,0x00,0x22,0x00, //CR48-4F
0x06,0x00,0xFF,0x02,0x1B,0x00,0x1D,0x00, //CR50-57
0x00,0x00,0x10,0x03,0x1F,0x04,0x27,0x00, //CR58-5F
0x00,0x03,0x7C,0x01,0x00,0x00,0x00,0x07, //CR60-67
0x21,0x04,0x1D,0x00,0x84,0x00,0x00,0x00, //CR68-6F
0x10,0x00,0x1C,0x20,0x73,0xFC,0x00,0x00, //CR70-77
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
/*
0x04,0x00,0x04,0x03,0x50,0x03,0x00,0x01,
0x06,0x00,0x00,0x00,0x20,0x00,0x18,0x00,
0x03,0x00,0x01,0x00,0x84,0x01,0x82,0x01,
0x06,0x00,0x01,0x00,0x20,0x00,0x18,0x00,
0x04,0x00,0x03,0x03,0x20,0x00,0x50,0x03,
0x05,0x00,0x04,0x03,0x20,0x00,0x50,0x03,
0x06,0x00,0x05,0x03,0x20,0x00,0x50,0x03,
0x05,0x00,0x00,0x03,0x1C,0x00,0x1C,0x04,
0x05,0x00,0x00,0x03,0x1C,0x00,0x1C,0x04,
0x06,0x00,0xFF,0x02,0x20,0x00,0x22,0x00,
0x06,0x00,0xFF,0x02,0x1B,0x00,0x1D,0x00,
0x05,0x00,0x02,0x03,0x1F,0x04,0x27,0x00,
0x00,0x03,0x7C,0x01,0x06,0x00,0xFF,0x02,
0x21,0x04,0x1D,0x00,0x84,0x00,0x00,0x00,
0x10,0x00,0x1C,0x20,0x73,0xFC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //CR78-7F
*/
#else
.error No TCON Table
#endif
};
void postTCONInit()
{
#if DEBUGMSG
printf(" init TCON\n");
#endif
RegByteOut(0x24, 0xC0); // turn off tcon
RegByteOut(0xC0, 0x20); // select TCON regs
RegDataOut(0x00, initTCON, sizeof(initTCON));
RegByteOut(0xC0, 0x00); // de-select TCON regs
RegByteOut(0x5F, 0x00);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -