{"id":8325,"date":"2021-10-11T10:07:08","date_gmt":"2021-10-11T10:07:08","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=8325"},"modified":"2026-02-26T17:10:26","modified_gmt":"2026-02-26T17:10:26","slug":"sort-select-multilevel-pwm","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm","title":{"rendered":"SS-PWM &#8211; Multilevel PWM with Sort-&#038;-Select balancing"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Multilevel-PWM-operation\" >Multilevel PWM operation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Simulink-SS-PWM-block\" >Simulink SS-PWM block<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Signal-specification\" >Signal specification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Parameters\" >Parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#PLECS-SS-PWM-block\" >PLECS SS-PWM block<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Signal-specification-2\" >Signal specification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Parameters-2\" >Parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#C-functions\" >C++ functions<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Specific-to-SS-PWM\" >Specific to SS-PWM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\/#Functions-common-to-all-PWM-drivers\" >Functions common to all PWM drivers<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p>The SS-PWM peripheral provides a specialized Pulse Width Modulation scheme (PWM) for multilevel converters, which directly integrates means for balancing series-connected submodules. Such an approach has received quick and widespread adoption, notably for <a href=\"https:\/\/imperix.com\/products\/modular-multilevel-converter\/\">Modular Multilevel Converters<\/a>, Cascaded H-Bridges, and similar converter topologies.<\/p>\n\n\n\n<p>The SS-PWM block generates gate driving signals, which are dynamically assigned to suitable submodules following a &#8220;Sort and select&#8221; algorithm. The corresponding operating principle is relatively simple:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>At first, submodules are <strong>sorted <\/strong>according to their capacitor voltage. <\/li>\n\n\n\n<li>Then, the submodules <strong>selected<\/strong> to contribute to the arm voltage are those with the highest charge level when the power is flowing out of the arm, respectively with the least charge level when the power is flowing into the arm. This way, some balancing is achieved over time so that all submodules converge toward the same charge level.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-multilevel-pwm-operation\"><span class=\"ez-toc-section\" id=\"Multilevel-PWM-operation\"><\/span>Multilevel PWM operation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The FPGA-based implementation of the SS-PWM is detailed in <a href=\"https:\/\/imperix.com\/doc\/implementation\/sort-select-balancing-for-mmc\">TN160<\/a>. It is inspired by the <a href=\"https:\/\/patents.google.com\/patent\/DE10103031A1\/ja\">original patent<\/a> by R. Marquardt.  The implemented multilevel modulator features the following key characteristics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All submodules are continuously sorted. In other words, <strong>all ranks are identified<\/strong>, as opposed to techniques that only identify the most and least charged submodules.<\/li>\n\n\n\n<li>By design, it is guaranteed that <strong>only one commutation can occur at once<\/strong>. This ensures that no ineffective modulation actions are made and that switching losses are minimized.<\/li>\n\n\n\n<li>Both <strong>half-bridge<\/strong> and <strong>full-bridge<\/strong> submodules are supported.<\/li>\n\n\n\n<li><strong>Up to N=23 submodules<\/strong> per arm are supported.<\/li>\n\n\n\n<li>Both <strong>PWM<\/strong> and <strong>staircase modulation<\/strong> approaches are supported.<\/li>\n<\/ul>\n\n\n\n<p>Similarly to other PWM modules, the following parameters of the multilevel PWM module can be configured:<\/p>\n\n\n\n<ul id=\"block-b1bd79db-e5b9-4fce-bcac-8970dde1a64a\" class=\"wp-block-list\">\n<li>The sampling frequency is freely configurable (identical to the control interrupt frequency).<\/li>\n\n\n\n<li>The switching frequency is freely configurable.<\/li>\n\n\n\n<li>PWM update is possible once or twice per period (when the carrier reaches its minimum and\/or maximum).<\/li>\n\n\n\n<li>Complementary High and Low signals offer a configurable dead-time generation.<\/li>\n\n\n\n<li>Multilevel PWM outputs can be activated or deactivated during the operation.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simulink-SS-PWM-block\"><\/span>Simulink SS-PWM block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Signal-specification\"><\/span>Signal specification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The input <code>m<\/code> is the modulation signal. Its range is [0; N] in <code>half-bridge<\/code> mode and [-N; N] in <code>full-bridge<\/code> mode. N is the number of submodules per arm.<\/li>\n\n\n\n<li>The input signal <code>sim V<\/code> is a vector containing the submodules voltages. This input is only effective during simulation. Measurements are directly taken from the corresponding analog input channels during real-time operation.<\/li>\n\n\n\n<li>The input signal <code>sim I<\/code> corresponds to the arm current and is only used for simulation.<\/li>\n\n\n\n<li>The input signal <code>&gt;<\/code> is the clock input and must be connected to the CONFIG block or to an independent CLK block. When connected to a variable-frequency clock, the switching frequency can be tuned during runtime (see <a href=\"https:\/\/imperix.com\/doc\/help\/variable-frequency-operation\">PN121<\/a>).<\/li>\n\n\n\n<li>The outputs are the generated PWM signals, according to the block configuration. The outputs are only used for simulation.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"932\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-26.png\" alt=\"\" class=\"wp-image-35732\" style=\"width:190px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-26.png 496w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-26-160x300.png 160w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"SVPWMSpacevectorPWM-Parameters\"><span class=\"ez-toc-section\" id=\"Parameters\"><\/span>Parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Device ID<\/code>&nbsp;selects which B-Box\/B-Board to address when used in a multi-device configuration.<\/li>\n\n\n\n<li><code>Output mode<\/code> selects between complementary signals with a deadtime, a single PWM with a global active signal or a single PWM. <\/li>\n\n\n\n<li><code>Start channel<\/code> and <code>Number of channels<\/code> defines the number of submodules per modulator, with a maximum of 23 modules, by specifying the analog input channels. Each analog input channel correspond to one submodule. The PWM outputs are automatically assigned to each analog input.<br><strong>B-Box 3:<\/strong> The maximum number of submodules and the corresponding input channels are limited to 8.<\/li>\n\n\n\n<li><code>Submodules topology<\/code>&nbsp;defines if the modules are half-bridge or full-bridge modules.<\/li>\n\n\n\n<li><code>Current input channel<\/code>&nbsp;selects the analog input channel of the arm current measurement.<br><strong>B-Box 3: <\/strong>The current input channel must be between 8 and 15.<\/li>\n\n\n\n<li><code>Invert sorting logic<\/code> inverts the sorting logic of the SS-PWM sorting algorithm. As described by the schematic below, if a positive\/negative measured current results in an increase\/decrease of measured voltage, respectively, then the logic is non-inverted. On the other hand, the sorting logic must be inverted if a positive\/negative measured current results in a decrease\/increase in measured voltage, respectively. Also, this parameter being purely defined by the hardware, it is only used for code generation and has no effect in simulation mode.<\/li>\n\n\n\n<li><code>Show \"activate\" input<\/code> makes the&nbsp;<code>A<\/code>&nbsp;(active) signal input visible. If not checked, the SS-PWM block is always active by default (once the controller outputs are enabled).<\/li>\n\n\n\n<li><code>Activation mode<\/code> specifies if the activate input is <em>global<\/em> or <em>per submodule<\/em>. In the <em>global<\/em> mode, the activate signal is one-dimensional and applied to all submodules. In the <em>per submodule<\/em> mode, the activate signal is an array with one signal per submodule.<br><strong>B-Box 3:<\/strong> Only the <em>global<\/em> mode is supported and the option is therefore not shown.<\/li>\n\n\n\n<li>Carrier type&nbsp;sets the carrier to TRIANGLE, INVTRIANGLE,<em> or No Carrier (Staircase modulation)<\/em>. This option can be used to either generate N+1 or 2N+1 level output waveforms.<\/li>\n\n\n\n<li><code><code>PWM parameters update rate<\/code><\/code>&nbsp;selects when the duty-cycle and phase parameters are applied.\n<ul class=\"wp-block-list\">\n<li><em>Single-rate<\/em>: they are applied at the end of the carrier period.<\/li>\n\n\n\n<li><em>Double-rate<\/em>: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for <em>TRIANGLE <\/em>and <em>INVTRIANGLE <\/em>carriers only)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>Deadtime duration<\/code><span style=\"color: var(--global-palette4);\">: configures the dead-time duration.<\/span><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"354\" height=\"303\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/schematic-2.png\" alt=\"Typical arrangement of MMC submodules for multilevel PWM signals generation.\" class=\"wp-image-9066\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/schematic-2.png 354w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/schematic-2-300x257.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><figcaption class=\"wp-element-caption\">Analog input to PWM output mapping<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"153\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/Inverted_sorting-3.png\" alt=\"Definition of the arm current polarity for proper balancing of the MMC submodules.\" class=\"wp-image-8643\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/Inverted_sorting-3.png 360w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/Inverted_sorting-3-300x128.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><figcaption class=\"wp-element-caption\">Sorting logic configuration<\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"864\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-22.png\" alt=\"\" class=\"wp-image-35712\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-22.png 458w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-22-159x300.png 159w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"864\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-23.png\" alt=\"\" class=\"wp-image-35713\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-23.png 458w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-23-159x300.png 159w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The parameters\u00a0<code>dead-time<\/code>\u00a0and\u00a0<code>show \u201dactivate\u201d input<\/code>\u00a0are common to all multilevel PWM blocks and are further documented on the\u00a0<a href=\"https:\/\/imperix.com\/doc\/software\/pwm-pulse-width-modulation\">PWM page<\/a>.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"PLECS-SS-PWM-block\"><\/span>PLECS SS-PWM block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Signal-specification-2\"><\/span>Signal specification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The input <code>m<\/code> is the modulation signal. Its range is [0; N] in <code>half-bridge<\/code> mode and [-N; N] in <code>full-bridge<\/code> mode. N is the number of submodules per arm.<\/li>\n\n\n\n<li>The input signal <code>sim V<\/code> is a vector containing the submodules voltages. This input is only effective during simulation. Measurements are directly taken from the corresponding analog input channels during real-time operation.<\/li>\n\n\n\n<li>The input signal <code>sim I<\/code> corresponds to the arm current and is only used for simulation.<\/li>\n\n\n\n<li>The input signal <code>&gt;<\/code> is the clock input and must be connected to the CONFIG block or to an independent CLK block. When connected to a variable-frequency clock, the switching frequency can be tuned during runtime (see <a href=\"https:\/\/imperix.com\/doc\/help\/variable-frequency-operation\">PN121<\/a>).<\/li>\n\n\n\n<li>The outputs are the generated PWM signals, according to the block configuration. The outputs are only used for simulation.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"169\" height=\"227\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2022\/04\/SsPWM_plecs.png\" alt=\"Sort-&amp;-select multilevel PWM block plecs\" class=\"wp-image-11367\"\/><\/figure>\n<\/div>\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"SVPWMSpacevectorPWM-Parameters\"><span class=\"ez-toc-section\" id=\"Parameters-2\"><\/span>Parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Device ID<\/code>&nbsp;selects which B-Box\/B-Board to address when used in a multi-device configuration.<\/li>\n\n\n\n<li><code>Output mode<\/code> selects between complementary signals with a deadtime, a single PWM with a global active signal or a single PWM. <\/li>\n\n\n\n<li><code>Start channel<\/code> and <code>Number of channels<\/code> defines the number of submodules per modulator, with a maximum of 23 modules, by specifying the analog input channels. Each analog input channel correspond to one submodule. The PWM outputs are automatically assigned to each analog input.<br><strong>B-Box 3:<\/strong> The maximum number of submodules and the corresponding input channels are limited to 8.<\/li>\n\n\n\n<li><code>Submodules topology<\/code>&nbsp;defines if the modules are half-bridge or full-bridge modules.<\/li>\n\n\n\n<li><code>Current input channel<\/code>&nbsp;selects the analog input channel of the arm current measurement.<br><strong>B-Box 3: <\/strong>The current input channel must be between 8 and 15.<\/li>\n\n\n\n<li><code>Invert sorting logic<\/code> inverts the sorting logic of the SS-PWM sorting algorithm. As described by the schematic below, if a positive\/negative measured current results in an increase\/decrease of measured voltage, respectively, then the logic is non-inverted. On the other hand, the sorting logic must be inverted if a positive\/negative measured current results in a decrease\/increase in measured voltage, respectively. Also, this parameter being purely defined by the hardware, it is only used for code generation and has no effect in simulation mode.<\/li>\n\n\n\n<li><code>Carrier type<\/code>&nbsp;sets the carrier to TRIANGLE, INVTRIANGLE or No Carrier (Staircase modulation). This option can be used to either generate N+1 or 2N+1 level output waveforms.<\/li>\n\n\n\n<li><code>PWM activation<\/code> makes the&nbsp;A&nbsp;(active) signal input visible. By default, the SS-PWM block is always active (once the controller&#8217;s outputs are enabled).<\/li>\n\n\n\n<li><code>Activation mode<\/code> specifies if the activate input is <em>global<\/em> or <em>per submodule<\/em>. In the <em>global<\/em> mode, the activate signal is one-dimensional and applied to all submodules. In the <em>per submodule<\/em> mode, the activate signal is an array with one signal per submodule.<br><strong>B-Box 3:<\/strong> Only the <em>global<\/em> mode is supported and the option is therefore not shown.<\/li>\n\n\n\n<li><code><code>PWM parameters update rate<\/code><\/code>&nbsp;selects when the duty-cycle and phase parameters are applied.\n<ul class=\"wp-block-list\">\n<li><em>Once per PWM period<\/em>: they are applied at the end of the carrier period.<\/li>\n\n\n\n<li><em>Twice per PWM period<\/em>: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for <em>TRIANGLE <\/em>and <em>INVTRIANGLE <\/em>carriers only)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>Deadtime duration<\/code><span style=\"color: var(--global-palette4);\">: configures the dead-time duration.<\/span><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"354\" height=\"303\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/schematic-2.png\" alt=\"Typical arrangement of MMC submodules for multilevel PWM signals generation.\" class=\"wp-image-9066\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/schematic-2.png 354w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/schematic-2-300x257.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><figcaption class=\"wp-element-caption\">Analog input to PWM output mapping<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"153\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/Inverted_sorting-3.png\" alt=\"Definition of the arm current polarity for proper balancing of the MMC submodules.\" class=\"wp-image-8643\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/Inverted_sorting-3.png 360w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/Inverted_sorting-3-300x128.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><figcaption class=\"wp-element-caption\">Sorting logic configuration<\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"421\" height=\"525\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-24.png\" alt=\"\" class=\"wp-image-35716\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-24.png 421w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-24-241x300.png 241w\" sizes=\"auto, (max-width: 421px) 100vw, 421px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"421\" height=\"525\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-25.png\" alt=\"\" class=\"wp-image-35717\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-25.png 421w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/10\/image-25-241x300.png 241w\" sizes=\"auto, (max-width: 421px) 100vw, 421px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The parameters\u00a0<code>dead-time<\/code>\u00a0and\u00a0<code>show \u201dactivate\u201d input<\/code>\u00a0are common to all multilevel PWM blocks and are further documented on the\u00a0<a href=\"https:\/\/imperix.com\/doc\/software\/pwm-pulse-width-modulation\">PWM page<\/a>.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"C-functions\"><\/span>C++ functions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Specific-to-SS-PWM\"><\/span>Specific to SS-PWM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In the B-Box 3, the SS-PWM modulator id is limited to <em>SS_MODULATOR_0<\/em> and <em>SS_MODULATOR_1<\/em>, while <em>SS_MODULATOR_<\/em>2 is also available in the B-Box 4.<\/p>\n\n\n<style>.kt-accordion-id8325_44d393-b3 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:1px;}.kt-accordion-id8325_44d393-b3 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;}.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;font-size:16px;line-height:24px;letter-spacing:0px;font-weight:bold;text-transform:none;color:var(--global-palette3, #1A202C);padding-top:12px;padding-right:10px;padding-bottom:8px;padding-left:16px;}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3 .kt-blocks-accordion-header:focus-visible{color:#444444;background:#ffffff;border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id8325_44d393-b3 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:var(--global-palette3, #1A202C);background:var(--global-palette9, #ffffff);border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_44d393-b3:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette9, #ffffff);}@media all and (max-width: 1024px){.kt-accordion-id8325_44d393-b3 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3 .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}}@media all and (max-width: 1024px){.kt-accordion-id8325_44d393-b3 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}@media all and (max-width: 767px){.kt-accordion-id8325_44d393-b3 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id8325_44d393-b3 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:1px;}.kt-accordion-id8325_44d393-b3 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id8325_44d393-b3 .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id8325_44d393-b3 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id8325_44d393-b3 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id8325_44d393-b3 kt-accordion-has-21-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-arrow kt-accodion-icon-side-left\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane8325_aac03d-63\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code><code>SsPwm_ConfigureOutputMode<\/code> <\/code><strong>\u2014 Configure the PWM output<\/strong> mode<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureOutputMode<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, tPwmOutMode outMode, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Selects the PWM outputs mode.&nbsp;<\/p>\n\n\n\n<p>If the output mode selected is&nbsp;<em>COMPLEMENTARY<\/em>, a dead-time must be configured using the&nbsp;<code>SsPwm_ConfigureDeadTime()<\/code>&nbsp;function.<\/p>\n\n\n\n<p>Can only be called in\u00a0<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>outMode<\/code>: the output mode to use (<em>COMPLEMENTARY<\/em>&nbsp;or&nbsp;<em>INDEPENDENT<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-3 kt-pane8325_fdc18c-e5\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code><code>SsPwm_ConfigureSubmodules<\/code><\/code> <strong>\u2014 Select the submodules configuration<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureSubmodules<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> sm_mask,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Selects the modules to connect to the modulator.<\/p>\n\n\n\n<p>The LSB of the mask corresponds to analog input 0 and a maximum of 23 (B-Box 4) or 8 (B-Box 3) modules can be configured.<\/p>\n\n\n\n<p>Can only be called in\u00a0<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.2\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>sm_mask<\/code>: 23-bit mask that defines to which analog input a module is connected<br><strong>B-Box 3:<\/strong> Only the first 8 bits are considered.<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-16 kt-pane8325_8476c5-47\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureSubmodulesTopology<\/code> \u2014 Selects the submodules topology<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureSubmodulesTopology<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator,\ntSmTopology topology, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Sets the submodules topology to half-bridge or full-bridge.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>topology<\/code>: the submodule&#8217;s topology (HALF_BRIDGE or FULL-BRIDGE)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-4 kt-pane8325_a91306-d2\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureCurrentInput <\/code><strong>\u2014 <\/strong>Set the current analog input channel<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureCurrentInput<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> input,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the analog input channel to use for the current measurement.<\/p>\n\n\n\n<p>Can only be called in\u00a0<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>input<\/code>: the analog input channel number for the current measurement<br><strong>B-Box 3: <\/strong>The input channel must be between 8 and 15.<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-15 kt-pane8325_855ba5-8b\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureInvertedSorting<\/code> <strong>\u2014 Invert the sorting logic<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureInvertedSorting<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator,\n<span class=\"hljs-keyword\">bool<\/span> invert_sorting, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Inverts the sorting logic. This parameter is defined by the direction of the voltage and current measurement. Further details are given above.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>invert_sorting<\/code>: inverts the sorting logic<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-14 kt-pane8325_3e357c-9c\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureCarrier<\/code> <strong>\u2014 Select the carrier waveform<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureCarrier<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, tPwmCarrier carrier,\n<span class=\"hljs-keyword\">bool<\/span> enabled, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Select the carrier shape of the modulator.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><code>modulator<\/code><\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>carrier<\/code>: the carrier to use if enabled (<em>TRIANGLE<\/em> or&nbsp;<em>INVTRIANGLE<\/em>)<\/li>\n\n\n\n<li><code>enabled<\/code>: enable (use the selected carrier) or disable the carrier (staircase modulation)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-5 kt-pane8325_8fdc68-88\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureClock <\/code><strong>\u2014 Select a CLOCK<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureClock<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, tClock clock,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Connects a clock generator to the multilevel PWM modulator.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p>See:&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/clk-clock-generator\">CLK &#8211; Clock generator<\/a><\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><code>modulator<\/code><\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>clock<\/code>: the clock to use (<em>CLOCK_0<\/em>,&nbsp;<em>CLOCK_1<\/em>,&nbsp;<em>CLOCK_2&nbsp;<\/em>or&nbsp;<em>CLOCK_3<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-9 kt-pane8325_ed373b-7f\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureUpdateRate <\/code><strong>\u2014 <\/strong>Select an update rate<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureUpdateRate<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, tPwmRate rate,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Select when the duty-cycle and phase parameters are applied.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Single-rate<\/em>: they are applied at the end of the carrier period.<\/li>\n\n\n\n<li><em>Double-rate<\/em>: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for TRIANGLE and INVTRIANGLE carriers only)<\/li>\n<\/ul>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><code>modulator<\/code><\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>rate<\/code>: the update rate to use (<em>SINGLE_RATE&nbsp;<\/em>or&nbsp;<em>DOUBLE_RATE<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-18 kt-pane8325_7cd500-81\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureActivateAsRealTime<\/code> <strong>\u2014 Set the activation signal as real-time<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureActivateAsRealTime<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Makes the activate signals real-time tunable.<\/p>\n\n\n\n<p>It enables the use of SsPwm_Activate and SsPwm_Deactivate in the control interrupt.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-20 kt-pane8325_aae0c4-fe\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureActivatePerSubMode<\/code> <strong>\u2014 Select the <em>per submodule<\/em> activation mode<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureActivatePerSubMode<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Sets the activation mode to <em>per submodule<\/em> (rather than <em>global<\/em>, by default).<\/p>\n\n\n\n<p>Use <code>SsPwm_ActivateSubmodule()<\/code> to activate and deactivate submodules in real-time.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-19 kt-pane8325_bff38c-18\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureActivateOutput<\/code> <strong>\u2014 Select the global active output lane<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureActivateOutput<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, tPwmOutput output, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Selects the output lane to use for the global active signal. This function is only used when the output mode is set to <em>INDEPENDENT<\/em>.<\/p>\n\n\n\n<p>Can only be called in <code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.2\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>output<\/code>: the lane number of the global active signal.<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-17 kt-pane8325_36b5d1-d5\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_SetModulationIndex<\/code> <strong>\u2014 Set the modulation index<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_SetModulationIndex<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, <span class=\"hljs-keyword\">float<\/span> m,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Sets the SS-PWM modulation index. Its range is [0; N] in <code>half-bridge<\/code> mode and [-N; N] in <code>full-bridge<\/code> mode, where N is the number of submodules connected to the modulator.<\/p>\n\n\n\n<p>Can be called in\u00a0<code>UserInit()<\/code>\u00a0or in the interrupt routine.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>m<\/code>: the modulation index<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-21 kt-pane8325_803291-1b\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ActivateSubmodule<\/code> <strong>\u2014<\/strong> Activate the PWM outputs in <em>per submodule<\/em> activation mode<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ActivateSubmodule<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> modulator, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> mask,\n<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> startCh, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Activates the PWM output(s) of the submodules specified in the mask. If the addressed PWM output has been set as&nbsp;<em>COMPLEMENTARY<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>&nbsp;this function acts on both outputs. The start channel must correspond to the value specified during the configuration (i.e. index of the first <code>1<\/code> in the <code>sm_mask <\/code>parameter of SsPwm_ConfigureSubmodules).<\/p>\n\n\n\n<p>For example, if channels 4 to 7 are used by the modulator, the following mask will activate the 2nd (channel 5) and 4th (channel 7) submodules of the modulator: mask = 00001010 = 0x0A = 10.<\/p>\n\n\n\n<p>Can be called in\u00a0<code>UserInit()<\/code>\u00a0or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><code>modulator<\/code><\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>mask<\/code>: 23-bit mask specifying if the PWM output(s) of the ith submodule used by the modulator must be enabled (ith bit is 1) or not (ith bit is 0)<br><strong>B-Box 3:<\/strong> Only the first 8 bits are considered.<\/li>\n\n\n\n<li><code>startCh<\/code>: index of the first channel used by the modulator (i.e. index of the first <code>1<\/code> in the <code>sm_mask <\/code>parameter of SsPwm_ConfigureSubmodules)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Functions-common-to-all-PWM-drivers\"><\/span>Functions common to all PWM drivers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>These functions are common to all PWM blocks. Further documentation is available on the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/pwm-pulse-width-modulation\">PWM page<\/a>.<\/p>\n\n\n<style>.kt-accordion-id8325_ed4639-ea .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:1px;}.kt-accordion-id8325_ed4639-ea .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;}.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;font-size:16px;line-height:24px;letter-spacing:0px;font-weight:bold;text-transform:none;color:var(--global-palette3, #1A202C);padding-top:12px;padding-right:10px;padding-bottom:8px;padding-left:16px;}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea .kt-blocks-accordion-header:focus-visible{color:#444444;background:#ffffff;border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id8325_ed4639-ea .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:var(--global-palette3, #1A202C);background:var(--global-palette9, #ffffff);border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id8325_ed4639-ea:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette9, #ffffff);}@media all and (max-width: 1024px){.kt-accordion-id8325_ed4639-ea .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}}@media all and (max-width: 1024px){.kt-accordion-id8325_ed4639-ea .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}@media all and (max-width: 767px){.kt-accordion-id8325_ed4639-ea .kt-accordion-inner-wrap{display:block;}.kt-accordion-id8325_ed4639-ea .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:1px;}.kt-accordion-id8325_ed4639-ea .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id8325_ed4639-ea .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id8325_ed4639-ea .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id8325_ed4639-ea > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id8325_ed4639-ea kt-accordion-has-13-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-arrow kt-accodion-icon-side-left\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-11 kt-pane8325_4e1807-27\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_ConfigureDeadTime <\/code><strong>\u2014 <strong>Configure the dead time<\/strong><\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_ConfigureDeadTime<\/span><span class=\"hljs-params\">(tSsModulator modulator, <span class=\"hljs-keyword\">float<\/span> deadTime, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the dead-time duration if the output mode is set as&nbsp;<em>COMPLEMENTARY.<\/em><\/p>\n\n\n\n<p>Can only be called in\u00a0<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>modulator<\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>deadTime<\/code>: the dead-time duration in seconds<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-12 kt-pane8325_a117ad-db\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_Activate <\/code><strong>\u2014 <strong>Activate the PWM outputs<\/strong><\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_Activate<\/span><span class=\"hljs-params\">(tSsModulator modulator, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Activates the addressed PWM output(s). If the addressed PWM output has been set as&nbsp;<em>COMPLEMENTARY<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>&nbsp;this function acts on both outputs.<\/p>\n\n\n\n<p>Can be called in\u00a0<code>UserInit()<\/code>\u00a0or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><code>modulator<\/code><\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-13 kt-pane8325_3268a6-c9\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>SsPwm_Deactivate <\/code><strong>\u2014 <strong><strong>Deactivate the PWM outputs<\/strong><\/strong><\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SsPwm_Deactivate<\/span><span class=\"hljs-params\">(tSsModulator modulator, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Deactivates the addressed PWM output(s). If the addressed PWM output has been set as&nbsp;<em>COMPLEMENTARY<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>&nbsp;this function acts on both outputs.<\/p>\n\n\n\n<p>Can be called in\u00a0<code>UserInit()<\/code>\u00a0or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-3eb6f280-71a7-47ca-aa7f-3078132251df\" class=\"wp-block-list\">\n<li><code><code>modulator<\/code><\/code>: the SS-PWM modulator id (<em>SS_MODULATOR_0<\/em>, <em>SS_MODULATOR_1<\/em> or <em>SS_MODULATOR_<\/em>2)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The SS-PWM peripheral provides a specialized Pulse Width Modulation scheme (PWM) for multilevel converters, which directly integrates means for balancing series-connected submodules. Such an approach&#8230;<\/p>\n","protected":false},"author":11,"featured_media":33315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[16],"tags":[52],"software-environments":[105,103,104],"provided-results":[],"related-products":[50,31,32,166,51,113,111],"guidedreadings":[],"tutorials":[],"user-manuals":[],"coauthors":[64,82],"class_list":["post-8325","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-mmc","software-environments-c-plus-plus","software-environments-matlab","software-environments-plecs","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-rcp-3-0","related-products-cpp-sdk","related-products-mmc","related-products-pm"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SS-PWM - Multilevel PWM for MMC - imperix software documentation<\/title>\n<meta name=\"description\" content=\"The SS-PWM block generates PWM signals based on a Sort-&amp;-Select algorithm for balancing submodules in Modular Multilevel Converters (MMC).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SS-PWM - Multilevel PWM for MMC - imperix software documentation\" \/>\n<meta property=\"og:description\" content=\"The SS-PWM block generates PWM signals based on a Sort-&amp;-Select algorithm for balancing submodules in Modular Multilevel Converters (MMC).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-11T10:07:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-26T17:10:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"334\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jessy An\u00e7ay, Fran\u00e7ois Ledent\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jessy An\u00e7ay, Fran\u00e7ois Ledent\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm\"},\"author\":{\"name\":\"Jessy An\u00e7ay\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/53bdc49b53b03a52afee023feef62ea4\"},\"headline\":\"SS-PWM &#8211; Multilevel PWM with Sort-&#038;-Select balancing\",\"datePublished\":\"2021-10-11T10:07:08+00:00\",\"dateModified\":\"2026-02-26T17:10:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm\"},\"wordCount\":2552,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"keywords\":[\"Modular Multilevel Converter\"],\"articleSection\":[\"Software reference\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm\",\"name\":\"SS-PWM - Multilevel PWM for MMC - imperix software documentation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"datePublished\":\"2021-10-11T10:07:08+00:00\",\"dateModified\":\"2026-02-26T17:10:26+00:00\",\"description\":\"The SS-PWM block generates PWM signals based on a Sort-&-Select algorithm for balancing submodules in Modular Multilevel Converters (MMC).\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"width\":500,\"height\":334},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/sort-select-multilevel-pwm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software reference\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/software\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SS-PWM &#8211; Multilevel PWM with Sort-&#038;-Select balancing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/53bdc49b53b03a52afee023feef62ea4\",\"name\":\"Jessy An\u00e7ay\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ee54f075f5969fcfd2bf6f348058cf40ca40d54a6472ac7c0a9855d036190d0a?s=96&d=mm&r=g3826f6cf12d7359812a917063d7db3c1\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ee54f075f5969fcfd2bf6f348058cf40ca40d54a6472ac7c0a9855d036190d0a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ee54f075f5969fcfd2bf6f348058cf40ca40d54a6472ac7c0a9855d036190d0a?s=96&d=mm&r=g\",\"caption\":\"Jessy An\u00e7ay\"},\"description\":\"Jessy is a power electronics engineer. At imperix, he is mostly involved with sales and project engineering. On the knowledge base, he is an active contributor to numerous notes and examples on a broad variety of topics.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jessy-ancay-a47615237\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/ancay\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SS-PWM - Multilevel PWM for MMC - imperix software documentation","description":"The SS-PWM block generates PWM signals based on a Sort-&-Select algorithm for balancing submodules in Modular Multilevel Converters (MMC).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm","og_locale":"en_US","og_type":"article","og_title":"SS-PWM - Multilevel PWM for MMC - imperix software documentation","og_description":"The SS-PWM block generates PWM signals based on a Sort-&-Select algorithm for balancing submodules in Modular Multilevel Converters (MMC).","og_url":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm","og_site_name":"imperix","article_published_time":"2021-10-11T10:07:08+00:00","article_modified_time":"2026-02-26T17:10:26+00:00","og_image":[{"width":500,"height":334,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","type":"image\/png"}],"author":"Jessy An\u00e7ay, Fran\u00e7ois Ledent","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jessy An\u00e7ay, Fran\u00e7ois Ledent","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm"},"author":{"name":"Jessy An\u00e7ay","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/53bdc49b53b03a52afee023feef62ea4"},"headline":"SS-PWM &#8211; Multilevel PWM with Sort-&#038;-Select balancing","datePublished":"2021-10-11T10:07:08+00:00","dateModified":"2026-02-26T17:10:26+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm"},"wordCount":2552,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","keywords":["Modular Multilevel Converter"],"articleSection":["Software reference"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm","url":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm","name":"SS-PWM - Multilevel PWM for MMC - imperix software documentation","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","datePublished":"2021-10-11T10:07:08+00:00","dateModified":"2026-02-26T17:10:26+00:00","description":"The SS-PWM block generates PWM signals based on a Sort-&-Select algorithm for balancing submodules in Modular Multilevel Converters (MMC).","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","width":500,"height":334},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/software\/sort-select-multilevel-pwm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Software reference","item":"https:\/\/imperix.com\/doc\/category\/software"},{"@type":"ListItem","position":3,"name":"SS-PWM &#8211; Multilevel PWM with Sort-&#038;-Select balancing"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/53bdc49b53b03a52afee023feef62ea4","name":"Jessy An\u00e7ay","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ee54f075f5969fcfd2bf6f348058cf40ca40d54a6472ac7c0a9855d036190d0a?s=96&d=mm&r=g3826f6cf12d7359812a917063d7db3c1","url":"https:\/\/secure.gravatar.com\/avatar\/ee54f075f5969fcfd2bf6f348058cf40ca40d54a6472ac7c0a9855d036190d0a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee54f075f5969fcfd2bf6f348058cf40ca40d54a6472ac7c0a9855d036190d0a?s=96&d=mm&r=g","caption":"Jessy An\u00e7ay"},"description":"Jessy is a power electronics engineer. At imperix, he is mostly involved with sales and project engineering. On the knowledge base, he is an active contributor to numerous notes and examples on a broad variety of topics.","sameAs":["https:\/\/www.linkedin.com\/in\/jessy-ancay-a47615237\/"],"url":"https:\/\/imperix.com\/doc\/author\/ancay"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/8325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=8325"}],"version-history":[{"count":153,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/8325\/revisions"}],"predecessor-version":[{"id":43323,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/8325\/revisions\/43323"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/33315"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=8325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=8325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=8325"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=8325"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=8325"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=8325"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=8325"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=8325"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=8325"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=8325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}