Commit df6159d6 authored by Zach Fredin's avatar Zach Fredin
Browse files

v02 docs

parent 084920e4
# DRV8436 breakout board
A tiny castellated carrier for the QFN version of TI's [DRV8436](https://www.ti.com/lit/ds/symlink/drv8436.pdf) stepper driver.
A tiny castellated carrier for the QFN version of TI's [DRV8436](https://www.ti.com/lit/ds/symlink/drv8436.pdf) stepper driver.
![overview](img/overview.jpg)
As used in a circuit:
![example](img/example.jpg)
## v0.1
Fabrication:
![fabrication](img/fabrication.jpg)
## v0.2 ("baa")
The second spin of the board breaks out the `nSleep` pin to a dedicated castellated pad, so the user can freely use `M0` and `M1` to select up to 1/256 microstepping. The assembled devices also use TI's [DRV8434](https://www.ti.com/lit/ds/symlink/drv8434.pdf) instead of the -6, a pin-compatible part which substantially increases the current handling capability of the board to 1.8 A RMS. External dimensions are unchanged, beyond a minor pad spacing change for the bottom row: `GND`, `nSLEEP`, and `VREF` are now 1.5 mm apart to match the side castellations.
![pcb_v02](img/pcb_v02.png)
The board includes the recommended bypass capacitors from the datasheet, along with a 10k pullup resistor for `nFault`. Less typically useful pins (such as `nFault`) aren't broken out.
![schematic_v02](img/schematic_v02.png)
To use the board, it's worth taking the time to first read the chip datasheet linked above; both the DRV8436 and DRV8434 use the same step/direction interface and M0/M1 microstepping configuration. Once you've done that:
- connect `A1`, `A2`, `B1`, and `B2` to the stepper motor coils. Make sure matching letters connect to either side of the same coil; it's worth checking with a multimeter to be sure this is correct. The steppers I've used typically are connected red/blue and green/black.
- connect `VREF` to a voltage source to provide the current limit for the motor. The simple solution (as shown in my sample circuit) is a resistor divider; if you want to adjust this on the fly, you can connect it to a PWM pin through a lowpass filter, or to a potentiometer for manual adjustment.
- connect `VCC` to a suitable power supply for your motor. While the chip is rated up to 48 VDC, I used 16 volt capacitors in the design so keep VCC to 12 VDC or less.
- connect `STEP` and `DIR` to a microcontroller's GPIO lines.
- optionally connect `M0` and `M1` to a microcontroller's GPIO lines, or `GND`, or a 3.3 - 5 VDC rail, or leave them floating, depending on how you want microstepping to be configured (see datasheet).
- connect `nSLEEP` to a 3.3 - 5 VDC rail, such as a microcontroller power supply. You could also connect this to a GPIO line if you'd like to be able to turn off the stepper driver and reduce current demand on your circuit when the motor isn't being used.
- connect `GND` to the circuit ground net, which should be shared with both the microcontroller power supply and the stepper power supply.
The example project in /example_project uses the v0.1 PCB, but beyond the lack of `nSLEEP` pin everything else is quite similar. If you use KiCad, a library symbol and footprint for v0.2 are located in /kicad_library_v02.
## v0.1 ("moo")
The first version works, but has a dumb issue. You see, the DRV8436 has an internal voltage regulator which provides a logic-level power source so you only have to send it motor voltage. In an effort to minimize pin count, I decided to use that output to hold the `nSleep` pin high to keep the chip awake. However, the device checks `nSleep` _before_ turning on the regulator, so as-is it doesn't wake up. For this version, the fix I included simply bridges the `nSleep` pin to `M1`, which I do break out as a castellation. `M1` and `M0` are used to configure microstepping; with this modification, the user must hold `M1` high for the device to function, which limits them to 1/4, 1/8, or 1/16 microstepping only. Sorry friends.
![pcb](img/pcb.png)
......
This diff is collapsed.
(module drv8436_breakout_footprint_v02 (layer F.Cu) (tedit 619524AD)
(fp_text reference REF** (at 0 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value drv8436_breakout_footprint_v02 (at 0 -7.62) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -3.75 3.5) (end -3.75 -3.5) (layer F.SilkS) (width 0.12))
(fp_line (start 2.5 4.75) (end -2.5 4.75) (layer F.SilkS) (width 0.12))
(fp_line (start 3.75 -3.5) (end 3.75 3.5) (layer F.SilkS) (width 0.12))
(fp_line (start -2.5 -4.75) (end 2.5 -4.75) (layer F.SilkS) (width 0.12))
(fp_arc (start -2.5 -3.5) (end -2.5 -4.75) (angle -90) (layer F.SilkS) (width 0.12))
(fp_arc (start 2.5 -3.5) (end 3.75 -3.5) (angle -90) (layer F.SilkS) (width 0.12))
(fp_arc (start 2.5 3.5) (end 2.5 4.75) (angle -90) (layer F.SilkS) (width 0.12))
(fp_arc (start -2.5 3.5) (end -3.75 3.5) (angle -90) (layer F.SilkS) (width 0.12))
(pad 1 smd rect (at -4 -2.25) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 2 smd rect (at -4 -0.75) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 3 smd rect (at -4 0.75) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 4 smd rect (at -4 2.25) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 5 smd rect (at -1.5 5 90) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 7 smd rect (at 1.5 5 90) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 8 smd rect (at 4 2.25 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 9 smd rect (at 4 0.75 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 10 smd rect (at 4 -0.75 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 11 smd rect (at 4 -2.25 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 12 smd rect (at 0 -5 270) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 6 smd rect (at 0 5 270) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
)
......@@ -24,4 +24,28 @@ X STEP 9 400 50 100 L 50 50 1 1 I
ENDDRAW
ENDDEF
#
# drv8436_breakout_v02
#
DEF drv8436_breakout_v02 U 0 40 Y Y 1 F N
F0 "U" 0 0 50 H V C CNN
F1 "drv8436_breakout_v02" 0 600 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
S -350 400 350 -400 0 1 0 N
X AOUT1 1 -450 150 100 R 50 50 1 1 I
X STEP 10 450 50 100 L 50 50 1 1 I
X DIR 11 450 150 100 L 50 50 1 1 I
X VCC 12 0 500 100 D 50 50 1 1 I
X AOUT2 2 -450 50 100 R 50 50 1 1 I
X BOUT2 3 -450 -50 100 R 50 50 1 1 I
X BOUT1 4 -450 -150 100 R 50 50 1 1 I
X GND 5 -100 -500 100 U 50 50 1 1 I
X nSLEEP 6 0 -500 100 U 50 50 1 1 I
X VREF 7 100 -500 100 U 50 50 1 1 I
X M0 8 450 -150 100 L 50 50 1 1 I
X M1 9 450 -50 100 L 50 50 1 1 I
ENDDRAW
ENDDEF
#
#End Library
19236519907878884
19238157072042884
Battery
BatteryHolder_Bulgin_BX0036_1xC
Bulgin Battery Holder, BX0036, Battery Type C (https://www.bulgin.com/products/pub/media/bulgin/data/Battery_holders.pdf)
......@@ -83030,6 +83030,13 @@ drv8436_breakout_footprint
drv8436_breakout_footprint
 
 
0
11
11
drv8436_breakout_footprint
drv8436_breakout_footprint_v02
0
11
11
(sym_lib_table
(lib (name drv8436_breakout_symbol)(type Legacy)(uri ${KIPRJMOD}/drv8436_breakout_symbol.lib)(options "")(descr ""))
(lib (name drv8436_breakout_symbol_v02)(type Legacy)(uri /home/zach/Documents/drv8436_breakout/kicad_library_v02/drv8436_breakout_symbol_v02.lib)(options "")(descr ""))
)
(module drv8436_breakout_footprint:drv8436_breakout_footprint_v02 (layer F.Cu) (tedit 619524AD)
(fp_text reference REF** (at 0 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value drv8436_breakout_footprint_v02 (at 0 -7.62) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_arc (start -2.5 3.5) (end -3.75 3.5) (angle -90) (layer F.SilkS) (width 0.12))
(fp_arc (start 2.5 3.5) (end 2.5 4.75) (angle -90) (layer F.SilkS) (width 0.12))
(fp_arc (start 2.5 -3.5) (end 3.75 -3.5) (angle -90) (layer F.SilkS) (width 0.12))
(fp_arc (start -2.5 -3.5) (end -2.5 -4.75) (angle -90) (layer F.SilkS) (width 0.12))
(fp_line (start -2.5 -4.75) (end 2.5 -4.75) (layer F.SilkS) (width 0.12))
(fp_line (start 3.75 -3.5) (end 3.75 3.5) (layer F.SilkS) (width 0.12))
(fp_line (start 2.5 4.75) (end -2.5 4.75) (layer F.SilkS) (width 0.12))
(fp_line (start -3.75 3.5) (end -3.75 -3.5) (layer F.SilkS) (width 0.12))
(pad 6 smd rect (at 0 5 270) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 12 smd rect (at 0 -5 270) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 11 smd rect (at 4 -2.25 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 10 smd rect (at 4 -0.75 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 9 smd rect (at 4 0.75 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 8 smd rect (at 4 2.25 180) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 7 smd rect (at 1.5 5 90) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 5 smd rect (at -1.5 5 90) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 4 smd rect (at -4 2.25) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 3 smd rect (at -4 0.75) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 2 smd rect (at -4 -0.75) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
(pad 1 smd rect (at -4 -2.25) (size 1.5 1) (layers F.Cu F.Paste F.Mask))
)
EESchema-DOCLIB Version 2.0
#
#End Doc Library
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# drv8436_breakout_v02
#
DEF drv8436_breakout_v02 U 0 40 Y Y 1 F N
F0 "U" 0 0 50 H V C CNN
F1 "drv8436_breakout_v02" 0 600 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
S -350 400 350 -400 0 1 0 N
X AOUT1 1 -450 150 100 R 50 50 1 1 I
X STEP 10 450 50 100 L 50 50 1 1 I
X DIR 11 450 150 100 L 50 50 1 1 I
X VCC 12 0 500 100 D 50 50 1 1 I
X AOUT2 2 -450 50 100 R 50 50 1 1 I
X BOUT2 3 -450 -50 100 R 50 50 1 1 I
X BOUT1 4 -450 -150 100 R 50 50 1 1 I
X GND 5 -100 -500 100 U 50 50 1 1 I
X nSLEEP 6 0 -500 100 U 50 50 1 1 I
X VREF 7 100 -500 100 U 50 50 1 1 I
X M0 8 450 -150 100 L 50 50 1 1 I
X M1 9 450 -50 100 L 50 50 1 1 I
ENDDRAW
ENDDEF
#
#End Library
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment