⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 post.02

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 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 + -