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

📄 mst037k_d01_gpio.c

📁 mstar 776 开发的车载dvd
💻 C
字号:



#include "mreg51.h"
#include "sysinfo.h"
#include "hwreg.h"
#include "drvuart.h"
#include "drvmiu.h"
#include "drvsys.h"
#include "Analog_Reg.h"
#include "drvGlobal.h"
#include "drvISR.h"
#include "drviic.h"

#include <stdio.h>

#include "DrvGpio.h"

//---------------------------------------------------------------------
#define IR_PORT_SEL                 (BIT2|BIT3)  //IR_USE_PAD_IRIN2/INT_USE_PAD_INT2
#define IRIN2_INT2_IS_GPIO          (BIT0|BIT1)
#define IRIN_INT_IS_GPIO            (BIT6|BIT7)

///---------------------------------------------------------------------
///	Mstar  Demo PCB: MST037K_D01A
/// initial gpio0 for RGB/YPbPr source switch
/// default set to "0" : RGB input
///---------------------------------------------------------------------
void Iniital_USB_OCD_N( void )    //gpio_0  set to output
{
        XBYTE[REG_MUX_CONFIG_3] &= ~(SECOND_UART_MODE); //UART1 not enable
        XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE);        //XBYTE[0x1ea1] &=0xe7;   //disable CEC

#ifndef MOSES   // kevin c
        XBYTE[REG_P1_ENABLE] &=~(BIT0); // 8051 port 1
		//XBYTE[REG_GPIO_OUT_LOW] = ~BIT0;  //output  0
        XBYTE[REG_GPIO_OE_0] |= BIT0;		   //ASSIGN AS OUTPUT
#endif
}

//---------------------------------------------------------------------
//---------------------------------------------------------------------
void InitialSaturn2_Pin134 (void )	  //pin 134 RGB/YPbPr
{
     XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE);
     #ifndef MOSES  // kevin d
     XBYTE[REG_MUX_CONFIG_4]  &= (~FCIE_CONFIG) ;	//commaon setting with FCIE_GPIO
     XBYTE[REG_MUX_FUNC_SEL3]|=FLHWE_IS_GPIO;
     #endif

	 Switch_YPbPr1();  					//default connect to RGB
     #ifndef MOSES  // kevin d
     XBYTE[REG_GPIO_OE_1] &=(~BIT7);    //gpio15 is output
     #endif

}
//---------------------------------------------------------------------
///In MST37K_D01A demo set(2166)
///Remote_control IR connect to IR2
//pin 178/179
//---------------------------------------------------------------------
static void Initial_IR_Port( void )
{
    XBYTE[REG_MUX_CONFIG_2] |= IR_PORT_SEL;

    //XBYTE[REG_MUX_FUNC_SEL2]=(XBYTE[REG_MUX_FUNC_SEL2] & 0x3f )|IRIN_INT_IS_GPIO;
#ifndef MOSES   // kevin d
    XBYTE[REG_MUX_FUNC_SEL3] &= (~IRIN2_INT2_IS_GPIO);
    //XBYTE[REG_GPIO_OE_0] &= (~ (BIT4|BIT3) );
    XBYTE[REG_GPIO_OE_0] |=  (BIT4|BIT3) ;
#endif
}


//---------------------------------------------------------------------
///In MST37K_D01A demo set(2166)
///GPIO_2
//pin 207/208 PAD_LVSYNC2/GPIO_2 to MUTE_S
//---------------------------------------------------------------------
void InitialSaturn2_UART1_Port ( void )
{
	//UART 1 assign as gpio

    XBYTE[REG_MUX_CONFIG_3] &= ~(SECOND_UART_MODE); //UART1 not enable
#ifndef MOSES   // kevin d
	XBYTE[REG_MUX_CONFIG_3] &= ~(I2S_MUTE_MODE);    //not I2S_mute_mode
#endif
    XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE);  //XBYTE[0x1ea1] &=0xe7;   //disable CEC

#ifndef MOSES   // kevin d
    XBYTE[REG_P1_ENABLE] &= (~BIT7 );         //XBYTE[0x1ea4] &=0x7f;   //disable P1_7

    XBYTE[REG_GPIO_OE_1] &= (~(BIT6|BIT5) );
#endif
	// Adj_Volume_On();	 control by PWM_GPIO
	#ifndef MOSES	// kevin 5
	Audio_Amplifier_ON();   //MUTE_S=LOW
	AU_OUT_MUTE( _ON );
	#endif

