212 lines
9.0 KiB
JavaScript
212 lines
9.0 KiB
JavaScript
|
|
let Common = system.getScript("/driverlib/Common.js");
|
||
|
|
let Pinmux = system.getScript("/driverlib/pinmux.js");
|
||
|
|
let device_driverlib_peripheral =
|
||
|
|
system.getScript("/driverlib/device_driverlib_peripherals/" +
|
||
|
|
Common.getDeviceName().toLowerCase() + "_epwm.js");
|
||
|
|
function onChangeEnableDisable(inst, ui)
|
||
|
|
{
|
||
|
|
if (inst.epwmDiodeEmulation_enableDE)
|
||
|
|
{
|
||
|
|
ui.epwmDiodeEmulation_selExitMode.hidden = false;
|
||
|
|
ui.epwmDiodeEmulation_TripLSelect.hidden = false;
|
||
|
|
ui.epwmDiodeEmulation_TripHSelect.hidden = false;
|
||
|
|
ui.epwmDiodeEmulation_enableDiodeEmulationModeCounter.hidden = false;
|
||
|
|
ui.epwmDiodeEmulation_enablePWMTrip.hidden = false;
|
||
|
|
if(inst.epwmDiodeEmulation_selExitMode === device_driverlib_peripheral.EPWM_DiodeEmulationMode[0].name)
|
||
|
|
{
|
||
|
|
ui.epwmDiodeEmulation_Reentrycnt.hidden = false;
|
||
|
|
}else if(inst.epwmDiodeEmulation_selExitMode === device_driverlib_peripheral.EPWM_DiodeEmulationMode[1].name)
|
||
|
|
{
|
||
|
|
ui.epwmDiodeEmulation_Reentrycnt.hidden = true;
|
||
|
|
}
|
||
|
|
if(inst.epwmDiodeEmulation_enableDiodeEmulationModeCounter)
|
||
|
|
{
|
||
|
|
ui.epwmDiodeEmulation_stepIncr.hidden = false;
|
||
|
|
ui.epwmDiodeEmulation_stepDecr.hidden = false;
|
||
|
|
ui.epwmDiodeEmulation_stepThreshold.hidden = false;
|
||
|
|
}else
|
||
|
|
{
|
||
|
|
ui.epwmDiodeEmulation_stepIncr.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_stepDecr.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_stepThreshold.hidden = true;
|
||
|
|
}
|
||
|
|
for (var dePwmChannel in device_driverlib_peripheral.EPWM_DE_CHANNEL)
|
||
|
|
{
|
||
|
|
var deOutput = device_driverlib_peripheral.EPWM_DE_CHANNEL[dePwmChannel];
|
||
|
|
ui["epwmDiodeEmulation_" + deOutput.name + "_selTrip"].hidden = false;
|
||
|
|
ui["epwmDiodeEmulation_" + deOutput.name + "_configOutput"].hidden = false;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
ui.epwmDiodeEmulation_selExitMode.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_TripLSelect.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_TripHSelect.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_enableDiodeEmulationModeCounter.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_stepIncr.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_stepDecr.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_stepThreshold.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_Reentrycnt.hidden = true;
|
||
|
|
ui.epwmDiodeEmulation_enablePWMTrip.hidden = true;
|
||
|
|
|
||
|
|
inst.epwmDiodeEmulation_selExitMode = "EPWM_DIODE_EMULATION_CBC";
|
||
|
|
inst.epwmDiodeEmulation_TripLSelect = "EPWM_DE_TRIP_SRC_INPUTXBAR_OUT1";
|
||
|
|
inst.epwmDiodeEmulation_TripHSelect = "EPWM_DE_TRIP_SRC_INPUTXBAR_OUT1";
|
||
|
|
inst.epwmDiodeEmulation_enableDiodeEmulationModeCounter = false;
|
||
|
|
inst.epwmDiodeEmulation_stepIncr = 0;
|
||
|
|
inst.epwmDiodeEmulation_stepDecr = 0;
|
||
|
|
inst.epwmDiodeEmulation_stepThreshold = 0;
|
||
|
|
inst.epwmDiodeEmulation_Reentrycnt = 0;
|
||
|
|
inst.epwmDiodeEmulation_enablePWMTrip = false;
|
||
|
|
for (var dePwmChannel in device_driverlib_peripheral.EPWM_DE_CHANNEL)
|
||
|
|
{
|
||
|
|
var deOutput = device_driverlib_peripheral.EPWM_DE_CHANNEL[dePwmChannel];
|
||
|
|
ui["epwmDiodeEmulation_" + deOutput.name + "_selTrip"].hidden = true;
|
||
|
|
ui["epwmDiodeEmulation_" + deOutput.name + "_configOutput"].hidden = true;
|
||
|
|
inst["epwmDiodeEmulation_" + deOutput.name + "_selTrip"] = "EPWM_DE_SRC_TRIPL";
|
||
|
|
inst["epwmDiodeEmulation_" + deOutput.name + "_configOutput"] = "EPWM_DE_SYNC_TRIPHorL";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// make sure to add conditionals to not have the same trip signal for triph / tripl ?
|
||
|
|
var config = [
|
||
|
|
{
|
||
|
|
name : "epwmDiodeEmulation_enableDE",
|
||
|
|
displayName : "Enable Diode Emulation Mode",
|
||
|
|
description : 'Enables Diode Emulation Mode, by default Diode Emulation is cleared',
|
||
|
|
hidden : false,
|
||
|
|
default : false,
|
||
|
|
onChange : onChangeEnableDisable
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_enablePWMTrip",
|
||
|
|
displayName : "Enable PWM Trip Output",
|
||
|
|
description : 'If enabled, PWM Trip will not bypass diode emulation logic',
|
||
|
|
hidden : true,
|
||
|
|
default : false,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_selExitMode",
|
||
|
|
displayName : "Diode Emulation Mode Select",
|
||
|
|
description : 'The event for which the diode emulation mode exits',
|
||
|
|
hidden : true,
|
||
|
|
default : device_driverlib_peripheral.EPWM_DiodeEmulationMode[0].name,
|
||
|
|
options : device_driverlib_peripheral.EPWM_DiodeEmulationMode,
|
||
|
|
onChange : onChangeEnableDisable
|
||
|
|
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_Reentrycnt",
|
||
|
|
displayName : "Reentry Delay",
|
||
|
|
description : 'Delay value until diode emulation can exit in terms of PWMSYNCOUT (0-255)',
|
||
|
|
hidden : true,
|
||
|
|
default : 0,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_TripLSelect",
|
||
|
|
displayName : "Input TripL Select",
|
||
|
|
description : 'Input trip low select from Xbar or CMPSS',
|
||
|
|
hidden : true,
|
||
|
|
default : device_driverlib_peripheral.EPWM_DiodeEmulationTripSource[0].name,
|
||
|
|
options : device_driverlib_peripheral.EPWM_DiodeEmulationTripSource
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_TripHSelect",
|
||
|
|
displayName : "Input TripH Select",
|
||
|
|
description : 'Input trip high select from Xbar or CMPSS',
|
||
|
|
hidden : true,
|
||
|
|
default : device_driverlib_peripheral.EPWM_DiodeEmulationTripSource[0].name,
|
||
|
|
options : device_driverlib_peripheral.EPWM_DiodeEmulationTripSource
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "GROUP_DEMON",
|
||
|
|
displayName: "Diode Emulation Monitor Configuration",
|
||
|
|
description: "",
|
||
|
|
longDescription: "",
|
||
|
|
config: [
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_enableDiodeEmulationModeCounter",
|
||
|
|
displayName : "Enable Monitor Counter",
|
||
|
|
description : 'Enabling this ',
|
||
|
|
hidden : true,
|
||
|
|
default : false,
|
||
|
|
onChange : onChangeEnableDisable
|
||
|
|
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_stepIncr",
|
||
|
|
displayName : "Increment Stepsize of Counter when TripH or TripL Occurs",
|
||
|
|
description : 'Increments count by defined step size when TripH or TripL occurs(256 is max step size)',
|
||
|
|
hidden : true,
|
||
|
|
default : 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_stepDecr",
|
||
|
|
displayName : "Decrement Stepsize of Counter when TripH or TripL Occurs",
|
||
|
|
description : 'Decrements count by defined step size when TripH or TripL occurs(256 is max step size)',
|
||
|
|
hidden : true,
|
||
|
|
default : 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_stepThreshold",
|
||
|
|
displayName : "Threshold for Number of TripH or TripL Signal Occurrences",
|
||
|
|
description : 'When threshold is reached, a trip pulse is generated and counter is cleared',
|
||
|
|
hidden : true,
|
||
|
|
default : 0
|
||
|
|
},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
];
|
||
|
|
|
||
|
|
for (var dePwmChannel in device_driverlib_peripheral.EPWM_DE_CHANNEL)
|
||
|
|
{
|
||
|
|
var deOutput = device_driverlib_peripheral.EPWM_DE_CHANNEL[dePwmChannel];
|
||
|
|
var deOutputconfigs = []
|
||
|
|
var deOutput_Configs = [
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_" + deOutput.name + "_selTrip",
|
||
|
|
displayName : deOutput.displayName.replace("emulation", "Emulation").replace("channel", "Channel") + " Trip Select",
|
||
|
|
description : 'Trip select for diode emulation output',
|
||
|
|
hidden : true,
|
||
|
|
default : device_driverlib_peripheral.EPWM_DE_SRC[0].name,
|
||
|
|
options : device_driverlib_peripheral.EPWM_DE_SRC,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "epwmDiodeEmulation_" + deOutput.name + "_configOutput",
|
||
|
|
displayName : deOutput.displayName.replace("emulation", "Emulation").replace("channel", "Channel") + " Output Select",
|
||
|
|
description : 'Set diode emulation output channel A to tripHortripL, inverted tripHortripL, constant low or high',
|
||
|
|
hidden : true,
|
||
|
|
default : device_driverlib_peripheral.EPWM_DiodeEmulationSignal[0].name,
|
||
|
|
options : device_driverlib_peripheral.EPWM_DiodeEmulationSignal,
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
]
|
||
|
|
|
||
|
|
config = config.concat([{
|
||
|
|
name: "GROUP_DE_Output_" + deOutput.name,
|
||
|
|
displayName: deOutput.displayName.replace("emulation", "Emulation").replace("channel", "Channel") + " Output Configuration",
|
||
|
|
description: "",
|
||
|
|
longDescription: "",
|
||
|
|
config: deOutput_Configs
|
||
|
|
}]);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
var epwmDiodeEmulationSubmodule = {
|
||
|
|
displayName: "EPWM Diode Emulation",
|
||
|
|
maxInstances: Common.peripheralCount("EPWM"),
|
||
|
|
defaultInstanceName: "EPWM_DE",
|
||
|
|
description: "Enhanced Pulse Width Modulator Diode Emulation Configuration",
|
||
|
|
config: config,
|
||
|
|
templates: {
|
||
|
|
boardc : "", //"/gpio/gpio.board.c.xdt",
|
||
|
|
boardh : ""//"/gpio/gpio.board.h.xdt"
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
exports = epwmDiodeEmulationSubmodule;
|