Part Number: TMS320F28375D
When using the inverter with a full bridge,
I would like to continue to output PWM GPIO at HIGH from the
start to avoid arm short circuit.
I am trying to set the GPIO used for PWM with "output / open drain".
A pull-up resistor is sandwiched between the lines.
When initialized with the following description,
the external pull-up resistor is ignored and the output becomes LOW.
This LOW continues until the PWM setting is completed.
Please let me know if there are any mistakes in always issuing HIGH.
--------------------------------------------------
GPIO_SetupPinMux (8, GPIO_MUX_CPU1,1);
GPIO_SetupPinOptions (8, GPIO_OUTPUT, (GPIO_OPENDRAIN | GPIO_PULLUP));
GPIO_SetupPinMux (9, GPIO_MUX_CPU1,1);
GPIO_SetupPinOptions (9, GPIO_OUTPUT, (GPIO_OPENDRAIN | GPIO_PULLUP));
GPIO_SetupPinMux (10, GPIO_MUX_CPU1,1);
GPIO_SetupPinOptions (10, GPIO_OUTPUT, (GPIO_OPENDRAIN | GPIO_PULLUP));
GPIO_SetupPinMux (11, GPIO_MUX_CPU1,1);
GPIO_SetupPinOptions (11, GPIO_OUTPUT, (GPIO_OPENDRAIN | GPIO_PULLUP));
--------------------------------------------------
It is set in main as follows.
Immediately after this, the PWM is set,
---------------------------------------------------------------------------------------------------------
main()
{
InitSysCtrl();
#ifdef _STANDALONE
#ifdef _FLASH
// Send boot command to allow the CPU2 application to begin execution
IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
#else //_FLASH
// Send boot command to allow the CPU2 application to begin execution
IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
#endif //_FLASH
#endif //_STANDALONE
// Initialize GPIO.
InitGpio();
// Peripheral Pin & GPIO Pin Setting.
EALLOW;
CpuSysRegs.PCLKCR2.bit.EPWM5 = 1;
CpuSysRegs.PCLKCR2.bit.EPWM6 = 1;
GPIO_SetupPinMux(8,GPIO_MUX_CPU1,1); // EPWM5A (O) : Servo\DC Motor EPWM5
GPIO_SetupPinOptions(8, GPIO_OUTPUT,(GPIO_OPENDRAIN|GPIO_PULLUP));//(GPIO_PULLUP));//(GPIO_OPENDRAIN|GPIO_PULLUP));
GPIO_SetupPinMux(9,GPIO_MUX_CPU1,1); // EPWM5B (O) : Servo\DC Motor EPWM5
GPIO_SetupPinOptions(9, GPIO_OUTPUT,(GPIO_OPENDRAIN|GPIO_PULLUP));//(GPIO_PULLUP));//(GPIO_OPENDRAIN|GPIO_PULLUP));
GPIO_SetupPinMux(10,GPIO_MUX_CPU1,1); // EPWM6A (O) : Servo\DC Motor EPWM6
GPIO_SetupPinOptions(10, GPIO_OUTPUT,(GPIO_OPENDRAIN|GPIO_PULLUP));//(GPIO_PULLUP));//(GPIO_OPENDRAIN|GPIO_PULLUP));
GPIO_SetupPinMux(11,GPIO_MUX_CPU1,1); // EPWM6B (O) : Servo\DC Motor EPWM6
GPIO_SetupPinOptions(11, GPIO_OUTPUT,(GPIO_OPENDRAIN|GPIO_PULLUP));//(GPIO_PULLUP));//(GPIO_OPENDRAIN|GPIO_PULLUP));
EDIS;
PWM_init();