/** * \brief Initializes the LCD controller. * Configure SMC to access LCD controller at 64MHz MCK. */ extern void LCDD_Initialize( void ) { /* Initialize LCD controller */ ILI9488_Initialize() ; /* Initialize LCD controller */ ILI9488_SetDisplayPortrait( 0 ) ; /* Set LCD backlight */ LCDD_SetBacklight( 16 ) ; }
//------------------------------------------------------------------------------ /// Initializes the LCD controller. /// SMC are configured @ 96MHz for LCD. /// \param pLcdBase LCD base address. //------------------------------------------------------------------------------ void LCDD_Initialize(void) { const Pin pPins[] = {BOARD_LCD_PINS}; AT91PS_HSMC4_CS pSMC = AT91C_BASE_HSMC4_CS2; unsigned int rMode; // Enable pins PIO_Configure(pPins, PIO_LISTSIZE(pPins)); // Enable peripheral clock PMC_EnablePeripheral(AT91C_ID_HSMC4); // EBI SMC Configuration pSMC->HSMC4_SETUP = 0 | ((1 << 0) & AT91C_HSMC4_NWE_SETUP) | ((1 << 8) & AT91C_HSMC4_NCS_WR_SETUP) | ((9 << 16) & AT91C_HSMC4_NRD_SETUP) | ((9 << 24) & AT91C_HSMC4_NCS_RD_SETUP) ; pSMC->HSMC4_PULSE = 0 | (( 4 << 0) & AT91C_HSMC4_NWE_PULSE) | (( 4 << 8) & AT91C_HSMC4_NCS_WR_PULSE) | (( 36 << 16) & AT91C_HSMC4_NRD_PULSE) | (( 36 << 24) & AT91C_HSMC4_NCS_RD_PULSE) ; pSMC->HSMC4_CYCLE = 0 | ((10 << 0) & AT91C_HSMC4_NWE_CYCLE) | ((45 << 16) & AT91C_HSMC4_NRD_CYCLE) ; rMode = pSMC->HSMC4_MODE & ~(AT91C_HSMC4_DBW | AT91C_HSMC4_READ_MODE | AT91C_HSMC4_WRITE_MODE); pSMC->HSMC4_MODE = rMode | (AT91C_HSMC4_READ_MODE) | (AT91C_HSMC4_WRITE_MODE) | (AT91C_HSMC4_DBW_WIDTH_SIXTEEN_BITS) ; // Initialize LCD controller (HX8347) LCD_Initialize((void *)BOARD_LCD_BASE); // Set LCD backlight LCDD_SetBacklight(25); }
/** * \brief Initializes the LCD controller. * Configure SMC to access LCD controller at 64MHz MCK. */ extern void LCDD_Initialize( void ) { const Pin pPins[] = {BOARD_LCD_PINS}; Smc *pSmc = SMC; /* Enable pins */ PIO_Configure(pPins, PIO_LISTSIZE(pPins)); /* Enable peripheral clock */ PMC_EnablePeripheral( ID_SMC ) ; /* EBI SMC Configuration */ pSmc->SMC_CS_NUMBER[1].SMC_SETUP = 0 | ((2 << 0) & SMC_SETUP1_NWE_SETUP) | ((2 << 8) & SMC_SETUP1_NCS_WR_SETUP) | ((2 << 16) & SMC_SETUP1_NRD_SETUP) | ((2 << 24) & SMC_SETUP1_NCS_RD_SETUP) ; pSmc->SMC_CS_NUMBER[1].SMC_PULSE = 0 | ((4 << 0) & SMC_PULSE1_NWE_PULSE) | ((4 << 8) & SMC_PULSE1_NCS_WR_PULSE) | ((10 << 16) & SMC_PULSE1_NRD_PULSE) | ((10 << 24) & SMC_PULSE1_NCS_RD_PULSE) ; pSmc->SMC_CS_NUMBER[1].SMC_CYCLE = 0 | ((10 << 0) & SMC_CYCLE1_NWE_CYCLE) | ((22 << 16) & SMC_CYCLE1_NRD_CYCLE) ; pSmc->SMC_CS_NUMBER[1].SMC_MODE = 0 | (SMC_MODE1_READ_MODE) | (SMC_MODE1_WRITE_MODE) | (SMC_MODE1_DBW_8_BIT) ; /* Initialize LCD controller */ LCD_Initialize() ; /* Set LCD backlight */ LCDD_SetBacklight( 2 ) ; }
/** * \brief Initializes the LCD controller. * Configure SMC to access LCD controller at 64MHz MCK. */ extern void LCDD_Initialize( void ) { const Pin pPins[] = {BOARD_LCD_PINS}; Smc *pSmc = SMC; /* Enable pins */ PIO_Configure(pPins, PIO_LISTSIZE(pPins)); /* Enable peripheral clock */ PMC_EnablePeripheral( ID_SMC ) ; /* EBI SMC Configuration */ pSmc->SMC_CS_NUMBER[1].SMC_SETUP = SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2); pSmc->SMC_CS_NUMBER[1].SMC_PULSE = SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10); pSmc->SMC_CS_NUMBER[1].SMC_CYCLE = SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22); pSmc->SMC_CS_NUMBER[1].SMC_MODE = SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT; /* Initialize LCD controller */ LCD_Initialize() ; /* Initialize LCD controller */ LCD_SetDisplayPortrait( 0 ) ; /* Set LCD backlight */ LCDD_SetBacklight( 2 ) ; }