%%{
var module = system.modules['/driverlib/epwm.js'];
let Common = system.getScript("/driverlib/Common.js");
let Pinmux = system.getScript("/driverlib/pinmux.js");
let PinmuxMigrations = system.getScript("/driverlib/pinmux/pinmux_migration.js");
var nameOfModule = "epwm";
var nameOfPeripheral = module.peripheralName;
function getConfigAndValue(arrayConfigs, subModule)
{
var selectedSettingsSummary = "";
for (var modConfig of arrayConfigs)
{
//console.log(modConfig);
//Common.printDebugObject(modConfig);
if (modConfig.config && !modConfig.config.deprecated)
{
selectedSettingsSummary += getConfigAndValue(modConfig.config, subModule)
}
else
{
if (!modConfig.deprecated)
{
var modConfigName = modConfig.name;
var modConfigDisplayName = modConfig.displayName;
//console.log(modConfigDisplayName);
//console.log(subModule[modConfigName]);
selectedSettingsSummary += modConfigDisplayName + ": " + subModule[modConfigName] + "
";
}
}
}
return selectedSettingsSummary;
}
function getSubModuleDescriptionSummary(instance, subModule)
{
var topModule = instance.$module;
var selectedSettingsSummary = "";
var submoduleConfig = null;
//console.log(subModule)
topModule.config.find(input => {
if (input.name === subModule)
{
submoduleConfig = input.config;
}
})
selectedSettingsSummary = getConfigAndValue(submoduleConfig, instance);
return selectedSettingsSummary;
}
if (module != null)
{
%%}
digraph {
graph [fontname = "helvetica"];
node [fontname = "helvetica"];
edge [fontname = "helvetica"];
graph [mclimit=50 nodesep=0.5 rankdir=LR ranksep=1.25]
EPWMXBAR [label= <
EPWM XBAR
|
| TRIP4 |
| TRIP5 |
| TRIP7 |
| TRIP8 |
| TRIP9 |
| TRIP10 |
| TRIP11 |
| TRIP12 |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
%%{
for(var i = 0; i < module.$instances.length; i++) {
var instance = module.$instances[i];
let instancePinmux = instance[nameOfModule];
let solution = instancePinmux.$solution;
let peripheral = system.deviceData.peripherals[solution.peripheralName];
let epwmInstanceName = solution.peripheralName.toLowerCase();
var timebase = "GROUP_EPWM_TB";
var timebaseSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, timebase);
var digitalCompare = "GROUP_EPWM_DC";
var digitalCompareSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, digitalCompare);
var counterCompare = "GROUP_EPWM_CC";
var counterCompareSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, counterCompare);
var actionQualifier = "GROUP_EPWM_AQ";
var actionQualifierSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, actionQualifier);
var deadband = "GROUP_EPWM_DB";
var deadbandSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, deadband);
var tripZone = "GROUP_EPWM_TZ";
var tripZoneSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, tripZone);
var chopper = "GROUP_EPWM_PC";
var chopperSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, chopper);
var eventTrigger = "GROUP_EPWM_ET";
var eventTriggerSelectedSettingsSummary = getSubModuleDescriptionSummary(instance, eventTrigger);
%%}
subgraph cluster_`epwmInstanceName` {
label = "`epwmInstanceName.toUpperCase()` = `instance.$name`";
color=red;
`epwmInstanceName`_TB [label= <
Time Base
|
| SYNCIN | `timebaseSelectedSettingsSummary` | CTR==PRD |
| SYNCOUT | CTR==ZRO |
| Digital Compare sync | CTR_DIR |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_DC [label= <
EPWM Digital Compare
|
| DCAH | `digitalCompareSelectedSettingsSummary` | DCAEVT1.force |
| DCAL | DCAEVT2.force |
| DCAEVT1.sync |
| DCAEVT2.sync |
| DCAEVT1.inter |
| DCAEVT1.soc |
| DCBH | DCBEVT1.force |
| DCBL | DCBEVT2.force |
| DCBEVT1.sync |
| DCBEVT2.sync |
| DCBEVT1.inter |
| DCBEVT1.soc |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_CC [label= <
EPWM Counter Compare
|
| `counterCompareSelectedSettingsSummary` | CTR == CMPA |
| CTR == CMPB |
| CTR == CMPC |
| CTR == CMPD |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_AQ [label= <
EPWM Action Qualifier
|
| PRD | `actionQualifierSelectedSettingsSummary` | EPWMA |
| ZERO | EPWMB |
| DIR |
| T1 |
| T2 |
| CMPA |
| CMPB |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_DB [label= <
EPWM Deadband
|
| EPWMA IN | `deadbandSelectedSettingsSummary` | EPWMA |
| EPWMB IN | EPWMB |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_PC [label= <
EPWM Chopper
|
| EPWMA IN | `chopperSelectedSettingsSummary` | EPWMA |
| EPWMB IN | EPWMB |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_TZ [label= <
EPWM Trip-Zone
|
| EPWMA IN | `tripZoneSelectedSettingsSummary` | EPWMA |
| EPWMB IN | EPWMB |
| TZINT |
| Digital Compare force |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
`epwmInstanceName`_ET [label= <
EPWM Event Trigger
|
| Timebase Signals | `eventTriggerSelectedSettingsSummary` | INT |
| Counter Compare Signals | SOCA |
| Digital Compare Signals | SOCB |
>
color=black shape=plaintext fillcolor="#F0F0F0" style=filled]
{rank=same `epwmInstanceName`_TB; `epwmInstanceName`_CC};
{rank=same `epwmInstanceName`_TZ; `epwmInstanceName`_DC};
{rank=same `epwmInstanceName`_DB; `epwmInstanceName`_ET};
}
`epwmInstanceName`_TB:s -> `epwmInstanceName`_CC:n [label="TBCTR"];
`epwmInstanceName`_DC:n -> `epwmInstanceName`_TZ:`epwmInstanceName`_tz_dcforce:s;
`epwmInstanceName`_TB:`epwmInstanceName`_tb_prd:e -> `epwmInstanceName`_AQ:`epwmInstanceName`_aq_prd:w;
`epwmInstanceName`_TB:`epwmInstanceName`_tb_zero:e -> `epwmInstanceName`_AQ:`epwmInstanceName`_aq_zero:w;
`epwmInstanceName`_TB:`epwmInstanceName`_tb_dir:e -> `epwmInstanceName`_AQ:`epwmInstanceName`_aq_dir:w;
`epwmInstanceName`_CC:`epwmInstanceName`_cc_cmpa:e -> `epwmInstanceName`_AQ:`epwmInstanceName`_aq_cmpa:w;
`epwmInstanceName`_CC:`epwmInstanceName`_cc_cmpb:e -> `epwmInstanceName`_AQ:`epwmInstanceName`_aq_cmpb:w;
`epwmInstanceName`_AQ:`epwmInstanceName`_aq_epwma:e -> `epwmInstanceName`_DB:`epwmInstanceName`_db_epwma_in:w
`epwmInstanceName`_DB:`epwmInstanceName`_db_epwma_out:e -> `epwmInstanceName`_PC:`epwmInstanceName`_pc_epwma_in:w
`epwmInstanceName`_PC:`epwmInstanceName`_pc_epwma_out:e -> `epwmInstanceName`_TZ:`epwmInstanceName`_tz_epwma_in:w
`epwmInstanceName`_AQ:`epwmInstanceName`_aq_epwmb:e -> `epwmInstanceName`_DB:`epwmInstanceName`_db_epwmb_in:w
`epwmInstanceName`_DB:`epwmInstanceName`_db_epwmb_out:e -> `epwmInstanceName`_PC:`epwmInstanceName`_pc_epwmb_in:w
`epwmInstanceName`_PC:`epwmInstanceName`_pc_epwmb_out:e -> `epwmInstanceName`_TZ:`epwmInstanceName`_tz_epwmb_in:w
`epwmInstanceName`_TB:`epwmInstanceName`_syncout -> SYNCOUT_`epwmInstanceName.toUpperCase()`
%%{
var InterfaceNames = Object.keys(system.deviceData.interfaces["EPWM"].interfacePins);
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
var interfaceRenameCompleted = PinmuxMigrations.interfacePinMuxMigrationRenameCompleted(interfaceName, "EPWM")
var legacyInclusiveNames = PinmuxMigrations.interfaceInclusiveRename(interfaceRenameCompleted, "EPWM");
let pinName = legacyInclusiveNames.inclusiveName.toLowerCase().replace("#", "").replace("@", "") + "Pin";
var a_or_b = (pinName.replace("_", "").includes("epwma"))?'a':'b';
if (instance[nameOfModule][pinName] != null){
var gpioName = instance[nameOfModule][pinName].$solution.devicePinName;
%%}
`epwmInstanceName`_TZ:`epwmInstanceName`_tz_epwm`a_or_b`_out:e -> `gpioName`
%%{
}
}
}
}
%%}
% let syncGen = system.getTemplate("/driverlib/sync/sync.epwm.dot.xdt");
`syncGen()`
%
}