cancel
Showing results for 
Search instead for 
Did you mean: 

Assistance Needed: Custom Control Board with STM32G030C8T6 not Appearing in Board Manager

Ethan_hunt04
Associate II

Hello ST Motor Control Workbench Support Team,
I am seeking your assistance with a challenge I am facing while configuring my custom control board, which utilizes the STM32G030C8T6 microcontroller

I have successfully created a custom control board (with.json file) tailored to my specific application within the software. However, I am encountering an issue where the custom board is not appearing in the Board Manager of the software. This prevents me from proceeding with the necessary configurations for my motor control development.

Could you please provide guidance on how to troubleshoot and resolve this issue? Additionally, if there are any specific steps or considerations for integrating a custom control board that are not covered in the documentation, I would greatly appreciate your insights.

please find .json file attached.

9 REPLIES 9
GMA
ST Employee

Hello,

For the moment your needed mcu json file is not available in current Workbench delivery, it will be added in next versions. Please add attached STM32G030C8Tx.json file in your "WorkBench\Utilities\PC_Software\STMCWB\assets\hardware\mcu" directory.

For MotorControlConnector type connectors, each signal has to be labelled "MCx", please find in attachment (Custom_G030.json) a re-worked version of your .json file.

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

Hello, I am using the above .json file to generate an inverter file based on the G030C8T6 MCU, and found that it does not support three resistor resistance sampling and ICS current sampling, is there any solution for this?

Hello,

ICS is not supported on STM32G0. The reason is that STM32G0 is a low-end solution with only 1 ADC, whereas the ICS is an expensive high-end solution. Our ICS implementation relies on 2 ADCs.

3-shunt current sensing is supported. Could you attach your inverter json file ? Are you sure that all pins connected to your current sensing are connected the ADC ?

Regards

Cedric

 

Here is my .json file, I hope I can get your pointers, thanks.

{
  "type": "inverter",
  "name": "G030C8T6",
  "descVersion": 4,
  "contentVersion": "1.0",
  "PN": "G030C8T6",
  "longDescription": "Incorrect temperature protection",
  "shortDescription": "Incorrect temperature protection",
  "link": "https://www.st.com/en/evaluation-tools/steval-ihm042v1.html",

  "mcu": "STM32G030C8Tx",
  "clockSource": "internal_osc",
  "clockFrequency": 64,
  "motorDrives": [
    {
      "name": "M1",
      "maxRatedVoltage": 100,
      "minRatedVoltage": 10,
      "maxRatedCurrent": 200,
      "resistorOffset": 0,
      "features": [
        {
          "name": "CurrentSensing",
          "type": "CurrentSensing",
          "tRise": 1000,
            "hwVariants": [
            {
              "type": "ThreeShunt_AmplifiedCurrents",
              "help": "Soldering the pins SENS2 to Vshunt_2 of connector J5 and the pins SENS3 to Vshunt_3 of the connector J6",
              "signals": {
                "CURRENT_AMPL_U": [
                  {
                    "name": "PA0",
                    "help": "CN7.35. Factory default. Solder R47",
                    "cost": 10
                  }
                ],
                "CURRENT_AMPL_V": [
                  {
                    "name": "PB11",
                    "help": "CN7.37. Factory default. Solder R48.",
                    "cost": 10
                  }
                ],
                "CURRENT_AMPL_W": [
                  {
                    "name": "PB12",
                    "help": "CN7.38. Factory default. Solder R50",
                    "cost": 10
                  }
                ]
              },
              "shuntResistor": 0.001,
              "amplifyingNetworkImax": 242,
              "amplifyingNetworkVm": 3.3,
              "amplifyingNetworkPrating": 4,
              "offsetNetworkAttenuation": 1,
              "opAmpGain": 6.8,
              "polarizationOffset": 1.65
            }
          ]
        },
        {
          "name": "PhaseVoltageGeneration",
          "type": "PhaseVoltageGeneration",
          "driverName": "L6230",
          "driverPN": "L6230",
          "minDeadTime": 1000,
          "maxSwitchingFreq": 100,
          "tNoise": 1000,
          "hwVariants": [
            {
              "type": "DrivingHighAndLowSides",
              "help": "How to enable this variant",
              "signals": {
                "PWM_CHU_H": [
                  {
                    "name": "PA8",
                    "help": "CN10.23. Factory default. Solder R56.",
                    "cost": 0
                  }
                ],
                "PWM_CHV_H": [
                  {
                    "name": "PA9",
                    "help": "CN10.21. Factory default. Solder R64.",
                    "cost": 0
                  }
                ],
                "PWM_CHW_H": [
                  {
                    "name": "PA10",
                    "help": "CN10.33. Factory default. Solder R70.",
                    "cost": 0
                  }
                ],
                "PWM_CHU_L": [
                  {
                    "name": "PB13",
                    "help": "CN10.15. Factory Default. Solder R58",
                    "cost": 0
                  }
                ],
                "PWM_CHV_L": [
                  {
                    "name": "PB14",
                    "help": "CN7.34. Factory default. Solder R67.",
                    "cost": 0
                  }
                ],
                "PWM_CHW_L": [
                  {
                    "name": "PB15",
                    "help": "CN10.24. Factory default. Solder R72.",
                    "cost": 0
                  }
                ]
              },
              "highSideSwitchesDrivingPolarity": "Active high",
              "lowSideSwitchesDrivingPolarity": "Active low",
              "deadTime": 2500
            }
          ]
        },
        {
          "name": "VBusSensing",
          "type": "VBusSensing",
          "busVoltageDivider": 34.33,
          "hwVariants": [
            {
              "type": "VBusSensing",
              "help": "",
              "signals": {
                "VBUS": [
                  {
                    "name": "PA5",
                    "help": "",
                    "cost": 0
                  }
                ]
              },
              "busVoltageDivider": 34.33,
              "busVoltageDividerR1": 100,
              "busVoltageDividerR2": 3,
              "busVoltageDividerR3": null
            }
          ]
        },
        {
          "name": "OverCurrentProtection",
          "type": "OverCurrentProtection",
          "hwVariants": [
            {
              "type": "OnPowerStageOCP",
              "help": "How to enable this variant",
              "signals": {
                "OC_TRIGGER": [
                  {
                    "name": "PA11",
                    "help": "CN10.14. Factory default. Solder R73",
                    "cost": 0
                  }
                ]
              },
              "OCComparatorThreshold": 0.3,
              "OCNetworkOffset": 0,
              "OCNetworkGain": 0.01,
              "OCThreshold": 200,
              "OCSignalPolarity": "Active low"
            }
          ]
        }
      ]
    }
  ],
  "features": [
    {
      "name": "SerialPortCommunication",
      "type": "SerialPortCommunication",
      "hwVariants": [
        {
          "type": "Uart2WiresCommunication",
          "help": "",
          "signals": {
            "UART_TX": [
              {
                "name": "PA2",
                "help": "",
                "cost": 0
              }
            ],
            "UART_RX": [
              {
                "name": "PA3",
                "help": "",
                "cost": 0
              }
            ]
          }
        }
      ]
    }
  ]
}

