%%{ 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
SYNCOUTCTR==ZRO
Digital Compare syncCTR_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()` % }