Seeking Help: BLDC Motor Control Board Development (FOC Technique)

Hi, new member here. I just looked around your schematics here some thoughts:

  1. If you can, please use STM32G4 instead of F4, it is better fit with motor control. For example, with the builtin opamps, you can have a good current measure method without utilizing INA240 chips.
  2. About current filter circuitry, do you really need to control it on fly. I mean, how about having a simple solder jumper to attach / detach the cap instead of using MC74 switch?
  3. Instead of having separated gate driver for each phase, how about having one 3 half bridge driver. Here is just my thought, not every chip are identical, so having different gate drivers may lead to inconsistent pwm signals (please correct me if I’m wrong about this).
  4. Speaking of the gate driver, I couldn’t find any mention about dead time PWM in the datasheet. So please be cautious when implementing the firmware, like setting the BDTR register for timer.
  5. The mosfet only have 1R resistor for current limiting right? How do you think about fast on / slow off circuitry. Like (didode - resistor ) // resistor circuity, so at the turning on phase, the equivalent resistance will be lower than turning off phase. It will help you on tuning the driver efficiency and noise reduction. Maybe you don’t need to populate the components yet, but at least you can leave the footprint there, so you can optimize it in the future.
  6. You are using wrong value for CAN termination resistor, it should be 120R, not 220R. And not every board need that resistor, only the first and last device in the bus need it. Usually, I use 2 60R resistors and one solder jumper in between them. So if this board is the last device, then I will bridge the jumper, otherwise I will leave it opened.
  7. To have daisy chaining topology, why don’t we have one more CAN connector, then you can connect the next device easier. Additionally, the above termination resistors and jumper can be placed near the new connector. Trust me, routing is satisfying :wink:
  8. Just minor things, it is better to have net label on every net. For CAN bus, I prefer to use CAN+, CAN- than CANH, CANL since we can route it as differential pair in Kicad. The same for Kelvin connection on current sense circuitry, I usually use Isns+, Isns-