Hey

GMA

Thanks a bunch for getting back to me!

Guess what? With the updated files you shared, I can now see the STM32C8T6 board right where it belongs, in the Control board section. Big win there!

Quick question: I've got this custom-built inverter board with a single shunt current sensing setup, and I've got all the pinouts handy. Do you think it's doable to whip up a custom inverter board JSON file using this info?

Also, I've noticed something curious. Every time I select this custom board, the bridge tab shows up all empty. Not what I was expecting, to be honest! Any tips on what steps to take next to create a custom board, and why that bridge tab window is staying empty?

If there's anything else related to this that you think I should know or consider, please feel free to let me know!

Looking forward to your expert advice!

Here is the Pinout for microcontroller and custom built hardware 

Ethan_hunt04_0-1712043301701.png

Board is apperaing into workbench

Ethan_hunt04_2-1712043449498.png

 


here is the bridge tab 

Ethan_hunt04_1-1712043396842.png

 

Hello Ethan_hunt04,

Thank you for your feedback, it is always appreciated.

Concerning your inverter board, it is possible to create one using our Board Manager. However you will need to specify in the .json file that it is an inverter board, and not a control board. Thus, you will need only your inverter and no Bridge. If your .json file is described correctly, then the generation should be possible.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

 However, I am encountering same  issue With custom Board of STM32F103C8T6  is not appearing in the Board Manager of the software. This prevents me from proceeding with the necessary configurations for my motor control development.

Hello Ethan_hunt04,

Please be aware that the STM32F1 is no longer supported by the MCSDK, so even if you manage to describe the needed MCU and board, you won't be able to generate a proper project using version 6.0 or later.

The latest MCSDK version supporting STM32F1 is version 5.4.8 so you will have to do with that one for FW generation, but be aware that the board manager was released since version 6.1.0 and thus former MCSDK versions are not user-friendly concerning board addition.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

so what should i do next , if i want to genrate firmware for Stm32f103c8t6?