void InitSysCtrl(void) { // Disable the watchdog DisableDog(); // *IMPORTANT* // The Device_cal function, which copies the ADC & oscillator calibration values // from TI reserved OTP into the appropriate trim registers, occurs automatically // in the Boot ROM. If the boot ROM code is bypassed during the debug process, the // following function MUST be called for the ADC and oscillators to function according // to specification. The clocks to the ADC MUST be enabled before calling this // function. // See the device data manual and/or the ADC Reference // Manual for more information. EALLOW; SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // Enable ADC peripheral clock (*Device_cal)(); SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 0; // Return ADC clock to original state EDIS; // Select Internal Oscillator 1 as Clock Source (default), and turn off all unused clocks to // conserve power. IntOsc1Sel(); // Initialize the PLL control: PLLCR and DIVSEL // DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2802x_Examples.h InitPll(DSP28_PLLCR,DSP28_DIVSEL); // Initialize the peripheral clocks InitPeripheralClocks(); }
void InitSysCtrl(void) { // Disable the watchdog DisableDog(); // Initialize the PLLCR InitPll(DSP28_PLLCR); // Initialize the peripheral clocks InitPeripheralClocks(); }
void InitSysCtrl(void) { // Disable the watchdog DisableDog(); // Initialize the PLL control: PLLCR and DIVSEL // DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2833x_Examples.h InitPll(DSP28_PLLCR,DSP28_DIVSEL); // Initialize the peripheral clocks InitPeripheralClocks(); }
void Device_Init(void) { EALLOW; SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; (*Device_cal)(); SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 0; EDIS; //Setup Clock //20MHz ->PLL->90MHz->C28 // ->PLL2->120MHz->USB XtalOscSel(); InitPll(DSP28_PLLCR, DSP28_DIVSEL); InitPeripheralClocks(); GPIO_Init(); }
void init_board () { DisableDog(); EALLOW; SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;/* Enable ADC peripheral clock*/ (*Device_cal)(); SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 0;/* Return ADC clock to original state*/ EDIS; /* Select Internal Oscillator 1 as Clock Source (default), and turn off all unused clocks to * conserve power. */ IntOsc1Sel(); /* Initialize the PLL control: PLLCR and DIVSEL * DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2806x_Examples.h */ InitPll(9,3); InitPeripheralClocks(); EALLOW; /* Configure low speed peripheral clocks */ SysCtrlRegs.LOSPCP.all = 0U; EDIS; /* Disable and clear all CPU interrupts */ DINT; IER = 0x0000; IFR = 0x0000; InitPieCtrl(); InitPieVectTable(); InitCpuTimers(); /* initial ePWM GPIO assignment... */ config_ePWM_GPIO(); /* initial GPIO qualification settings.... */ EALLOW; GpioCtrlRegs.GPAQSEL1.all = 0x0; GpioCtrlRegs.GPAQSEL2.all = 0x0; GpioCtrlRegs.GPBQSEL1.all = 0x0; GpioCtrlRegs.GPBQSEL2.all = 0x0; EDIS; }
void InitSysCtrl(void) { // On F2812/F2810 TMX samples prior to rev C this initialization was // required. For Rev C and after this is no longer required /* EALLOW; DevEmuRegs.M0RAMDFT = 0x0300; DevEmuRegs.M1RAMDFT = 0x0300; DevEmuRegs.L0RAMDFT = 0x0300; DevEmuRegs.L1RAMDFT = 0x0300; DevEmuRegs.H0RAMDFT = 0x0300; EDIS; */ // Disable the watchdog DisableDog(); // Initialize the PLLCR to 0xA - set TMS320F clock to perform 150MHZ InitPll(0xA); // Initialize the peripheral clocks InitPeripheralClocks(); }
Uint32 main(void) { //GPIO and SCI are still setup from Sci_Boot() //Setup sysctl and pll DisableDog(); IntOsc1Sel(); InitPll(DSP28_PLLCR,DSP28_DIVSEL); InitFlash(); DELAY_US(100); // ApplicationPtr = (void(*)(void))SCI_Boot(); // // if(ApplicationPtr) // ApplicationPtr(); return SCI_Boot(); // asm(" .ref _ExitBoot"); // asm(" BF _ExitBoot,UNC"); // return 0; }
//--------------------------------------------------------------------------- // InitECan: //--------------------------------------------------------------------------- // This function initializes the eCAN module to a known state. // void InitECan(void) { long i; asm(" EALLOW"); /* Disable Watchdog */ DisableDog(); /* Enable peripheral clocks */ InitPeripheralClocks(); /* Set PLL multiplication factor */ InitPll(0xA); asm(" EALLOW"); /* Configure eCAN pins using GPIO regs*/ GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6 = 1; GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7 = 1; /* Configure eCAN RX and TX pins for eCAN transmissions using eCAN regs*/ ECanaRegs.CANTIOC.bit.TXFUNC = 1; ECanaRegs.CANRIOC.bit.RXFUNC = 1; /* Configure eCAN for HECC mode - (reqd to access mailboxes 16 thru 31) */ // HECC mode also enables time-stamping feature ECanaRegs.CANMC.bit.SCB = 1; /* Initialize all bits of 'Master Control Field' to zero */ // Some bits of MSGCTRL register come up in an unknown state. For proper operation, // all bits (including reserved bits) of MSGCTRL must be initialized to zero ECanaMboxes.MBOX0.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX1.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX2.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX3.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX4.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX5.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX6.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX7.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX8.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX9.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX10.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX11.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX12.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX13.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX14.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX15.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX16.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX17.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX18.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX19.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX20.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX21.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX22.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX23.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX24.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX25.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX26.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX27.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX28.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX29.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX30.MSGCTRL.all = 0x00000000; ECanaMboxes.MBOX31.MSGCTRL.all = 0x00000000; // TAn, RMPn, GIFn bits are all zero upon reset and are cleared again // as a matter of precaution. /* Clear all TAn bits */ ECanaRegs.CANTA.all = 0xFFFFFFFF; /* Clear all RMPn bits */ ECanaRegs.CANRMP.all = 0xFFFFFFFF; /* Clear all interrupt flag bits */ ECanaRegs.CANGIF0.all = 0xFFFFFFFF; ECanaRegs.CANGIF1.all = 0xFFFFFFFF; /* Configure bit timing parameters */ ECanaRegs.CANMC.bit.CCR = 1 ; // Set CCR = 1 while(ECanaRegs.CANES.bit.CCE != 1 ) {} // Wait for CCE bit to be set.. ECanaRegs.CANBTC.bit.BRPREG = 9; ECanaRegs.CANBTC.bit.TSEG2REG = 2; ECanaRegs.CANBTC.bit.TSEG1REG = 10; ECanaRegs.CANMC.bit.CCR = 0 ; // Set CCR = 0 while(ECanaRegs.CANES.bit.CCE == !0 ) {} // Wait for CCE bit to be cleared.. /* Disable all Mailboxes */ ECanaRegs.CANME.all = 0; // Required before writing the MSGIDs }