在 Control_Suite 内的示例 HVPM_Sensorless 项目中、软件中指定的 PWM 频率与实际的 PWM 频率不匹配。
在软件中、PWM 频率被指定为10kHz。 但实际上、我们将其测量为10.08KHz。 这会导致实际 电机速度为1008 RPM、而在软件中被处理为1000 rpm。
无论我们使用内部时钟还是晶体振荡器、情况都不会改变。 期待您就此问题提供帮助。
我将在下面添加软件的相关部分。
#define PWM_FREQ_CUSTOM 10000 float32 T = (float32)1 / (float32)PWM_FREQ_CUSTOM;
****@主函数
// Initialize PWM module pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2; pwm1.HalfPerMax=pwm1.PeriodMax/2; pwm1.Deadband = 0.9*SYSTEM_FREQUENCY; PWM_INIT_MACRO(1,2,3,pwm1)
****
和 Device_Init 函数如下所示:
void DeviceInit(void)
{
WDogDisable(); // Disable the watchdog initially
DINT; // Global Disable all Interrupts
IER = 0x0000; // Disable CPU interrupts
IFR = 0x0000; // Clear all CPU interrupt flags
// Switch to Internal Oscillator 1 and turn off all other clock
// sources to minimize power consumption
EALLOW;
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0;
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL=0; // Clk Src = INTOSC1
SysCtrlRegs.CLKCTL.bit.XCLKINOFF=1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF=1; // Turn off XTALOSC
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF=1; // Turn off INTOSC2
// SysCtrlRegs.CLKCTL.bit.XCLKINOFF=1;//Turn off XCLKIN
// SysCtrlRegs.CLKCTL.bit.XTALOSCOFF =0;// OSC on (default on reset)
// SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL=1; // Clk Src = INTOSC1
// SysCtrlRegs.CLKCTL.bit.INTOSC2OFF=1; // Turn off INTOSC2
// SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL=0;
EDIS;
// SYSTEM CLOCK speed based on internal oscillator = 10 MHz
// 0xC = 60 MHz (12)
// 0xB = 55 MHz (11)
// 0xA = 50 MHz (10)
// 0x9 = 45 MHz (9)
// 0x8 = 40 MHz (8)
// 0x7 = 35 MHz (7)
// 0x6 = 30 MHz (6)
// 0x5 = 25 MHz (5)
// 0x4 = 20 MHz (4)
// 0x3 = 15 MHz (3)
// 0x2 = 10 MHz (2)
PLLset(0xC); // choose from options above
// PLLset(0x6);
// Initialise interrupt controller and Vector Table
// to defaults for now. Application ISR mapping done later.
PieCntlInit();
PieVectTableInit();
EALLOW; // below registers are "protected", allow access.
// LOW SPEED CLOCKS prescale register settings
SysCtrlRegs.LOSPCP.all = 0x0002; // Sysclk / 4 (15 MHz)
SysCtrlRegs.XCLK.bit.XCLKOUTDIV=2;
// ADC CALIBRATION
//---------------------------------------------------
// 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.
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // Enable ADC peripheral clock
(*Device_cal)(); // Auto-calibrate from TI OTP
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 0; // Return ADC clock to original state
// PERIPHERAL CLOCK ENABLES
//---------------------------------------------------
// If you are not using a peripheral you may want to switch
// the clock off to save power, i.e. set to =0
//
// Note: not all peripherals are available on all 280x derivates.
// Refer to the datasheet for your particular device.
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // ADC
//------------------------------------------------
SysCtrlRegs.PCLKCR3.bit.COMP1ENCLK = 1; // COMP1
SysCtrlRegs.PCLKCR3.bit.COMP2ENCLK = 1; // COMP2
SysCtrlRegs.PCLKCR3.bit.COMP3ENCLK = 1; // COMP3
//------------------------------------------------
SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1; //eCAP1
//------------------------------------------------
SysCtrlRegs.PCLKCR0.bit.ECANAENCLK=0; // eCAN-A
//------------------------------------------------
SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1; // eQEP1
//------------------------------------------------
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; // ePWM1
SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1; // ePWM2
SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1; // ePWM3
SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1; // ePWM4
SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 1; // ePWM5
SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1; // ePWM6
SysCtrlRegs.PCLKCR1.bit.EPWM7ENCLK = 1; // ePWM7
SysCtrlRegs.PCLKCR0.bit.HRPWMENCLK = 0; // HRPWM
//------------------------------------------------
SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 0; // I2C
//------------------------------------------------
SysCtrlRegs.PCLKCR0.bit.LINAENCLK = 1; // LIN-A
//------------------------------------------------
SysCtrlRegs.PCLKCR3.bit.CLA1ENCLK = 0; // CLA1
//------------------------------------------------
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
//------------------------------------------------
SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 0; // SPI-A
SysCtrlRegs.PCLKCR0.bit.SPIBENCLK = 0; // SPI-B
//------------------------------------------------
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK
//------------------------------------------------
//--------------------------------------------------------------------------------------
// GPIO (GENERAL PURPOSE I/O) CONFIG
//--------------------------------------------------------------------------------------
//-----------------------
// QUICK NOTES on USAGE:
//-----------------------
// If GpioCtrlRegs.GP?MUX?bit.GPIO?= 1, 2 or 3 (i.e. Non GPIO func), then leave
// rest of lines commented
// If GpioCtrlRegs.GP?MUX?bit.GPIO?= 0 (i.e. GPIO func), then:
// 1) uncomment GpioCtrlRegs.GP?DIR.bit.GPIO? = ? and choose pin to be IN or OUT
// 2) If IN, can leave next to lines commented
// 3) If OUT, uncomment line with ..GPACLEAR.. to force pin LOW or
// uncomment line with ..GPASET.. to force pin HIGH or
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
// GPIO-00 - PIN FUNCTION = PWM1A
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // 0=GPIO, 1=EPWM1A, 2=Resv, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO0 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO0 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-01 - PIN FUNCTION = PWM1B
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; // 0=GPIO, 1=EPWM1B, 2=Resv, 3=COMP1OUT
// GpioCtrlRegs.GPADIR.bit.GPIO1 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO1 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO1 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-02 - PIN FUNCTION = PWM2A
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1; // 0=GPIO, 1=EPWM2A, 2=Resv, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO2 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO2 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO2 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-03 - PIN FUNCTION = PWM2B
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 1; // 0=GPIO, 1=EPWM2B, 2=SPISOMI-A, 3=COMP2OUT
// GpioCtrlRegs.GPADIR.bit.GPIO3 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO3 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO3 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-04 - PIN FUNCTION = PWM3A
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 1; // 0=GPIO, 1=EPWM3A, 2=Resv, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO4 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO4 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO4 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-05 - PIN FUNCTION = PWM3B
GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 1; // 0=GPIO, 1=EPWM3B, 2=SPISIMO-A, 3=ECAP1
// GpioCtrlRegs.GPADIR.bit.GPIO5 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO5 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO5 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-06 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; // 0=GPIO, 1=EPWM4A, 2=SYNCI, 3=SYNCO
// GpioCtrlRegs.GPADIR.bit.GPIO6 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO6 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO6 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-07 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0; // 0=GPIO, 1=EPWM4B, 2=SCIRX-A, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO7 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO7 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO7 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-08 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 0; // 0=GPIO, 1=EPWM5A, 2=Resv, 3=ADCSOC-A
// GpioCtrlRegs.GPADIR.bit.GPIO8 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO8 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO8 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-09 - PIN FUNCTION = LIN_Tx
GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 2; // 0=GPIO, 1=EPWM5B, 2=LINTX-A, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO9 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO9 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO9 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-10 - PIN FUNCTION = --PWMdebug--
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0; // 0=GPIO, 1=EPWM6A, 2=Resv, 3=ADCSOC-B
GpioCtrlRegs.GPADIR.bit.GPIO10 = 1; // 1=OUTput, 0=INput
GpioDataRegs.GPACLEAR.bit.GPIO10 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO10 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-11 - PIN FUNCTION = --unused--
GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 0; // 0=GPIO, 1=EPWM6B, 2=LINRX-A, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO11 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO11 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO11 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-12 - PIN FUNCTION = POE
GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 1; // 0=GPIO, 1=TZ1, 2=SCITX-A, 3=SPISIMO-B
// GpioCtrlRegs.GPADIR.bit.GPIO12 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO12 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO12 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
// GPIO-16 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0; // 0=GPIO, 1=SPISIMO-A, 2=Resv, 3=TZ2
// GpioCtrlRegs.GPADIR.bit.GPIO16 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO16 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO16 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-17 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0; // 0=GPIO, 1=SPISOMI-A, 2=Resv, 3=TZ3
// GpioCtrlRegs.GPADIR.bit.GPIO17 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO17 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO17 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-18 - PIN FUNCTION = AC info
GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0; // 0=GPIO, 1=SPICLK-A, 2=LINTX-A, 3=XCLKOUT
GpioCtrlRegs.GPADIR.bit.GPIO18 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO18 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO18 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-19 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0; // 0=GPIO, 1=SPISTE-A, 2=LINRX-A, 3=ECAP1
// GpioCtrlRegs.GPADIR.bit.GPIO19 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO19 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO19 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-20 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 0; // 0=GPIO, 1=EQEPA-1, 2=Resv, 3=COMP1OUT
// GpioCtrlRegs.GPADIR.bit.GPIO20 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO20 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-21 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 0; // 0=GPIO, 1=EQEPB-1, 2=Resv, 3=COMP2OUT
// GpioCtrlRegs.GPADIR.bit.GPIO21 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO21 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO21 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-22 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 0; // 0=GPIO, 1=EQEPS-1, 2=Resv, 3=LINTX-A
// GpioCtrlRegs.GPADIR.bit.GPIO22 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO22 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-23 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 0; // 0=GPIO, 1=EQEPI-1, 2=Resv, 3=LINRX-A
// GpioCtrlRegs.GPADIR.bit.GPIO23 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO23 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO23 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-24 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 0; // 0=GPIO, 1=ECAP1, 2=Resv, 3=SPISIMO-B
// GpioCtrlRegs.GPADIR.bit.GPIO24 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO24 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO24 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-28 - PIN FUNCTION = SCI-RX
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // 0=GPIO, 1=SCIRX-A, 2=I2CSDA-A, 3=TZ2
// GpioCtrlRegs.GPADIR.bit.GPIO28 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO28 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO28 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-29 - PIN FUNCTION = SCI-TX
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // 0=GPIO, 1=SCITXD-A, 2=I2CSCL-A, 3=TZ3
// GpioCtrlRegs.GPADIR.bit.GPIO29 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO29 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO29 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-30 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 0; // 0=GPIO, 1=CANRX-A, 2=Resv, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO30 = 0; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO30 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO30 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-31 - PIN FUNCTION = unused
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0; // 0=GPIO, 1=CANTX-A, 2=Resv, 3=Resv
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPACLEAR.bit.GPIO31 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPASET.bit.GPIO31 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
// GPIO-32 - PIN FUNCTION = unused
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0; // 0=GPIO, 1=I2CSDA-A, 2=SYNCI, 3=ADCSOCA
// GpioCtrlRegs.GPBDIR.bit.GPIO32 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPBCLEAR.bit.GPIO32 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPBSET.bit.GPIO32 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-33 - PIN FUNCTION = unused
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 0; // 0=GPIO, 1=I2CSCL-A, 2=SYNCO, 3=ADCSOCB
// GpioCtrlRegs.GPBDIR.bit.GPIO33 = 1; // 1=OUTput, 0=INput
// GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPBSET.bit.GPIO33 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
// GPIO-34 - PIN FUNCTION = LED3 on controlCARD
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; // 0=GPIO, 1=Resv, 2=Resv, 3=Resv
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; // 1=OUTput, 0=INput
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1; // uncomment if --> Set Low initially
// GpioDataRegs.GPBSET.bit.GPIO34 = 1; // uncomment if --> Set High initially
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
// GPIO 35-38 are defaulted to JTAG usage, and are not shown here to enforce JTAG debug
// usage.
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
EDIS; // Disable register access
}