Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hello Experts,
I am trying to set up pwm trip from gpio, I am using GPIO 42 as an input.
This is what I have so far:
// GPIO42 GPIO_setMasterCore(42, GPIO_CORE_CPU1); GPIO_setPinConfig(GPIO_42_GPIO42); GPIO_setDirectionMode(42, GPIO_DIR_MODE_IN); GPIO_setPadConfig(42, GPIO_PIN_TYPE_PULLUP);
void configurePWMTripFromGPIO()
{
//Select GPIO42 as INPUTXBAR1
XBAR_setInputPin(XBAR_INPUT1, 42);
//inputxbar1 trip
XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX01_INPUTXBAR1);
// Disable all the muxes first
XBAR_disableEPWMMux(XBAR_TRIP4, 0xFFFF);
// Enable Mux 0 OR Mux 4 to generate TRIP4
XBAR_enableEPWMMux(XBAR_TRIP4, XBAR_MUX00 | XBAR_MUX04 | XBAR_MUX10 | XBAR_MUX01);
//Setup trip zone actions
// EPWMxA will go low
// EPWMxB will go low
EPWM_setTripZoneAction(EPWM1_BASE, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction(EPWM1_BASE, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction(EPWM2_BASE, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction(EPWM2_BASE, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction(EPWM3_BASE, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction(EPWM3_BASE, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW);
//Enable the PWM trip zone signals (OSH1)
EPWM_enableTripZoneSignals(EPWM1_BASE, EPWM_TZ_SIGNAL_OSHT1);
EPWM_enableTripZoneSignals(EPWM2_BASE, EPWM_TZ_SIGNAL_OSHT1);
EPWM_enableTripZoneSignals(EPWM3_BASE, EPWM_TZ_SIGNAL_OSHT1);
}
This pin(GPIO42) is already configured as an 'input' as it is also being used in some other control logic.
- Firstly my question here is , it possible to use the same GPIO pin for setting up the pwm trips? or should it be a dedicated GPIO pin ?
- Secondly, How do I control the logic level of the GPIO based pwm trip event? What I mean by this is 'Only if GPIO42 is LOW, activate the pwm trip'
In future , if I want the pwm trip event to be active whenever GPIO42 is HIGH, How would I go about setting this up?
Thanks,
AK
