SimpleFOCMini PCB

I’ve been trying to learn PCB design, and thought it would be a good start to see if I can make a board based on the DRV8313 from TI just like the SimpleFOCMini. After going through the datasheet, I was hoping someone could answer the following things about the SimpleFOCMini:

  1. Why is there a 10k resistor (R4) between enable inputs and header pin?
  2. Why is the nRESET pulled high by default?
  3. There is supposed to be a 10nF capacitor between CPL and CPH, but the SimpleFOCMini uses a 100nF capacitor here. Is this done to reduce component count?
  4. Between both of the VM pins and GND there is supposed to be a 100nF bypass capacitor, in addition to one of them having a bulk capacitor of 100uF. Is there a reason the 100nF capacitors are not added?

Thanks for any help

not obvious! I would also like to hear this if @Antun_Skuric can explain it.

This is per datasheet, usually reset pins are active low - i.e. it should be at logic high unless you are trying to do a restart.

another one I would like to hear about.

Usually in this type of application, the bulk capacitance is more important than those small, individual capacitors. Smaller capacitances are able to attenuate high frequency noise better, but on the rails for motor power, we don’t need to worry a lot about these high frequency noises (the PWM frequency is recommended 20kHz). It’s more importance to have a large bank of capacitance available to be able to buffer the motor supply. Of course, there is board space for this, so I don’t know why it’s not added- it would be cheap, but I can understand why they didn’t do this.

Hey guys,

Thanks @VIPQualityPost for tagging me, I did not see this discussion.

This one is to avoid the accidental enabling of the board if the enable pin of the MCU is floting. This used to happen a lot on the earlier version of the SimpleFOCShield. For example when you reset the MCU, your enable pin if floting for several seconds (as well as the pwm pins) which can send some voltages to your motor. So this resistor is preventing this because the floating pin cannot produce any power and cannot push any current through it.
The other way to resolve this problem would be to pull the enable pin to the ground.

The reset pin as well as sleep, flault etc are all negated so they are all pulled up.

This is a mistake on my part, I was following the datasheet here. It should be 10hF. I have no idea how much influence does it have on the board performance, but I would definitely suggest using the datasheet values.

I agree completely, that was my reasoning as well. SimpleFOCMini has a small footprint so I was trying to keep it as small as possible. If you have enough space I would suggest you to include it though.

1 Like

You may also want to check this out if you are learning

2 Likes

Thank you for all the replies.

I will definitely be taking some inspiration from the Mosquito board! I was looking to put an STM32G0 on the same board, exciting stuff.

One learning from the Mosquito/Lepton boards so far is that 32kB flash is too little, and makes the board hard to use. If you can, choose a STM32G0 MCU with 128kB flash, but at least 64kB…

1 Like

Agree, I would go for G071 with 64k as minimum. Exact same footprint and pinouts, twice the flash. When I originally designed the Mosquito, that was the high of the pandemic and shortage, only the G031 was available, and my objective was get creative with absolute lowest price with available components for something that would “work”.

Currently using a G071RB Nucleo-64 board with 128kB flash, and it seems to work excellent. I was hoping to make a version with the DRV8317 to try out current sensing and 6x PWM, but they seem to be nowhere in stock (yet). For now I’ll stay with the DRV8313.

1 Like