123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- //###########################################################################
- //
- // FILE: DSP2803x_EPwm.c
- //
- // TITLE: DSP2803x EPwm Initialization & Support Functions.
- //
- //###########################################################################
- // $TI Release: F2803x C/C++ Header Files and Peripheral Examples V130 $
- // $Release Date: May 8, 2015 $
- // $Copyright: Copyright (C) 2009-2015 Texas Instruments Incorporated -
- // http://www.ti.com/ ALL RIGHTS RESERVED $
- //###########################################################################
- #include "DSP2803x_Device.h" // DSP2803x Headerfile Include File
- #include "DSP2803x_Examples.h" // DSP2803x Examples Include File
- //---------------------------------------------------------------------------
- // InitEPwm:
- //---------------------------------------------------------------------------
- // This function initializes the EPwm(s) to a known state.
- //
- void InitEPwm(void)
- {
- // Initialize EPwm1/2/3/4/5/6/7
- //tbd...
- }
- //---------------------------------------------------------------------------
- // Example: InitEPwmGpio:
- //---------------------------------------------------------------------------
- // This function initializes GPIO pins to function as EPwm pins
- //
- // Each GPIO pin can be configured as a GPIO pin or up to 3 different
- // peripheral functional pins. By default all pins come up as GPIO
- // inputs after reset.
- //
- void InitEPwmGpio(void)
- {
- InitEPwm1Gpio();
- InitEPwm2Gpio();
- InitEPwm3Gpio();
- #if DSP28_EPWM4
- InitEPwm4Gpio();
- #endif // endif DSP28_EPWM4
- #if DSP28_EPWM5
- InitEPwm5Gpio();
- #endif // endif DSP28_EPWM5
- #if DSP28_EPWM6
- InitEPwm6Gpio();
- #endif // endif DSP28_EPWM6
- #if DSP28_EPWM7
- InitEPwm7Gpio();
- #endif // endif DSP28_EPWM7
- }
- void InitEPwm1Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; // Disable pull-up on GPIO0 (EPWM1A)
- GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1; // Disable pull-up on GPIO1 (EPWM1B)
- /* Configure EPWM-1 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM1 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // Configure GPIO0 as EPWM1A
- GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; // Configure GPIO1 as EPWM1B
- EDIS;
- }
- void InitEPwm2Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO2 = 1; // Disable pull-up on GPIO2 (EPWM2A)
- GpioCtrlRegs.GPAPUD.bit.GPIO3 = 1; // Disable pull-up on GPIO3 (EPWM2B)
- /* Configure EPwm-2 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM2 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1; // Configure GPIO2 as EPWM2A
- GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 1; // Configure GPIO3 as EPWM2B
- EDIS;
- }
- void InitEPwm3Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1; // Disable pull-up on GPIO4 (EPWM3A)
- GpioCtrlRegs.GPAPUD.bit.GPIO5 = 1; // Disable pull-up on GPIO5 (EPWM3B)
- /* Configure EPwm-3 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM3 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 1; // Configure GPIO4 as EPWM3A
- GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 1; // Configure GPIO5 as EPWM3B
- EDIS;
- }
- #if DSP28_EPWM4
- void InitEPwm4Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO6 = 1; // Disable pull-up on GPIO6 (EPWM4A)
- GpioCtrlRegs.GPAPUD.bit.GPIO7 = 1; // Disable pull-up on GPIO7 (EPWM4B)
- /* Configure EPWM-4 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM4 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 1; // Configure GPIO6 as EPWM4A
- GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 1; // Configure GPIO7 as EPWM4B
- EDIS;
- }
- #endif // endif DSP28_EPWM4
- #if DSP28_EPWM5
- void InitEPwm5Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO8 = 1; // Disable pull-up on GPIO8 (EPWM5A)
- GpioCtrlRegs.GPAPUD.bit.GPIO9 = 1; // Disable pull-up on GPIO9 (EPWM5B)
- /* Configure EPWM-5 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM5 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 1; // Configure GPIO8 as EPWM5A
- GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 1; // Configure GPIO9 as EPWM5B
- EDIS;
- }
- #endif // endif DSP28_EPWM5
- #if DSP28_EPWM6
- void InitEPwm6Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO10 = 1; // Disable pull-up on GPIO10 (EPWM6A)
- GpioCtrlRegs.GPAPUD.bit.GPIO11 = 1; // Disable pull-up on GPIO11 (EPWM6B)
- /* Configure EPWM-6 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM6 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 1; // Configure GPIO10 as EPWM6A
- GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 1; // Configure GPIO11 as EPWM6B
- EDIS;
- }
- #endif // endif DSP28_EPWM6
- #if DSP28_EPWM7
- void InitEPwm7Gpio(void)
- {
- EALLOW;
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPBPUD.bit.GPIO40 = 1; // Disable pull-up on GPIO40 (EPWM7A)
- GpioCtrlRegs.GPBPUD.bit.GPIO41 = 1; // Disable pull-up on GPIO41 (EPWM7B)
- /* Configure EPWM-7 pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPWM7 functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPBMUX1.bit.GPIO40 = 1; // Configure GPIO40 as EPWM7A
- GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 1; // Configure GPIO41 as EPWM7B
- EDIS;
- }
- #endif // endif DSP28_EPWM7
- //---------------------------------------------------------------------------
- // Example: InitEPwmSyncGpio:
- //---------------------------------------------------------------------------
- // This function initializes GPIO pins to function as EPwm Synch pins
- //
- void InitEPwmSyncGpio(void)
- {
- // EALLOW;
- /* Configure EPWMSYNCI */
- /* Enable internal pull-up for the selected pins */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- // GpioCtrlRegs.GPAPUD.bit.GPIO6 = 0; // Enable pull-up on GPIO6 (EPWMSYNCI)
- GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0; // Enable pull-up on GPIO32 (EPWMSYNCI)
- /* Set qualification for selected pins to asynch only */
- // This will select synch to SYSCLKOUT for the selected pins.
- // Comment out other unwanted lines.
- // GpioCtrlRegs.GPAQSEL1.bit.GPIO6 = 0; // Synch to SYSCLKOUT GPIO6 (EPWMSYNCI)
- GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 0; // Synch to SYSCLKOUT GPIO32 (EPWMSYNCI)
- /* Configure EPwmSync pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be EPwmSync functional pins.
- // Comment out other unwanted lines.
- // GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 2; // Configures GPIO6 for EPWMSYNCI operation
- GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 2; // Configures GPIO32 for EPWMSYNCI operation.
- /* Configure EPWMSYNC0 */
- /* Disable internal pull-up for the selected output pins
- for reduced power consumption */
- // Pull-ups can be enabled or disabled by the user.
- // Comment out other unwanted lines.
- // GpioCtrlRegs.GPAPUD.bit.GPIO6 = 1; // Disable pull-up on GPIO6 (EPWMSYNCO)
- GpioCtrlRegs.GPBPUD.bit.GPIO33 = 1; // Disable pull-up on GPIO33 (EPWMSYNCO)
- // GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 3; // Configures GPIO6 for EPWMSYNCO
- GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2; // Configures GPIO33 for EPWMSYNCO
- }
- //---------------------------------------------------------------------------
- // Example: InitTzGpio:
- //---------------------------------------------------------------------------
- // This function initializes GPIO pins to function as Trip Zone (TZ) pins
- //
- // Each GPIO pin can be configured as a GPIO pin or up to 3 different
- // peripheral functional pins. By default all pins come up as GPIO
- // inputs after reset.
- //
- void InitTzGpio(void)
- {
- EALLOW;
- /* Enable internal pull-up for the selected pins */
- // Pull-ups can be enabled or disabled by the user.
- // This will enable the pullups for the specified pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0; // Enable pull-up on GPIO12 (TZ1)
- // GpioCtrlRegs.GPAPUD.bit.GPIO15 = 0; // Enable pull-up on GPIO15 (TZ1)
- GpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; // Enable pull-up on GPIO13 (TZ2)
- // GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; // Enable pull-up on GPIO16 (TZ2)
- // GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0; // Enable pull-up on GPIO28 (TZ2)
- GpioCtrlRegs.GPAPUD.bit.GPIO14 = 0; // Enable pull-up on GPIO14 (TZ3)
- // GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; // Enable pull-up on GPIO17 (TZ3)
- // GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0; // Enable pull-up on GPIO29 (TZ3)
- /* Set qualification for selected pins to asynch only */
- // Inputs are synchronized to SYSCLKOUT by default.
- // This will select asynch (no qualification) for the selected pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 3; // Asynch input GPIO12 (TZ1)
- // GpioCtrlRegs.GPAQSEL1.bit.GPIO15 = 3; // Asynch input GPIO15 (TZ1)
- GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 3; // Asynch input GPIO13 (TZ2)
- // GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3; // Asynch input GPIO16 (TZ2)
- // GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3; // Asynch input GPIO28 (TZ2)
- GpioCtrlRegs.GPAQSEL1.bit.GPIO14 = 3; // Asynch input GPIO14 (TZ3)
- // GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; // Asynch input GPIO17 (TZ3)
- // GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3; // Asynch input GPIO29 (TZ3)
- /* Configure TZ pins using GPIO regs*/
- // This specifies which of the possible GPIO pins will be TZ functional pins.
- // Comment out other unwanted lines.
- GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 1; // Configure GPIO12 as TZ1
- // GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 1; // Configure GPIO15 as TZ1
- GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 1; // Configure GPIO13 as TZ2
- // GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 3; // Configure GPIO16 as TZ2
- // GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3; // Configure GPIO28 as TZ2
- GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 1; // Configure GPIO14 as TZ3
- // GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 3; // Configure GPIO17 as TZ3
- // GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3; // Configure GPIO29 as TZ3
- EDIS;
- }
- //===========================================================================
- // End of file.
- //===========================================================================
|