/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. The Uart and SPi clocks are set. * * @return void **************************************************************************************** */ void periph_init(void) { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; #if ES4_CODE SetBits16(CLK_16M_REG,XTAL16_BIAS_SH_DISABLE, 1); #endif //rom patch patch_func(); //Init pads set_pad_functions(); #if (BLE_APP_PRESENT) /* * (Re)Initialize peripherals i.e. uart_init(UART_BAUDRATE_115K2, 3); */ #endif // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. * * The Uart and SPi clocks are set. **************************************************************************************** */ void periph_init(void) // set i2c, spi, uart, uart2 serial clks { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; #if ES4_CODE SetBits16(CLK_16M_REG,XTAL16_BIAS_SH_DISABLE, 1); #endif // Initialize UART component SetBits16(CLK_PER_REG, UART1_ENABLE, 1); // enable clock - always @16MHz // baudr=9-> 115k2 // mode=3-> no parity, 1 stop bit 8 data length #ifdef UART_MEGABIT uart_init(UART_BAUDRATE_1M, 3); #else uart_init(UART_BAUDRATE_115K2, 3); #endif // UART_MEGABIT SetBits16(CLK_PER_REG, SPI_ENABLE, 1); // enable clock SetBits16(CLK_PER_REG, SPI_DIV, 1); // set divider to 1 //rom patch patch_func(); //Init pads set_pad_functions(); // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. The Uart and SPi clocks are set. * * @return void **************************************************************************************** */ void periph_init(void) // set i2c, spi, uart, uart2 serial clks { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; SetBits16(CLK_16M_REG,XTAL16_BIAS_SH_DISABLE, 1); //rom patch patch_func(); //Init pads set_pad_functions(); #if (BLE_APP_PRESENT) #if BLE_PROX_MONITOR app_proxm_port_reinit(XCY_LED0_GPIO); app_button_enable(); #elif BLE_FINDME_LOCATOR app_button_enable(); #endif //BLE_PROX_REPORTER #if BLE_BATTERY_SERVER app_batt_port_reinit(); #endif //BLE_BATTERY_SERVER #endif //BLE_APP_PRESENT // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Callback function, called when external wakeup function is triggered. * * @return void. **************************************************************************************** */ void ext_wakeup_cb(void) { if (GetBits16(SYS_STAT_REG, PER_IS_DOWN)) { // Return GPIO functionality from external wakeup GPIO #if DEVELOPMENT_DEBUG GPIO_reservations(); #endif set_pad_functions(); } SetBits32(GP_CONTROL_REG, BLE_WAKEUP_REQ, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. * * The Uart and SPi clocks are set. **************************************************************************************** */ void periph_init(void) // set i2c, spi, uart, uart2 serial clks { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; // TODO: Application specific - Modify accordingly! // Example: Activate UART and SPI. // Initialize UART component #ifdef PROGRAM_ENABLE_UART SetBits16(CLK_PER_REG, UART1_ENABLE, 1); // enable clock - always @16MHz // baudr=9-> 115k2 // mode=3-> no parity, 1 stop bit 8 data length #ifdef UART_MEGABIT uart_init(UART_BAUDRATE_1M, 3); #else uart_init(UART_BAUDRATE_115K2, 3); #endif // UART_MEGABIT //NVIC_SetPriority(UART_IRQn, 1); #endif // PROGRAM_ENABLE_UART #if 0 //Example: Do something with the timer if need be... SetWord16(TIMER0_CTRL_REG, 0); SetWord16(TIMER0_RELOAD_M_REG, 0); SetWord16(TIMER0_RELOAD_N_REG, 0); SetWord16(TIMER0_ON_REG, 0); #endif //rom patch patch_func(); //Init pads set_pad_functions(); #if (BLE_APP_PRESENT) #if BLE_BATTERY_SERVER app_batt_port_reinit(); #endif //BLE_BATTERY_SERVER #endif //BLE_APP_PRESENT // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. * * * @return void **************************************************************************************** */ void periph_init(void) { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; SetBits16(CLK_16M_REG, XTAL16_BIAS_SH_DISABLE, 1); // Initialize UART component #ifdef PROGRAM_ENABLE_UART if (GetBits16(CLK_CTRL_REG, RUNNING_AT_XTAL16M)) { SetBits16(CLK_PER_REG, UART1_ENABLE, 1); // enable clock - always @16MHz // mode=3-> no parity, 1 stop bit 8 data length #ifdef UART_MEGABIT uart_init(UART_BAUDRATE_1M, 3); #else uart_init(UART_BAUDRATE_115K2, 3); #endif // UART_MEGABIT } #endif // PROGRAM_ENABLE_UART //FPGA #ifdef FPGA_USED SetBits16(CLK_PER_REG, SPI_ENABLE, 1); // enable clock SetBits16(CLK_PER_REG, SPI_DIV, 1); // set divider to 1 SetBits16(CLK_PER_REG, WAKEUPCT_ENABLE, 1); // enable clock of Wakeup Controller #endif //rom patch patch_func(); //Init pads set_pad_functions(); #ifndef FPGA_USED // SetBits16(CLK_PER_REG, WAKEUPCT_ENABLE, 1); // enable clock of Wakeup Controller #endif //SetWord16(P01_PADPWR_CTRL_REG,0xFF); // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. * * The Uart and SPi clocks are set. **************************************************************************************** */ void periph_init(void) // set i2c, spi, uart, uart2 serial clks { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; #if ES4_CODE SetBits16(CLK_16M_REG,XTAL16_BIAS_SH_DISABLE, 1); #endif spi_hci_slave_init(); //rom patch patch_func(); //Init pads set_pad_functions(); // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. The Uart and SPi clocks are set. * * @return void **************************************************************************************** */ void periph_init(void) { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; //rom patch patch_func(); //Init pads set_pad_functions(); SetBits16(CLK_PER_REG, UART1_ENABLE, 1); // enable clock - always @16MHz // baudr=9-> 115k2 // mode=3-> no parity, 1 stop bit 8 data length uart_sps_init(UART_SPS_BAUDRATE, 3); //exact baud rate defined in uart.h // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); #if (EXT_SLEEP_ENABLED) app_scheduler_reinit(); #endif //EXT_SLEEP_ENABLED #if ((UART_HW_FLOW_ENABLED) && !defined(GPIO_DRV_IRQ_HANDLING_DISABLED)) GPIO_RegisterCallback(GPIO0_IRQn, gpio0_callback); if(GPIO_GetPinStatus(UART1_CTS_PORT,UART1_CTS_PIN)==FALSE) { GPIO_EnableIRQ(UART1_CTS_PORT, UART1_CTS_PIN, GPIO0_IRQn, 0, 1, 0); } else if(GPIO_GetPinStatus(UART1_CTS_PORT,UART1_CTS_PIN)==TRUE) { GPIO_EnableIRQ(UART1_CTS_PORT, UART1_CTS_PIN, GPIO0_IRQn, 1, 0, 0); } #endif //((UART_HW_FLOW_ENABLED) && !defined(GPIO_DRV_IRQ_HANDLING_DISABLED)) }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. The Uart and SPi clocks are set. * * @return void **************************************************************************************** */ void periph_init(void) { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; #if ES4_CODE SetBits16(CLK_16M_REG,XTAL16_BIAS_SH_DISABLE, 1); #endif #if BLE_INTEGRATED_HOST_GTL // Initialize UART component SetBits16(CLK_PER_REG, UART1_ENABLE, 1); // enable clock - always @16MHz // baudr=9-> 115k2 // mode=3-> no parity, 1 stop bit 8 data length uart_init(UART_BAUDRATE_115K2, 3); #endif //rom patch patch_func(); //Init pads set_pad_functions(); #if (BLE_APP_PRESENT) /* * (Re)Initialize peripherals i.e. uart_init(UART_BAUDRATE_115K2, 3); */ #endif // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }
/** **************************************************************************************** * @brief Enable pad's and peripheral clocks assuming that peripherals' power domain is down. * * The Uart and SPi clocks are set. **************************************************************************************** */ void periph_init(void) // set i2c, spi, uart, uart2 serial clks { // Power up peripherals' power domain SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 0); while (!(GetWord16(SYS_STAT_REG) & PER_IS_UP)) ; #if ES4_CODE SetBits16(CLK_16M_REG,XTAL16_BIAS_SH_DISABLE, 1); #endif // TODO: Application specific - Modify accordingly! // Example: Activate UART and SPI. // Initialize UART component #ifdef PROGRAM_ENABLE_UART SetBits16(CLK_PER_REG, UART1_ENABLE, 1); // enable clock - always @16MHz // baudr=9-> 115k2 // mode=3-> no parity, 1 stop bit 8 data length #ifdef UART_MEGABIT uart_init(UART_BAUDRATE_1M, 3); #else uart_init(UART_BAUDRATE_115K2, 3); #endif // UART_MEGABIT //NVIC_SetPriority(UART_IRQn, 1); // remove if the bug in uart.c is fixed in ES4(b)! #endif // PROGRAM_ENABLE_UART //FPGA #ifdef FPGA_USED SetBits16(CLK_PER_REG, SPI_ENABLE, 1); // enable clock SetBits16(CLK_PER_REG, SPI_DIV, 1); // set divider to 1 #endif #if BLE_ACCEL SetBits16(CLK_PER_REG, SPI_ENABLE, 1); // enable clock SetBits16(CLK_PER_REG, SPI_DIV, 1); // set divider to 1 SetBits16(CLK_PER_REG, WAKEUPCT_ENABLE, 1); // enable clock of Wakeup Controller #endif #if 0 //Example: Do something with the timer if need be... SetWord16(TIMER0_CTRL_REG, 0); SetWord16(TIMER0_RELOAD_M_REG, 0); SetWord16(TIMER0_RELOAD_N_REG, 0); SetWord16(TIMER0_ON_REG, 0); #endif //rom patch patch_func(); //Init pads set_pad_functions(); #ifndef FPGA_USED #if (BLE_APP_PRESENT) #if BLE_HID_DEVICE SetBits16(CLK_PER_REG, WAKEUPCT_ENABLE, 1); // enable clock of Wakeup Controller // if (app_env.app_flags & KBD_START_SCAN) // reinit kbd only if needed if ( !(app_env.app_flags & KBD_START_SCAN) && !(app_env.app_flags & KBD_SCANNING) ) app_kbd_reinit_matrix(); #endif // BLE_HID_DEVICE #if BLE_PROX_REPORTER app_proxr_port_reinit(); #elif BLE_FINDME_LOCATOR app_button_enable(); #endif //BLE_PROX_REPORTER #if BLE_SPOTA_RECEIVER app_spotar_init(); #endif // BLE_SPOTA_RECEIVER #if BLE_STREAMDATA_DEVICE stream_start_button_init(); #endif //BLE_STREAMDATA_DEVICE #if BLE_BATTERY_SERVER app_batt_port_reinit(); #endif //BLE_BATTERY_SERVER #endif #endif // Enable the pads SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1); }