void init() { // In case disabled by boot-loader __enable_irq(); initPorts(); initTimers(); bdm_interfaceOff(); initUSB(); #ifdef VDD_ON_INITIALLY // For compatibility with original board s/w // The board is powered when initially plugged in #if (VDD_ON_INITIALLY == 3) bdm_option.targetVdd = BDM_TARGET_VDD_3V3; #elif (VDD_ON_INITIALLY == 5) bdm_option.targetVdd = BDM_TARGET_VDD_5; #else bdm_option.targetVdd = BDM_TARGET_VDD_OFF; #endif bdm_setTargetVdd(); RESET_LOW(); WAIT_MS(100); RESET_3STATE(); #endif }
//! Sets the CF BDM interface hardware to an idle condition //! //! \verbatim //! Port configuration //! Name uC pin BDM cable //! ==================================================== //! DSO/TDO input & driven input //! --------------------------------------------------- //! DSI/TDI output 0 0 //! DSCLK output 0 0 //! DSCLK_DRV output 0 - //! BKPT*/TMS input & pulled high 1 //! JTAG_DRV output 0 - //! --------------------------------------------------- //! RSTO input & driven input //! RSTI input & pulled high 3-state //! TA input & pulled high 3-state //! --------------------------------------------------- //! TCLK input & pulled high 1 //! TRST input & pulled high [see DSCLK] //! --------------------------------------------------- //! \endverbatim //! void bdmcf_interfaceIdle(void) { SPIxC1 = SPIxC1_OFF; // Disable SPI1 DATA_PORT = BDMCF_IDLE; DATA_PORT_DDR = BDMCF_IDLE_DDR; RESET_3STATE(); TA_3STATE(); BKPT_HIGH(); CF_DRV_ENABLE(); }
//! Turns off the BDM interface //! void bdm_interfaceOff( void ) { #if (HW_CAPABILITY&CAP_CFVx) #ifndef SPI1C1 #define SPI1C1 SPIC1 #endif SPI1C1 = 0; // Disable SPI1 #endif #if (HW_CAPABILITY&CAP_FLASH) (void)bdmSetVpp(BDM_TARGET_VPP_OFF); #endif #ifdef TA_3STATE TA_3STATE(); #endif #ifdef JTAG_DRV_DISABLE JTAG_DRV_DISABLE(); #endif #ifdef BKPT_DISABLE BKPT_DISABLE(); #endif #ifdef RESET_3STATE // Todo - remove RESET_3STATE(); #endif #ifdef RESET_DISABLE RESET_DISABLE(); #endif #ifdef CF_DRV_DISABLE CF_DRV_DISABLE(); #endif #ifdef TCLK_DISABLE TCLK_DISABLE(); #endif #ifdef DSCLK_DRV_DISABLE DSCLK_DRV_DISABLE(); #endif #ifdef TRST_3STATE TRST_3STATE(); #endif #ifdef TDI_DISABLE TDI_DISABLE(); #endif #ifdef BDM_3STATE BDM_3STATE(); #endif #ifdef TCLK_CTL_DISABLE TCLK_CTL_DISABLE(); #endif #ifdef SWD_DISABLE SWD_DISABLE(); #endif #ifdef SWCLK_DISABLE SWCLK_DISABLE(); #endif SPIxC1 = SPIxC1_OFF; // Disable SPI (MOSI/MISO pins now GPIO) }