c2000ware-core-sdk/driverlib/.meta/cmpss_lite/cmpss_lite.board.c.xdt

234 lines
7.8 KiB
Plaintext
Raw Normal View History

2023-06-24 09:05:38 +03:00
% var module = system.modules['/driverlib/cmpss_lite.js'];
% let Common = system.getScript("/driverlib/Common.js");
% var nameOfModule = "cmpss_lite";
% var nameOfPeripheral = module.peripheralName;
%%{
var hnMuxes = []
var lnMuxes = []
var hnMuxesOR = ""
var lnMuxesOR = ""
%%}
//*****************************************************************************
//
// CMPSS-LITE Configurations
//
//*****************************************************************************
void `nameOfPeripheral`_init(){
% for(var i = 0; i < module.$instances.length; i++)
% {
% var instance = module.$instances[i];
`instance.$name`_init();
% }
}
%if (module != null)
% {
% for(var i = 0; i < module.$instances.length; i++) {
% var instance = module.$instances[i];
% var instanceNumber = instance.cmpssLiteBase.match(/\d+/)[0]
void `instance.$name`_init(){
% if( ["F280013x", "F280015x"].includes(system.deviceData.deviceId)){
%%{
if (i == 0)
{
lnMuxesOR += "ASYSCTL_CMPLNMUX_SELECT_"+instanceNumber
hnMuxesOR += "ASYSCTL_CMPHNMUX_SELECT_"+instanceNumber
}
else
{
lnMuxesOR += " | " + "ASYSCTL_CMPLNMUX_SELECT_"+instanceNumber
hnMuxesOR += " | " + "ASYSCTL_CMPHNMUX_SELECT_"+instanceNumber
}
%%}
//
// Select the value for CMP`instanceNumber`HPMXSEL.
//
% var tempPositiveInstance = "ASYSCTL_CMPHPMUX_SELECT_"+instanceNumber
ASysCtl_selectCMPHPMux(`tempPositiveInstance`,`instance.asysCMPHPMXSELValue`U);
%if (instance.highCompNegative != "CMPSS_INSRC_DAC"){
//
// Select the value for CMP`instanceNumber`HNMXSEL.
//
% var tempNegativeInstance = "ASYSCTL_CMPHNMUX_SELECT_"+instanceNumber
ASysCtl_selectCMPHNMuxValue(`tempNegativeInstance`,`instance.asysCMPHNMXSELValue`U);
%}
//
// Select the value for CMP`instanceNumber`LPMXSEL.
//
% tempPositiveInstance = "ASYSCTL_CMPLPMUX_SELECT_"+instanceNumber
ASysCtl_selectCMPLPMux(`tempPositiveInstance`,`instance.asysCMPLPMXSELValue`U);
%if (instance.lowCompNegative != "CMPSS_INSRC_DAC"){
//
// Select the value for CMP`instanceNumber`LNMXSEL.
//
% tempNegativeInstance = "ASYSCTL_CMPLNMUX_SELECT_"+instanceNumber
ASysCtl_selectCMPLNMuxValue(`tempNegativeInstance`,`instance.asysCMPLNMXSELValue`U);
%}
% }
% var baseName = instance.$name + "_BASE";
%%{
var configHighString = "("
configHighString += instance.highCompNegative
if (instance.highCompInvert){
configHighString += " | CMPSS_INV_INVERTED"
}
if (instance.highCompAsynch){
configHighString += " | CMPSS_OR_ASYNC_OUT_W_FILT"
}
configHighString += ")"
%%}
//
// Sets the configuration for the high comparator.
//
CMPSSLITE_configHighComparator(`baseName`,`configHighString`);
%%{
var configLowString = "("
configLowString += instance.lowCompNegative
if (instance.lowCompInvert){
configLowString += " | CMPSS_INV_INVERTED"
}
if (instance.lowCompAsynch){
configLowString += " | CMPSS_OR_ASYNC_OUT_W_FILT"
}
configLowString += ")"
%%}
//
// Sets the configuration for the low comparator.
//
CMPSSLITE_configLowComparator(`baseName`,`configLowString`);
//
// Sets the configuration for the internal comparator DACs.
//
% if(instance.dacValLoad == "CMPSSLITE_DACVAL_PWMSYNC"){
//
// - ePWM module must be configured before using here.
//
% }
% if(["F280013x", "F280015x"].includes(system.deviceData.deviceId)){
CMPSSLITE_configDAC(`baseName`, `instance.dacValLoad`);
% }
% else{
CMPSSLITE_configDAC(`baseName`,(`instance.dacValLoad` | `instance.dacRefVoltage` | `instance.dacValSource`));
% }
//
// Sets the value of the internal DAC of the high comparator.
//
CMPSSLITE_setDACValueHigh(`baseName`,`instance.dacValHigh`U);
//
// Sets the value of the internal DAC of the low comparator.
//
CMPSSLITE_setDACValueLow(`baseName`,`instance.dacValLow`U);
//
// Configures the digital filter of the high comparator.
//
CMPSSLITE_configFilterHigh(`baseName`, `instance.samplePrescaleHigh`U, `instance.sampleWindowHigh`U, `instance.thresholdHigh`U);
//
// Configures the digital filter of the low comparator.
//
CMPSSLITE_configFilterLow(`baseName`, `instance.samplePrescaleLow`U, `instance.sampleWindowLow`U, `instance.thresholdLow`U);
% if(instance.initFilterHigh){
//
// Initializes the digital filter of the high comparator.
//
CMPSSLITE_initFilterHigh(`baseName`);
% }
% if(instance.initFilterLow){
//
// Initializes the digital filter of the low comparator.
//
CMPSSLITE_initFilterLow(`baseName`);
% }
% if((instance.highCTRIPOUT != "CMPSS_TRIPOUT_ASYNC_COMP") || (instance.highCTRIP != "CMPSS_TRIP_ASYNC_COMP")){
//
// Sets the output signal configuration for the high comparator.
//
CMPSSLITE_configOutputsHigh(`baseName`,(`instance.highCTRIPOUT` | `instance.highCTRIP`));
% }
% if((instance.lowCTRIPOUT != "CMPSS_TRIPOUT_ASYNC_COMP") || (instance.lowCTRIP != "CMPSS_TRIP_ASYNC_COMP")){
//
// Sets the output signal configuration for the low comparator.
//
CMPSSLITE_configOutputsLow(`baseName`,(`instance.lowCTRIPOUT` | `instance.lowCTRIP`));
% }
//
// Sets the comparator hysteresis settings.
//
CMPSSLITE_setHysteresis(`baseName`,`instance.hysteresisVal`U);
% if(instance.latchResetHigh){
//
// Enables reset of HIGH comparator digital filter output latch on PWMSYNC
//
CMPSSLITE_enableLatchResetOnPWMSYNCHigh(`baseName`);
% }
% else{
//
// Disables reset of HIGH comparator digital filter output latch on PWMSYNC
//
CMPSSLITE_disableLatchResetOnPWMSYNCHigh(`baseName`);
% }
% if(instance.latchResetLow){
//
// Enables reset of LOW comparator digital filter output latch on PWMSYNC
//
CMPSSLITE_enableLatchResetOnPWMSYNCLow(`baseName`);
% }
% else{
//
// Disables reset of LOW comparator digital filter output latch on PWMSYNC
//
CMPSSLITE_disableLatchResetOnPWMSYNCLow(`baseName`);
% }
% if( ["F28002x", "F28003x", "F28004x","F2838x", "F280013x", "F280015x"].includes(Common.getDeviceName())){
//
// Sets the ePWM module blanking signal that holds trip in reset.
//
CMPSSLITE_configBlanking(`baseName`,`instance.configBlanking`U);
% if(instance.enableBlanking){
//
// Enables an ePWM blanking signal to hold trip in reset.
//
CMPSSLITE_enableBlanking(`baseName`);
% }
% else{
//
// Disables an ePWM blanking signal from holding trip in reset.
//
CMPSSLITE_disableBlanking(`baseName`);
% }
% }
//
// Configures whether or not the digital filter latches are reset by PWMSYNC
//
CMPSSLITE_configLatchOnPWMSYNC(`baseName`,`instance.configLatchHigh`,`instance.configLatchLow`);
% if(instance.enableModule){
//
// Enables the CMPSSLITE module.
//
CMPSSLITE_enableModule(`baseName`);
% }
% else{
//
// Disables the CMPSSLITE module.
//
CMPSSLITE_disableModule(`baseName`);
% }
//
// Delay for CMPSSLITE DAC to power up.
//
DEVICE_DELAY_US(500);
% if(instance.clearFilterLatchHigh){
//
// Causes a software reset of the high comparator digital filter output latch.
//
CMPSSLITE_clearFilterLatchHigh(`baseName`);
% }
% if(instance.clearFilterLatchLow){
//
// Causes a software reset of the low comparator digital filter output latch.
//
CMPSSLITE_clearFilterLatchLow(`baseName`);
% }
}
% }
%}