#ifndef MOSES   // kevin d
	XBYTE[REG_GPIO_OUT_HIGH] &= ( ~(BIT6|BIT5) );  //output  0	  //pin 208
#endif
}





//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#ifndef MOSES   // kevin d
void IntialSaturn2_TS_Port(void)	 //TS0 interface
{
   XBYTE[REG_MUX_CONFIG_0] |= TS0_IS_TS0;

   XBYTE[REG_MUX_CONFIG_0] &= ~( TS0_IS_DI );
   XBYTE[REG_MUX_FUNC_SEL3]&= ~( TS0_IS_GPIO );
   XBYTE[REG_MUX_FUNC_SEL6]&= ~( DHC_DFT_MODE);
   XBYTE[REG_MUX_CONFIG_5] &= ~( DSPE_JTAG_MODE );
}
#endif
//---------------------------------------------------------------------
/*void InitialSaturn2_PCI_Port(void)		//PCI is GPIO
{
    XBYTE[REG_MUX_FUNC_SEL0] &= (~ATCON_SETTING);

    XBYTE[REG_MUX_PCI]=(XBYTE[REG_MUX_PCI] & 0xc0) | PCI_GPIO_ENABLE; // PCI_AD0~AD7 is GPIO
    XBYTE[REG_MUX_CONFIG_2] &= (~PCI_CONFIG);
    XBYTE[REG_PCI_GPIO_OE_0]=PCI_GPIO_SETTING;
} //*/
//---------------------------------------------------------------------
//---------------------------------------------------------------------

#ifndef MOSES   // kevin c
static void Initial_PCM_CI_Port(void)
{
    XBYTE[REG_MUX_CONFIG_3] &= ~BIT0;            //I2s_in_PCMPads
    XBYTE[REG_MUX_CONFIG_3] &= ( ~(BIT6|BIT7) ); //I2s_MUTE_MODE
    XBYTE[REG_MUX_PCI] &= 0xfc; //pci_is_GPIO 0~5 == 0

    XBYTE[REG_MUX_CONFIG_0]= (  XBYTE[REG_MUX_CONFIG_0] & 0xfc ) | BIT0;   //as PCM
    //XBYTE[REG_MUX_CONFIG_0]= (  XBYTE[REG_MUX_CONFIG_0] & 0xfc ) | BIT1;   //as CI
}
#endif  // MOSES
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void Initial_TconPort( void )
{
	 //inital pin 2~6  atcon 1~6
    XBYTE[REG_MUX_FUNC_SEL0] &= ~BIT1;              //PWM3_setting=0;
    XBYTE[REG_MUX_FUNC_SEL0] &= (~ ( BIT5|BIT4 ) ); //DTCON=00b;
    XBYTE[REG_MUX_FUNC_SEL0] &= (~ BIT6);           //TCON_IS_GPIO=0;
 	XBYTE[REG_MUX_FUNC_SEL0] = (XBYTE[REG_MUX_FUNC_SEL0] & 0xf3 ) | BIT2;  // ATCON mode=1;

#ifndef MOSES   // kevin d
	//pin 116/117   atcon 7/8
	XBYTE[REG_MUX_FUNC_SEL2]=(XBYTE[REG_MUX_FUNC_SEL2] & 0x3f );  //it is set in IR initial

	//pin 144/148  atcon 9~13
	XBYTE[REG_MUX_CONFIG_4] &= (~(BIT7|BIT6));  //fcie_config=00b
	XBYTE[REG_MUX_CONFIG_3] &= (~(BIT2));       //PCM2_config[0]=0

    XBYTE[REG_MUX_FUNC_SEL3] &= ~BIT7;          //FcieIs_Gpio=0;
    XBYTE[REG_P1_ENABLE]=0x00;
#endif
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void Mst_GPIO_Initial( void )
{
    puts("\r\nGPIO Init...");// kevin test

	Iniital_USB_OCD_N();

 	InitialSaturn2_Pin134();

	Initial_IR_Port();

	InitialSaturn2_UART1_Port();

#ifndef MOSES   // kevin c
	//TS0 port
	IntialSaturn2_TS_Port();

    //PCI port as PCM/CI port
	Initial_PCM_CI_Port();
#endif

	//initial Tcon
	Initial_TconPort();

	//
	Power_On();
}
//---------------------------------------------------------------------


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -