cancel
Showing results for 
Search instead for 
Did you mean: 

Can I get true 6-PWM (TIM1 CHx + CHxN) working on the X-NUCLEO-IHM16M1 (STSPIN830)?

Jeffrey1
Associate II

 

I’m using the X-NUCLEO-IHM16M1 BLDC driver board, which is based on the STSPIN830, together with a NUCLEO-F446RE. In the STSPIN830 datasheet, ST clearly mentions that the device supports both 3-PWM and 6-PWM input modes.

But in practice, on this expansion board:

  • Only INU / INV / INW are connected to the MCU
  • ENU/ENV/ENW are present but “NP” (Not Populated) unless manually soldered
  • None of the INxH / INxL pins (the 6-input mode pins) are routed to the Nucleo connectors
  • TIM1 complementary outputs (CH1N/CH2N/CH3N) have nowhere to go
  • Motor Control Workbench only allows 3-PWM mode for this board

The user manual (UM2415) seems to confirm that the 6-input mode requires hardware changes: removing R12, replacing R11, and populating the NP resistors that route INxH/INxL to the MCU. Out of the box, the board is locked to 3-PWM “direct driving” mode.

My question:
Has anyone actually gotten TRUE 6-PWM complementary drive (TIM1 CHx + CHxN with dead-time) working on the X-NUCLEO-IHM16M1?
Not "6 logic inputs", but actual complementary PWM pairs like you’d use for a 3-phase inverter.

If yes:

  • Which resistors/jumpers did you solder?
  • Which pins did you remap on the Nucleo?
  • Did you modify the board to expose INxH/INxL?
  • Does MCSDK support this configuration at all, or do I need to go full custom firmware?
  • And is the internal interlock/deadtime in STSPIN830 going to interfere with MCU-generated complementary PWM?

If this is fundamentally impossible due to how the board is routed, I’d like to confirm that too before I switch to a different driver (DRV8303/8353, IR2101, L6386, etc.).

Anyone who has tried this, please let me know — ST’s documentation is a bit confusing here!

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @Jeffrey1,

We are facing an issue on our side on sharing file process.
Create a X-NUCLEO-IHM16M1_HL.json file into the ~user_name\.st_workbench\hardware\board\power directory with following content:

{
  "type": "power",
  "name": "X-NUCLEO-IHM16M1_HL",
  "descVersion": 5,
  "contentVersion": "1.1",
  "PN": "X-NUCLEO-IHM16M1_HL",
  "longDescription": "Three-phase brushless DC motor driver expansion board based on STSPIN830 for STM32 Nucleo",
  "shortDescription": "PMSM & BLDC power board based on STSPIN830 for STM32 Nucleo",
  "link": "https://www.st.com/en/ecosystems/x-nucleo-ihm16m1.html",
  "motorDrives": [
    {
      "name": "M1",
      "minRatedVoltage": 7,
      "maxRatedVoltage": 45,
      "maxRatedCurrent": 2.12,
      "maxRatedPower": 40,
      "connectorType": "morpho",
      "resistorOffset": 1.50,
      "features": [
        {
          "name": "CurrentSensing",
          "type": "CurrentSensing",
          "tRise": 500,
          "hwVariants": [
            {
              "type": "ThreeShunt_AmplifiedCurrents",
              "help": {
				  "en": ["X-NUCLEO-IHM16M1: Check you are still in default config with JP4 and JP7 solder bridge opened at the bottom",
			             "J5 and J6 must be closed (default) to polarize Opamp U2B and select the FOC gain"
						 ]
			  },
			  "cost": 1,
              "signals": {
                "CURRENT_AMPL_U": [
                  {
                    "name": "ML30",
                    "help": "CN7.30. Factory default. Solder R29",
                    "cost": 0
                  }
                ],
                "CURRENT_AMPL_V": [
                  {
                    "name": "MR24",
                    "help": "CN10.24. Factory default Solder R42. Remove solder R41 if CN10.18 connected to a signal",
                    "cost": 10
                  },
                  {
                    "name": "MR18",
                    "help": "CN10.18. Factory default Solder R41. Remove solder R42 if CN10.24 connected to a signal",
                    "cost": 10
                  }
                ],
                "CURRENT_AMPL_W": [
                  {
                    "name": "ML34",
                    "help": "CN7.34. Factory default Solder R36. Remove solder R34 if CN10.15 connected to a signal",
                    "cost": 10
                  },
                  {
                    "name": "MR15",
                    "help": "CN10.15. Factory default Solder R34. Remove solder R36 if CN7.34 connected to a signal",
                    "cost": 10
                  }
                ]
              },
              "shuntResistor": 0.33,
              "amplifyingNetworkImax": 3,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 1.4,
              "offsetNetworkAttenuation": 0.764,
              "opAmpGain": 2,
              "polarizationOffset": 1.559,
              "metaData": [
                {
                  "type": "OpAmp",
                  "partNumber": "TSV994"
                }
              ]
            },
            {
              "type": "SingleShunt_AmplifiedCurrents",
              "help": {
				  "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			             " Close J5 and J6 to polarize Opamp U2B and select the FOC gain"
						 ]
			  },
			  "cost": 20,
              "signals": {
                "CURRENT_AMPL": [
                  {
                    "name": "MR24",
                    "help": "CN10.24. Factory default. Solder R42",
                    "cost": 0
                  },
                  {
                    "name": "MR18",
                    "help": "CN10.18. Factory default. Solder R41.",
                    "cost": 0
                  }
                ]
              },
              "shuntResistor": 0.11,
              "amplifyingNetworkImax": 3,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 1.4,
              "offsetNetworkAttenuation": 0.764,
              "opAmpGain": 2,
              "polarizationOffset": 1.559,
              "metaData": [
                {
                  "type": "OpAmp",
                  "partNumber": "TSV994"
                }
              ]
            },
            {
              "type": "SingleShunt_AmplifiedCurrents_noOffset",
              "help": {
				  "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			             " Open J5 and J6 to select 6-step Opamp configuration"
						 ]
			  },
			  "cost": 20,
              "signals": {
                "CURRENT_AMPL": [
                  {
                    "name": "MR24",
                    "help": "CN10.24. Factory default. Solder R42",
                    "cost": 0
                  },
                  {
                    "name": "MR18",
                    "help": "CN10.18. Factory default. Solder R41.",
                    "cost": 0
                  }
                ]
              },
              "shuntResistor": 0.11,
              "amplifyingNetworkImax": 3,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 1.4,
              "opAmpGain": 2,
              "metaData": [
                {
                  "type": "OpAmp",
                  "partNumber": "TSV994"
                }
              ]
            }
          ]
        },		
        {
          "name": "STSPIN830Protection",
          "type": "DriverProtection",
          "hwVariants": [
            {
              "type": "SingleErrorTrigger_FixedReference",
              "help": "How to enable this variant",
              "signals": {
                "DP_TRIGGER": [
                  {
                    "name": "MR14",
                    "help": "CN10.14. Factory default. Solder R35",
                    "cost": 0
                  },
                  {
                    "name": "MR16",
                    "help": "CN10.16. Factory default. Solder R37",
                    "cost": 0
                  }
                ]
              },
			  "DPTriggerFilterDuration": 0,
              "DPSignalPolarity": "Active low"
            }
          ]
        },
        {
          "name": "PhaseVoltageGeneration",
          "type": "PhaseVoltageGeneration",
          "driverName": "Driver or IGBT or MOSFET name",
          "driverPN": "STSPIN830",
          "minDeadTime": 500,
          "maxSwitchingFreq": 100,
          "tNoise": 500,
          "hwVariants": [
            {
              "type": "DrivingHighSidesAndThreeEnables",
              "help": "How to enable this variant",
              "signals": {
                "PWM_CHU_H": [
                  {
                    "name": "MR23",
                    "help": "CN10.23. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHV_H": [
                  {
                    "name": "MR21",
                    "help": "CN10.21. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHW_H": [
                  {
                    "name": "MR33",
                    "help": "CN10.33. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHU_EN": [
                  {
                    "name": "MR30",
                    "help": "CN10.30. Factory Default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
                    "cost": 10
                  },
                  {
                    "name": "MR11",
                    "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
                    "cost": 10
                  }
                ],
                "PWM_CHV_EN": [
                  {
                    "name": "MR28",
                    "help": "CN10.28. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
                    "cost": 10
                  }
                ],
                "PWM_CHW_EN": [
                  {
                    "name": "MR26",
                    "help": "CN10.26. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
                    "cost": 10
                  }
                ]
              },
              "highSideSwitchesDrivingPolarity": "Active high",
              "enableDrivingPolarity": "Active high",
              "deadTime": 550
            },
            {
              "type": "DrivingHighAndLowSides",
              "help": "Remove R12 resistor. Set R11 to 0ohm.",
              "cost": 10,
              "signals": {
                "PWM_CHU_H": [
                  {
                    "name": "MR23",
                    "help": "CN10.23. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHV_H": [
                  {
                    "name": "MR21",
                    "help": "CN10.21. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHW_H": [
                  {
                    "name": "MR33",
                    "help": "CN10.33. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHU_L": [
                  {
                    "name": "MR30",
                    "help": "CN10.30. Factory Default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
                    "cost": 10
                  },
                  {
                    "name": "MR11",
                    "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
                    "cost": 10
                  }
                ],
                "PWM_CHV_L": [
                  {
                    "name": "MR28",
                    "help": "CN10.28. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
                    "cost": 10
                  }
                ],
                "PWM_CHW_L": [
                  {
                    "name": "MR26",
                    "help": "CN10.26. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
                    "cost": 10
                  }
                ]
              },
              "highSideSwitchesDrivingPolarity": "Active high",
              "lowSideSwitchesDrivingPolarity": "Active high",
              "deadTime": 650
            }
          ]
        },
        {
          "name": "SpeedAndPositionSensing",
          "type": "SpeedAndPositionSensing",
          "hwVariants": [
            {
              "type": "HallEffectSensor",
              "help": {
				       "en":["X-NUCLEO-IHM16M1: By default Hall signals are connected to pull-up resistors suitable for open-drain interface",
					         "If your Hall sensors signals require a push pull interface, please remove JP3"
					   ]
			  },
			  "cost": 1,
              "signals": {
                "HALLSENSOR_H1": [
                  {
                    "name": "MR4",
                    "help": "CN10.4. Factory default. Solder R81",
                    "cost": 0
                  },
                  {
                    "name": "ML17",
                    "help": "CN7.17. Factory default. Solder R43",
                    "cost": 0
                  }
                ],
                "HALLSENSOR_H2": [
                  {
                    "name": "MR19",
                    "help": "CN10.19. Factory default. Solder R85",
                    "cost": 0
                  },
                  {
                    "name": "MR31",
                    "help": "CN10.31. Factory default. Solder R86",
                    "cost": 0
                  }
                ],
                "HALLSENSOR_H3": [
                  {
                    "name": "MR2",
                    "help": "CN10.2. Factory default. Solder R87",
                    "cost": 0
                  },
                  {
                    "name": "MR25",
                    "help": "CN10.25. Factory default. Solder R84",
                    "cost": 0
                  }
                ]
              }
            },
            {
              "type": "QuadratureEncoderRelative",
              "help": {
				       "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					         "If your Encoder signals require a push pull interface, please remove JP3"
					   ]
			  },
			  "cost": 1,
              "signals": {
                "QENC_A": [
                  {
                    "name": "MR4",
                    "help": "CN10.4. Factory default. Solder R81",
                    "cost": 0
                  },
                  {
                    "name": "ML17",
                    "help": "CN7.17. Factory default. Solder R43",
                    "cost": 0
                  }
                ],
                "QENC_B": [
                  {
                    "name": "MR19",
                    "help": "CN10.19. Factory default. Solder R85",
                    "cost": 0
                  },
                  {
                    "name": "MR31",
                    "help": "CN10.31. Factory default. Solder R86",
                    "cost": 0
                  }
                ]
              }
            },
            {
              "type": "QuadratureEncoderAbsolute",
              "help": {
				       "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					         "If your Encoder signals require a push pull interface, please remove JP3"
					   ]
			  },
			  "cost": 1,
              "signals": {
                "QENC_A": [
                  {
                    "name": "MR4",
                    "help": "CN10.4. Factory default. Solder R81",
                    "cost": 0
                  },
                  {
                    "name": "ML17",
                    "help": "CN7.17. Factory default. Solder R43",
                    "cost": 0
                  }
                ],
                "QENC_B": [
                  {
                    "name": "MR19",
                    "help": "CN10.19. Factory default. Solder R85",
                    "cost": 0
                  },
                  {
                    "name": "MR31",
                    "help": "CN10.31. Factory default. Solder R86",
                    "cost": 0
                  }
                ],
                "QENC_Z": [
                  {
                    "name": "MR2",
                    "help": "CN10.2. Factory default. Solder R87",
                    "cost": 0
                  },
                  {
                    "name": "MR25",
                    "help": "CN10.25. Factory default. Solder R84",
                    "cost": 0
                  }
                ]
              }
            },
            {
              "type": "BEMFSensingADC",
              "help": "How to enable this variant",
              "signals": {
                "BEMF_U": [
                  {
                    "name": "ML38",
                    "help": "CN7.38",
                    "cost": 0
                  }
                ],
                "BEMF_V": [
                  {
                    "name": "ML37",
                    "help": "CN7.37",
                    "cost": 0
                  }
                ],
                "BEMF_W": [
                  {
                    "name": "ML36",
                    "help": "CN7.36",
                    "cost": 0
                  }
                ],
                "BEMF_DIVIDER": [
                  {
                    "name": "MR1",
                    "help": "CN10.1",
                    "cost": 0
                  }
                ]
              },
              "dividingNetworkR1": 10000,
              "dividingNetworkR2": 2200
            }
          ]
        },
        {
          "name": "VBusSensing",
          "type": "VBusSensing",
          "busVoltageDivider": 16,
          "hwVariants": [
            {
              "type": "VBusSensing",
              "help": "How to enable this variant",
              "signals": {
                "VBUS": [
                  {
                    "name": "ML28",
                    "help": "CN7.28. Factory default. Solder R33",
                    "cost": 0
                  },
                  {
                    "name": "MR6",
                    "help": "CN10.6. Factory default. Solder R31",
                    "cost": 0
                  },
                  {
                    "name": "MR28",
                    "help": "X-NUCLEO-IHM16M1: CN10.28. Solder R88",
                    "cost": 10
                  }
                ]
              },
              "busVoltageDivider": 16,
              "busVoltageDividerR1": 180,
              "busVoltageDividerR2": 12,
              "busVoltageDividerR3": null
            }
          ]
        },
        {
          "name": "TemperatureSensing",
          "type": "TemperatureSensing",
          "hwVariants": [
            {
              "type": "NTCThermistor",
              "help": "How to enable this variant",
              "signals": {
                "TEMPERATURE_NTC": [
                  {
                    "name": "MR34",
                    "help": "CN10.34. Factory default. Solder R82",
                    "cost": 0
                  },
                  {
                    "name": "MR18",
                    "help": "X-NUCLEO-IHM16M1: CN10.18. Please Solder R83 with a 0 ohm resistor",
                    "cost": 10
                  }
                ]
              },
              "v0": 579,
              "t0": 25,
              "gain": 27.4,
              "maxSensorTemperature": 110
            }
          ]
        },
        {
          "name": "Potentiometer",
          "type": "Potentiometer",
          "hwVariants": [
            {
              "type": "Potentiometer",
              "help": "How to enable this variant",
              "signals": {
                "POTENTIOMETER_LEVEL": [
                  {
                    "name": "ML35",
                    "help": "CN7.35",
                    "cost": 0
                  }
                ]
              },
              "potVm": 3.3,
              "potRmax": 10000,
              "potLevelMin": 0
            }
          ]
        }
      ]
    }
  ]
}
If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

View solution in original post

9 REPLIES 9
GMA
ST Employee

Hello @Jeffrey1,

The "DrivingHighAndLowSides" hardware variant was missing in the PhaseVoltageGeneration section of the X-NUCLEO-IHM16M1.json description file.
Find an updated version of the json file in the attachment. As mentioned in the IHM16 user manual: remove the R12 resistor, replace the R11 resistor with a 0 Ω resistor.
Add the X-NUCLEO-IHM16M1_HL.json file to the ~user_name\.st_workbench\hardware\board\power directory. Launch MC Workbench, the X-NUCLEO-IHM16M1_HL power board should be available and set.

GMA_0-1765300470683.png

 

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

Hello @GMA 

Thank you for your response. I understand that there is a json file to enable the 'DrivingHighAndLowSides'. 

I am not able to acces the .zip can you help me in getting the same 

Best regards 
Jeffrey J

Jeffrey1_0-1765334419940.png

 

Hello @Jeffrey1,

We are facing an issue on our side on sharing file process.
Create a X-NUCLEO-IHM16M1_HL.json file into the ~user_name\.st_workbench\hardware\board\power directory with following content:

{
  "type": "power",
  "name": "X-NUCLEO-IHM16M1_HL",
  "descVersion": 5,
  "contentVersion": "1.1",
  "PN": "X-NUCLEO-IHM16M1_HL",
  "longDescription": "Three-phase brushless DC motor driver expansion board based on STSPIN830 for STM32 Nucleo",
  "shortDescription": "PMSM & BLDC power board based on STSPIN830 for STM32 Nucleo",
  "link": "https://www.st.com/en/ecosystems/x-nucleo-ihm16m1.html",
  "motorDrives": [
    {
      "name": "M1",
      "minRatedVoltage": 7,
      "maxRatedVoltage": 45,
      "maxRatedCurrent": 2.12,
      "maxRatedPower": 40,
      "connectorType": "morpho",
      "resistorOffset": 1.50,
      "features": [
        {
          "name": "CurrentSensing",
          "type": "CurrentSensing",
          "tRise": 500,
          "hwVariants": [
            {
              "type": "ThreeShunt_AmplifiedCurrents",
              "help": {
				  "en": ["X-NUCLEO-IHM16M1: Check you are still in default config with JP4 and JP7 solder bridge opened at the bottom",
			             "J5 and J6 must be closed (default) to polarize Opamp U2B and select the FOC gain"
						 ]
			  },
			  "cost": 1,
              "signals": {
                "CURRENT_AMPL_U": [
                  {
                    "name": "ML30",
                    "help": "CN7.30. Factory default. Solder R29",
                    "cost": 0
                  }
                ],
                "CURRENT_AMPL_V": [
                  {
                    "name": "MR24",
                    "help": "CN10.24. Factory default Solder R42. Remove solder R41 if CN10.18 connected to a signal",
                    "cost": 10
                  },
                  {
                    "name": "MR18",
                    "help": "CN10.18. Factory default Solder R41. Remove solder R42 if CN10.24 connected to a signal",
                    "cost": 10
                  }
                ],
                "CURRENT_AMPL_W": [
                  {
                    "name": "ML34",
                    "help": "CN7.34. Factory default Solder R36. Remove solder R34 if CN10.15 connected to a signal",
                    "cost": 10
                  },
                  {
                    "name": "MR15",
                    "help": "CN10.15. Factory default Solder R34. Remove solder R36 if CN7.34 connected to a signal",
                    "cost": 10
                  }
                ]
              },
              "shuntResistor": 0.33,
              "amplifyingNetworkImax": 3,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 1.4,
              "offsetNetworkAttenuation": 0.764,
              "opAmpGain": 2,
              "polarizationOffset": 1.559,
              "metaData": [
                {
                  "type": "OpAmp",
                  "partNumber": "TSV994"
                }
              ]
            },
            {
              "type": "SingleShunt_AmplifiedCurrents",
              "help": {
				  "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			             " Close J5 and J6 to polarize Opamp U2B and select the FOC gain"
						 ]
			  },
			  "cost": 20,
              "signals": {
                "CURRENT_AMPL": [
                  {
                    "name": "MR24",
                    "help": "CN10.24. Factory default. Solder R42",
                    "cost": 0
                  },
                  {
                    "name": "MR18",
                    "help": "CN10.18. Factory default. Solder R41.",
                    "cost": 0
                  }
                ]
              },
              "shuntResistor": 0.11,
              "amplifyingNetworkImax": 3,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 1.4,
              "offsetNetworkAttenuation": 0.764,
              "opAmpGain": 2,
              "polarizationOffset": 1.559,
              "metaData": [
                {
                  "type": "OpAmp",
                  "partNumber": "TSV994"
                }
              ]
            },
            {
              "type": "SingleShunt_AmplifiedCurrents_noOffset",
              "help": {
				  "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			             " Open J5 and J6 to select 6-step Opamp configuration"
						 ]
			  },
			  "cost": 20,
              "signals": {
                "CURRENT_AMPL": [
                  {
                    "name": "MR24",
                    "help": "CN10.24. Factory default. Solder R42",
                    "cost": 0
                  },
                  {
                    "name": "MR18",
                    "help": "CN10.18. Factory default. Solder R41.",
                    "cost": 0
                  }
                ]
              },
              "shuntResistor": 0.11,
              "amplifyingNetworkImax": 3,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 1.4,
              "opAmpGain": 2,
              "metaData": [
                {
                  "type": "OpAmp",
                  "partNumber": "TSV994"
                }
              ]
            }
          ]
        },		
        {
          "name": "STSPIN830Protection",
          "type": "DriverProtection",
          "hwVariants": [
            {
              "type": "SingleErrorTrigger_FixedReference",
              "help": "How to enable this variant",
              "signals": {
                "DP_TRIGGER": [
                  {
                    "name": "MR14",
                    "help": "CN10.14. Factory default. Solder R35",
                    "cost": 0
                  },
                  {
                    "name": "MR16",
                    "help": "CN10.16. Factory default. Solder R37",
                    "cost": 0
                  }
                ]
              },
			  "DPTriggerFilterDuration": 0,
              "DPSignalPolarity": "Active low"
            }
          ]
        },
        {
          "name": "PhaseVoltageGeneration",
          "type": "PhaseVoltageGeneration",
          "driverName": "Driver or IGBT or MOSFET name",
          "driverPN": "STSPIN830",
          "minDeadTime": 500,
          "maxSwitchingFreq": 100,
          "tNoise": 500,
          "hwVariants": [
            {
              "type": "DrivingHighSidesAndThreeEnables",
              "help": "How to enable this variant",
              "signals": {
                "PWM_CHU_H": [
                  {
                    "name": "MR23",
                    "help": "CN10.23. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHV_H": [
                  {
                    "name": "MR21",
                    "help": "CN10.21. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHW_H": [
                  {
                    "name": "MR33",
                    "help": "CN10.33. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHU_EN": [
                  {
                    "name": "MR30",
                    "help": "CN10.30. Factory Default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
                    "cost": 10
                  },
                  {
                    "name": "MR11",
                    "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
                    "cost": 10
                  }
                ],
                "PWM_CHV_EN": [
                  {
                    "name": "MR28",
                    "help": "CN10.28. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
                    "cost": 10
                  }
                ],
                "PWM_CHW_EN": [
                  {
                    "name": "MR26",
                    "help": "CN10.26. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
                    "cost": 10
                  }
                ]
              },
              "highSideSwitchesDrivingPolarity": "Active high",
              "enableDrivingPolarity": "Active high",
              "deadTime": 550
            },
            {
              "type": "DrivingHighAndLowSides",
              "help": "Remove R12 resistor. Set R11 to 0ohm.",
              "cost": 10,
              "signals": {
                "PWM_CHU_H": [
                  {
                    "name": "MR23",
                    "help": "CN10.23. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHV_H": [
                  {
                    "name": "MR21",
                    "help": "CN10.21. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHW_H": [
                  {
                    "name": "MR33",
                    "help": "CN10.33. Factory default",
                    "cost": 0
                  }
                ],
                "PWM_CHU_L": [
                  {
                    "name": "MR30",
                    "help": "CN10.30. Factory Default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
                    "cost": 10
                  },
                  {
                    "name": "MR11",
                    "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
                    "cost": 10
                  }
                ],
                "PWM_CHV_L": [
                  {
                    "name": "MR28",
                    "help": "CN10.28. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
                    "cost": 10
                  }
                ],
                "PWM_CHW_L": [
                  {
                    "name": "MR26",
                    "help": "CN10.26. Factory default",
                    "cost": 0
                  },
                  {
                    "name": "MR15",
                    "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
                    "cost": 10
                  }
                ]
              },
              "highSideSwitchesDrivingPolarity": "Active high",
              "lowSideSwitchesDrivingPolarity": "Active high",
              "deadTime": 650
            }
          ]
        },
        {
          "name": "SpeedAndPositionSensing",
          "type": "SpeedAndPositionSensing",
          "hwVariants": [
            {
              "type": "HallEffectSensor",
              "help": {
				       "en":["X-NUCLEO-IHM16M1: By default Hall signals are connected to pull-up resistors suitable for open-drain interface",
					         "If your Hall sensors signals require a push pull interface, please remove JP3"
					   ]
			  },
			  "cost": 1,
              "signals": {
                "HALLSENSOR_H1": [
                  {
                    "name": "MR4",
                    "help": "CN10.4. Factory default. Solder R81",
                    "cost": 0
                  },
                  {
                    "name": "ML17",
                    "help": "CN7.17. Factory default. Solder R43",
                    "cost": 0
                  }
                ],
                "HALLSENSOR_H2": [
                  {
                    "name": "MR19",
                    "help": "CN10.19. Factory default. Solder R85",
                    "cost": 0
                  },
                  {
                    "name": "MR31",
                    "help": "CN10.31. Factory default. Solder R86",
                    "cost": 0
                  }
                ],
                "HALLSENSOR_H3": [
                  {
                    "name": "MR2",
                    "help": "CN10.2. Factory default. Solder R87",
                    "cost": 0
                  },
                  {
                    "name": "MR25",
                    "help": "CN10.25. Factory default. Solder R84",
                    "cost": 0
                  }
                ]
              }
            },
            {
              "type": "QuadratureEncoderRelative",
              "help": {
				       "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					         "If your Encoder signals require a push pull interface, please remove JP3"
					   ]
			  },
			  "cost": 1,
              "signals": {
                "QENC_A": [
                  {
                    "name": "MR4",
                    "help": "CN10.4. Factory default. Solder R81",
                    "cost": 0
                  },
                  {
                    "name": "ML17",
                    "help": "CN7.17. Factory default. Solder R43",
                    "cost": 0
                  }
                ],
                "QENC_B": [
                  {
                    "name": "MR19",
                    "help": "CN10.19. Factory default. Solder R85",
                    "cost": 0
                  },
                  {
                    "name": "MR31",
                    "help": "CN10.31. Factory default. Solder R86",
                    "cost": 0
                  }
                ]
              }
            },
            {
              "type": "QuadratureEncoderAbsolute",
              "help": {
				       "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					         "If your Encoder signals require a push pull interface, please remove JP3"
					   ]
			  },
			  "cost": 1,
              "signals": {
                "QENC_A": [
                  {
                    "name": "MR4",
                    "help": "CN10.4. Factory default. Solder R81",
                    "cost": 0
                  },
                  {
                    "name": "ML17",
                    "help": "CN7.17. Factory default. Solder R43",
                    "cost": 0
                  }
                ],
                "QENC_B": [
                  {
                    "name": "MR19",
                    "help": "CN10.19. Factory default. Solder R85",
                    "cost": 0
                  },
                  {
                    "name": "MR31",
                    "help": "CN10.31. Factory default. Solder R86",
                    "cost": 0
                  }
                ],
                "QENC_Z": [
                  {
                    "name": "MR2",
                    "help": "CN10.2. Factory default. Solder R87",
                    "cost": 0
                  },
                  {
                    "name": "MR25",
                    "help": "CN10.25. Factory default. Solder R84",
                    "cost": 0
                  }
                ]
              }
            },
            {
              "type": "BEMFSensingADC",
              "help": "How to enable this variant",
              "signals": {
                "BEMF_U": [
                  {
                    "name": "ML38",
                    "help": "CN7.38",
                    "cost": 0
                  }
                ],
                "BEMF_V": [
                  {
                    "name": "ML37",
                    "help": "CN7.37",
                    "cost": 0
                  }
                ],
                "BEMF_W": [
                  {
                    "name": "ML36",
                    "help": "CN7.36",
                    "cost": 0
                  }
                ],
                "BEMF_DIVIDER": [
                  {
                    "name": "MR1",
                    "help": "CN10.1",
                    "cost": 0
                  }
                ]
              },
              "dividingNetworkR1": 10000,
              "dividingNetworkR2": 2200
            }
          ]
        },
        {
          "name": "VBusSensing",
          "type": "VBusSensing",
          "busVoltageDivider": 16,
          "hwVariants": [
            {
              "type": "VBusSensing",
              "help": "How to enable this variant",
              "signals": {
                "VBUS": [
                  {
                    "name": "ML28",
                    "help": "CN7.28. Factory default. Solder R33",
                    "cost": 0
                  },
                  {
                    "name": "MR6",
                    "help": "CN10.6. Factory default. Solder R31",
                    "cost": 0
                  },
                  {
                    "name": "MR28",
                    "help": "X-NUCLEO-IHM16M1: CN10.28. Solder R88",
                    "cost": 10
                  }
                ]
              },
              "busVoltageDivider": 16,
              "busVoltageDividerR1": 180,
              "busVoltageDividerR2": 12,
              "busVoltageDividerR3": null
            }
          ]
        },
        {
          "name": "TemperatureSensing",
          "type": "TemperatureSensing",
          "hwVariants": [
            {
              "type": "NTCThermistor",
              "help": "How to enable this variant",
              "signals": {
                "TEMPERATURE_NTC": [
                  {
                    "name": "MR34",
                    "help": "CN10.34. Factory default. Solder R82",
                    "cost": 0
                  },
                  {
                    "name": "MR18",
                    "help": "X-NUCLEO-IHM16M1: CN10.18. Please Solder R83 with a 0 ohm resistor",
                    "cost": 10
                  }
                ]
              },
              "v0": 579,
              "t0": 25,
              "gain": 27.4,
              "maxSensorTemperature": 110
            }
          ]
        },
        {
          "name": "Potentiometer",
          "type": "Potentiometer",
          "hwVariants": [
            {
              "type": "Potentiometer",
              "help": "How to enable this variant",
              "signals": {
                "POTENTIOMETER_LEVEL": [
                  {
                    "name": "ML35",
                    "help": "CN7.35",
                    "cost": 0
                  }
                ]
              },
              "potVm": 3.3,
              "potRmax": 10000,
              "potLevelMin": 0
            }
          ]
        }
      ]
    }
  ]
}
If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

Hello @GMA 

Thank you for your support

I am able to see the 6PWM enabled 

Jeffrey1_0-1765423726218.png

After enabling that Software asked me to solder R74, I hope this is expected ? 

Jeffrey1_1-1765423755498.png



Finally I have one more doubt before closing this, 

As per the datasheet this board can handle 7-45v, but my bus protection is set to 7-16v if I am trying to change it it's not allowing me. Kindly let me know how to work around this.

Jeffrey1_2-1765423934637.png

Best Regards 
Jeffrey J

 

Try changing the json file Maximum rated voltage from 45 to 16. 

maxRatedVoltage": 45

with

maxRatedVoltage": 16

and verify if it is reflected in your overvoltage protection.

The correct option is change in 

STuser2_1-1765427451733.png 

section of MCSDK the value you require.

 

STuser2_0-1765427429275.png

 

Hello @Jeffrey1,

In the X-NUCLEO-IHM16M1 single-shunt use case (note that the 3-shunt use case is not compatible with the NUCLEO-F446RE board), the R74 resistor must be added to connect MCU pin PA7.
The voltage limitation is determined by the maximum DC voltage setting of the motor.

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

 Hello @GMA 

In the X-NUCLEO-IHM16M1 single-shunt use case (note that the 3-shunt use case is not compatible with the NUCLEO-F446RE board), the R74 resistor must be added to connect MCU pin PA7.

 

- so if my understanding is correct, I won't be able to do 6 PWM control using F446RE? 

Or

- if I add R74 resistor then I'll be able to do 6 PWM control? (let me know what value of resistance) 


The voltage limitation is determined by the maximum DC voltage setting of the motor

- let's say my DC link is 24v and after inversion I want to control a 12v Motor how will be able to set it in the UI? 

 

These are my understanding after going through the datasheet and the board let me know if I am incorrect or misunderstood anything.

 

Best Regards 

Jeffrey J

Hello @Jeffrey1,

6 PWM control with single-shunt current sensing topology is available. Add a 0-ohm resistor to R74.
Use a DC supply that aligns with your motor specifications (12 V in this case).

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

Hello @GMA @STuser2 

 

Thank you for your clarification 

 

Best Regards 

Jeffrey J