DRV8301 is a pre-amplifier for 3-phase motor controllers. It is programmable through SPI, handle 60V, contains a 1,5A buck converter and support for 2 current sensors. DRV8302, DRV8303 and DRV8305 are other variants of this. I really want to dig into DRV8305, but they are a bit hard to get and I had my eyes on DRV8301 for quite a while.
I have a dev board from TI with this, and I am a bit concerned about the total footprint with all components, but I want to give it a try. The buck converter will feed MCU and RS-X transceiver, so it will be interesting to see what I can achieve.
This is 2-axis (below) and 3-axis stepper controller for the 28BYJ-48 5-wire stepper motors. The 2-axis version is 55 x 15mm, while the 3-axis one is 50 x 30 mm. They both contain the same electronics (except for connectors), but the 3-axis one is single side assembly. Both uses STM32F103Cx.
Finally done. This picture illustrate the 3 different grounds and the space between the areas that is part of the galvanic isolation. Finally got everything on and routed, so will double check tomorrow (or later today) and order PCB’s. Hopefully this is my x-mas fun project, but I don’t really expect to see the PCB’s before early January due to x-mas post.
I was thinking about adding a LCD display and by irony I actually have. I have a UART on the SWD port that is perfect for usage together with a Nextion display.
I wanted to use STM32F405RG for this, so I needed to update the design with lessons learned from my breakout board. I also replaced ESP-03 with ESP-12E/F and replaced all 0805 packages with 0603 as well as adding an extra status led. I still lack support for ESP-01. As a result of the smaller 0603 packages I got more space and this is single sided assembly only. I have soldered quite a few boards with 0603 components and yes they are small, but I never get them wrong anymore.
I have not done cost calculation yet, but I estimate ca 20-25.- USD in component/PCB Cost.
Notice the silc drawing in red on the MCU and W5500. I recommend that you always remove that silc on tight chips because it makes it difficult to inspect pins after soldering. The white line is difficult to distinguish from solder waste. Also avoid ground plane on mount side if your assembling yourself. This is why I wanted single sided assembly so I could use ground planes on the other side. The adapter is quite small 80*50mm.
I did consider replacing the tiny Murata x-tal used on the MCU, but looking at the size of the alternatives realizing that my x-tal cost 21 cent compared to 5 cent on the larger I ditched the idea. I have soldered quite a few Murata x-tals now and I never get them wrong (expect for the ones I drop on the floor). Those HC49C pack with 2 x caps each look gigantic in comparison. I will upload New schematics once I am done.
The 7x PWM module (blue on bottom) worked just fine. I have not used ULN2003 much so eager to test and see how it works. I have not tested the sensor (white on top) yet. The larger DHL11 module is mounted on back because it got a bit tight in the front. Will dig into the bit-bang protocol and analogue readings tomorrow.
Assembled and tested my Micro DC Motor Controller. Running the test motor on 50ma in the picture. Added a coin to show how small these boards actually are. A few mechanical issues only. The SWD connector is “ok”, but it is a bit close on the MCU. The screw terminal (blue) is almost on top of the LM9110S H-Bridge.
It works perfect, but I have a few spare pins so I will see if I can add current sensor to calculate torque. I can see the current increase as I hold back the motor and I would like to measure that to implement thresholds if the motor run into to high load or stall.
I would like to make a small 3P Motor Controller for 20A and it’s plenty of SO8 size HEXFET’s that can do the job. The challenge is how to get the PCB to support this without going to large. I made this draft that I will try out.
This is a snap from the EDA showing the PCB at the end of a 28mm wide stick. The SO8 HEXFET’s go edge to edge so you can drill a hole to take the output between them. R1, R2 and R3 are current sensors. The picture below show a 3D of the components. I have not completed routing, but I should have plenty of space for the 12 signals (2 x 3 PWM. 3 x BEMF, 3xCurrent Sense) on the other side..
The idea is to mount a flat heatsink on top of the HEXFET’s and shunts.
One trick is that I on the back side aligne the holes with 2P and 3P screw connectors to give me the option to use those as well. I will need to give this driver a test to see if I actually can get 20A out of the PCB. I am aware that some of the small ESC’s claim to deliver far more than this, but dissecting a few I found that they claim more current than the datasheet on their HEXFET’s. And they also use inner layers only that is far less efficient than Outer layers. They do however provide a nice array of 12 HEXFET’s with a heatsink. All in all buying an ESC for 6.- USD claiming 30A you have to give guys who created this some credit.
Just for the record, 20A continuous equals much higher motor current’s, but I don’t like overselling. The HEXFET I am using have 170A peak. It will be january before I receive everything I need, but I will be fuzing HEXFET’s and PCB’s to find their limits.
The challenge with current sensors in this is that you need to scale for maximum meaning you get very little on small motors. This is actually also why I fancy making specialized Motor Controllers for small motors, but the STM32F303CB comes in 48 pin package with motor drivers and programmable op amps perfect for this job.
The drawing above shows a normal copper lane (illustrated), but if you look at the PCB layout you will notice that it makes it rather easy to add solder mass to deliver higher currents. This will also be tested to see what we can get out of this design.
2nd draft of a mini 2 x Stepper module. The connectors are wrong, but they have the same footprint as the ones I need. The size is 55mm x 15mm, but I actually want to draw a mini 3 axis simply because 50 x 50 PCB will be cheaper. Drawing is easy so it’s worth doing to play around with ideas.
This is the first draft of a 7 x Stepper Motor Hat. It target uni- or bi-polar steppers up to 500mA per phase like the 28BYJ-48. It also have 7 x end-point connectors. Using the ULN2003 as driver it also provide generic PWM and digital ports that can be used as such. The PSU is external and can be up to 50V. The MCU is powered separately from RPI.
I tend to end up with ST on MCU and TI on motor drivers. This is accidental as I always look for what is out there at a reasonable price and availability. I started with DRV8313, but abandoned it because the PCB ended up to complex for a 1A controller. Looking for a simpler concept I found DRV10983. It has a simple digital/analogue interface to tick a motor. But, it also provides an I2C interface allowing access to the more complex parts of a motor controller.
I like this chip because it is small, deliver 2,5A on 8-28V and allow 2,5A to be easily routed on a PCB. Looking at its datasheet and digging into the I2C interface I must admit that this chip impress me. This is an abstract from the datasheet:
- 3 Phase sinusoidal algorithm.
- 8-28V input
- 2.5A continuous, 3A peak.
- Build in Hexfet’s
- Separate 5V or 3.3V PSU (100mA)
- Single current sensor possible
- BEMF sensing build in
- Analogue, Digital or I2C interface
- Build in EEPROM
- Current monitoring/protection
- Temperature protection
- Voltage monitoring/protection
- Lock protection if motor stops
- Speed control on analogue, PWM or I2C
- Sleep/Standby support for low power
- Start/Stop ramp-up/ramp down
- Acceleration control
- Brake function
- Anti Voltage Surge (AVS) protection
- TSSOP24 package With heatpads
- And much more …
The funny thing is that I wanted a simpler motor controller to get size down and was willing to sacrifice these things since they have limited effect on such small motors.