U8 CheckUSBPlugIN(void) { U8 i; XBYTE[0xB011] |= 0x20; //bit 4 turn on usb_device clk XBYTE[0xB016] = 0x04; // power on default is 0x04 XBYTE[0xB0E9] &= 0xFE; // Enable usb pll clk USER_DelayDTms(5); // ㄏノDelay よΑぃノpollingよΑ XBYTE[0xB01D] =0x00; XBYTE[0xB002] |= 0x04; //bit 3 turn on USB_SW_RESET XBYTE[0xB002] &= 0xFB; //bit 3 trun off USB_SW_RESET XBYTE[0xB002] |= 0x02; //bit 2 turn on USB_host_SW_RESET XBYTE[0xB5e6] = 0x00; //bulksram gated clock XBYTE[0xB522] = 0x01; //USB2.0 UTMI clock mode set XBYTE[0xB018] = 0x01; //USB clock select //TONY XBYTE[0xB002] &= 0xFD; //bit 2 turn off USB_host_SW_RESET Syn_Reset(); XBYTE[0xB018] = 0x01; //USB clock select //TONY XBYTE[0xB019] = 0x01; //host mode if(XBYTE[0xB615]==0x01) { i=100; while(i) i--; if(XBYTE[0xB615]==0x01) { return 1; } } return 0; }
static void xtl_to_pll(U8 tc_clock_mode) { XBYTE[0xB006] = gac_clock_table[tc_clock_mode][0]; XBYTE[0xB006] = gac_clock_table[tc_clock_mode][0] | (1<<5); USER_DelayDTms(2); XBYTE[0xB008] = 2; // PLLS_SWRSTN = 1 XBYTE[0xB008] = 3; // PLLS_MODE = 1(PLL clock output) change_clock_ratio(tc_clock_mode); }
void PowerOn_Init_USB(void) { /*------------- Power On USB Init --------------*/ GLOBAL_REG[0x19] = 0x00; // USB Device mode GLOBAL_REG[0x11]|= 0x10; // Enable USB CLK // Enale each clocks and Reset USB Phy // // FM + DMA + DM // //----------------------------------------------// GLOBAL_REG[0x16] = 0x04; // power on default is 0x04 GLOBAL_REG[0xE9] &= 0xFE; // Enable usb pll clk USER_DelayDTms(5); // 使用Delay 方式不用polling方式 GLOBAL_REG[0x1D] = 0x00; // 090510 Jay USB SRAM USE USB Phy clk GLOBAL_REG[0x02] |= 0x04; // bit 3 turn on USB_SW_RESET GLOBAL_REG[0x02] &= 0xFB; // bit 3 turn off USB_SW_RESET }
void USB_DisConnect(void) { XBYTE[0xB01D] = 0x01; USB_REG[0xA1]=0x00; USB_REG[0x27] = 0x01; // 080324 USB disconnect PC GLOBAL_REG[0x17]=0x00; USB_REG[0xC0]=0x00; //clear suspend/resume/configuration change,turn off USB D+ //Adding for avoid losting power USB_REG[0xD0]=0x00; USB_REG[0xD1]=0x00; USB_REG[0xD2]=0x00; USB_REG[0xD3]=0x00; GLOBAL_REG[0x16]=0x05; //Close USB UTMI 30Mhz GLOBAL_REG[0x16] = 0x01; //Close USB UTMI 30Mhz GLOBAL_REG[0x11] &= 0xEF; //Close USB clk source USER_DelayDTms(20); }
void LCM_Init(void) { U8 i; XBYTE[0xB039] |= 0x04;//Gpio10 output enable XBYTE[0xB102]|=0x10;//P1_4 output LCM_RESET_LO; // LCM_RESET=0; USER_DelayDTms(20); // LCM_RESET=1; LCM_RESET_HI; for (i=0; i<sizeof(LCM_InitCommand); i++) //fill LCD parameter { LCM_write_command(LCM_InitCommand[i]); } LCM_clear(); }
//================================================================================ void PowerOffProcess() { U16 tw_temp; U8 i; data U16 fm_backup; fm_backup=gw_FM_frequency; gw_FM_frequency =875-5; FM_drive(); gc_PhaseInx=0; set_clock_mode(CLOCK_MODE_MP3); LCM_BACKLIGHT=1; LCM_clear(); gw_IR_Timer=0; // gc_VolumeMute=0; // gc_linein_mute=0; // gb_Host_Exist=1; // gb_SD_Exist=1; while(1) { if(gc_PhaseInx==C_PlayPause) { // SourceDevicePreSet(); gc_Task_Next=C_Task_Play; gw_FM_frequency=fm_backup; } else gc_PhaseInx = 0; //========================================================= //========================================================= if(gc_Vrefinit_Timer==0) { TimeOutHandle(); } if(gc_KeyValue==0x02)//³¤°´Play { gc_PhaseInx = C_PlayPause; } else if(gc_IRCmdStatus!=0) { tw_temp=(IR_REG[0x1b]<<8)+IR_REG[0x1a]; if(tw_temp==IR_23_Key) { if((IR_REG[0x1c]+IR_REG[0x1d])==0xFF) { if(IR_REG[0x1c] == 0x00) //Power ON { if(gc_IRCmdStatus==1) gc_PhaseInx = C_PlayPause; } } } else if(tw_temp==IR_18_Key) { if((IR_REG[0x1c]+IR_REG[0x1d])==0xFF) { if(IR_REG[0x1c] == 0x12) //Power ON { if(gc_IRCmdStatus==1) gc_PhaseInx = C_PlayPause; } } } gc_IRCmdStatus=0; } gc_KeyValue=0; //========================================================= //========================================================= if(gc_Task_Current!=gc_Task_Next) { gc_PhaseInx = 0; gc_LCM_Media=0xff; gc_DisplayEQIcon=0xFF; gw_DisplayBitRate=0xFFFF; gc_DisplayPlayMode=0xFF; gw_DispSongNum=0xFFFF; gc_DIRTimeOut_Flag=1; gb_FindFlag = 1; gw_DispFileName_ByteOffset=0; // gw_init_needed=0xffff; gc_Task_Current=gc_Task_Next; break; } } if((gw_FM_frequency<875) || (gw_FM_frequency>1080)) { gw_FM_frequency=875; } // FM_initial(); FM_drive(); LCM_BACKLIGHT=0; LCM_ShowCompanyLogo(); //chiayenmark for car for(i=0;i<=5;i++) { USER_DelayDTms(250); } LCM_clear(); //20081124 chiayen add }