Skip to the content
PCBKitNew board
4 layers58 × 40 mmOpm inline, the printed circuit board in 3D

open source motor drivers to be driven by foc controller

Size
58 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
103
Nets
135
Pads
403
Tracks, vias
318, 165
Pours
30
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
13 Dec 2021
Updated
27 Jan 2022

Overview

Opm inline is an open-source printed circuit board by opme, from the opme/motor-driver repository on GitHub. It is a 4-layer board of 58 × 40 mm with 103 parts on 135 nets, routed with 318 tracks and 165 vias.

It is built around the RP2040, TJA1051TK/3 and MIC5219-3.3YM5-TR, with the MIC5219-5.0YM5-TR, HYG025N06LS1C2 and 0ZCK0020FF2G among its other parts. Its parts include 35 capacitors, 31 resistors, 8 transistors, 7 ICs and 7 diodes. It belongs with the robots and motor control boards and the RP2040 boards of this library.

Main components

8

README

opm-inline-mcu/README.md

motor-driver

This motor driver uses inline current sensing. The driver chip TMC6200 has built in current sensing.

Diagram

Layout

TMC6200 Gate Driver

Design uses TMC6200 gate driver. The datasheet is located at Layout. Below are some high level details about the gate driver.

Universal high voltage BLDC/PMSM/Servo MOSFET 3-halfbridge gate-driver with in line motor current sensing. External MOSFETs for up to 100A motor current. 3 Floating Sense Amplifiers with programmable gain (5, 10, 20)

Integrated current sense amplifiers eliminate costly sense amplifiers required for FOC controllers (recommended use for applications up to 10A, use external precision amplifiers for higher current with low sense resistor values)

THE TMC6200 OFFERS TWO BASIC MODES OF OPERATION:

MODE 1: Stand-alone driver with pin configuration Enable this mode by tying low pin SPE. The interface pins allow a number of different settings for BBM generation and sense amplifier amplification control.

MODE 2: SPI controlled This mode allows detailed control over the protection, diagnostic and control features, e.g. for tuning overcurrent detection. Enable this mode by tying high pin SPE.

The driver integrates a four-level temperature sensor (120°C pre-warning and selectable 136°C / 143°C / 150°C thermal shutdown)

The TMC6200 protects the MOSFET power stages against a short circuit or overload condition by monitoring the voltage drop in the high-side MOSFETs, as well as the voltage drop in the low-side mosfets

Design Discussion

Choice is to run in Mode 1 - Stand-alone driver with pin configuration. See datasheet Figure 1.1 Standalone application using differential sensing. Existing FOC algorithms should run without relying on the SPI interface. Future versions could change if the controller firmware has a driver added for TMC6200.

In this mode the SPI pins are used for configuration and not settings/diagnostics. Setting SDO/Single to +VCC_IO allow signals to be set to DRV_EN. This is also the case for the Drive Strength and the sense amplication. In a 10A implementation we set sense amplification to 10 and 00 driver strength since we are using simialr mosfets that were tested in the datasheet.

Drive Strength: CSN / IDRV0 and SCK / IDRV1 - 00: 0.5A 01: 0.5/1A, 10: 1A, 11: 1.5A, currently set to 00 for .5A

Sense Amplification: SDI / AMPLx10 - Sense Amplification 0: 5, 1: 10, currently set to 10.

The TMC6200 IC current sensing is recommended to have a limit of 10A when using the internal sensing.

The thermal design of the PCB is also designed for 10A max current. The 10A limit is chosen to allow full SMT and single side hole through components with 1oz copper.

Heatsink over the gate driver and mosfets is required over a certain current. 28x28x20 is a standard heat sink size and is added to the pcb using silicon thermal glue.

Initial parts were selected based on the Trinamic reference designs that I have copied into this git repo.

Footprint for capacitors and resistors chosen as 0603 to make it easier to manufacture with low end SMD machines.

Parts are selected that are available in quantity from various resellers due to current chip shortage. Avoided any parts that were only available in small quantities or not in stock.

Sense resistor selection. TMC6200 datasheet specifies different sense resistor selection. Sense resistor of 005R0 with 10x amplification was selected for 15A max current 10A continuous.

In addition to the TMC6200 internal temperature sensor, there is a temperature sensor on the board. The analog temperature signal is sent out the controller.

Mosfet selection. Reference design has via for +VM connection through SMT pad. This limits the vendor ability to manufacture the board and increases cost due to those needed to be capped in the manufacturing process. Alternative is to put the via next to the SMT pad.

Design Discussion for TMC6200 Pins

See TMC6200 datasheet for full documentation of pins. Below is specific decisions taken when choice was given.

CLK 24 pin on the TMC6200 is tied to GND using short wire for internal clock. This clock has accuracy of +-4%

Exposed die pad: Connect the exposed die pad to a GND plane. Provide as many as possible vias for heat transfer to GND plane. Reference design has via for GND connection through SMT pad. Since TMC chip will be manually added for first batch, these through hole vias were used. If those are done by SMT in the future then some other solution for tying the pad to GRD may be needed.

Mosfet pads go to +VM but do not use hole through vias. This limits the vendor ability to manufacture the board and increases cost due to those needed to be capped in the manufacturing process. Alternative is to put the via next to the SMT pad which is done in this design.

Part selection

TypeDesignatorFootprintDiscussion
TerminalBlock_3_P5.08mmU3Libraries:TerminalBlock_bornier-3_P5.08mmShould support 18A to 20A max current though design current is 10A
1nF/100VC14 C12 C11Capacitor_SMD:C_0603_1608Metric
TerminalBlock_2_P5.08mmU2Libraries:TerminalBlock_bornier-2_P5.08mm
330uF/63VC15 C16Capacitor_THT:C_Radial_D10.0mm_H20.0mm_P5.00mmTMC6200 datasheet recommends 100uF of electroltyic capacitor for each amp of current expected. Total 660 uF for 10 Amps included. 10000 hour life, low impedance, low ESR, high ripple current rating
VCC_IOJ2Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical
1000R/1%R19 R21Resistor_SMD:R_0603_1608Metric
19-217/GHC-YR1S2/3TD1 D2LED_SMD:LED_0603_1608Metric
150R/1%R20Resistor_SMD:R_0603_1608Metric
4700R/1%R18 R17 R24Resistor_SMD:R_0603_1608Metric
10000R/1%R16Resistor_SMD:R_0603_1608Metric
100nF/50VC17 C20 C10Capacitor_SMD:C_0603_1608Metric
TemperatureJ5Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical
PWMx6J3Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical
0RR22Resistor_SMD:R_0603_1608Metric
1500R/1%R23Resistor_SMD:R_0603_1608Metric
Current SensingJ6Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical
SPI/InfoJ1Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical
0RR26Resistor_SMD:R_0603_1608Metric
0ΩR25Resistor_SMD:R_0603_1608Metric
2.2uF/50VC13 C19Capacitor_SMD:C_0805_2012Metric
100nF/100VC18Capacitor_SMD:C_0805_2012Metric
TMC6200-TAIC1Libraries:TMC6200-TA
2R2/1%R4 R6 R11 R13 R3 R1Resistor_SMD:R_0603_1608Metricslope control resistors. 1Ohm to 2.2Ohm recommended for larger MOSFETs.
10R/1%R5 R12 R2Resistor_SMD:R_0603_1608Metric
0R005/1%/1WR9 R10 R14 R15 R7 R8Resistor_SMD:R_1206_3216MetricUse low inductivity SMD type, e.g. 1210 or 2512 resistor for RS
4.7uF/100VC8 C9 C7Capacitor_SMD:C_1210_3225Metric
4.7uF/16VC5 C4 C6Capacitor_SMD:C_0603_1608MetricBootstrap capacitors. for larger QG - use minimum 4.7µF on 12VOUT pin. QG is 59.5nC at VDS=48V, VGS=10V, ID=20A
22nF/100VC1Capacitor_SMD:C_0603_1608Metric
100nF/100VC2 C3Capacitor_SMD:C_0603_1608Metric
Power Mosfet 60V 100A 2.5 max Rds(on)Q2 Q6 Q4 Q3 Q1 Q5Libraries:PDFN-8HYG025N06LS1C2, 60V minimum, 2.5ohm max Rds(on) and fast switching for lower heat dissipation, Max current > 30A

Parts

103
QtyValueFootprintReferences
91uF/100VCapacitor_SMD:C_0805_2012MetricC7, C8, C9, C21, C22, C23, C24, C25, C26
60R005/1%/1WResistor_SMD:R_1206_3216MetricR7, R8, R9, R10, R14, R15
6100nCapacitor_SMD:C_0603_1608MetricC27, C28, C29, C30, C32, C35
62R2/1%Resistor_SMD:R_0603_1608MetricR1, R3, R4, R6, R11, R13
6HYG025N06LS1C2Libraries:PDFN-8Q1, Q2, Q3, Q4, Q5, Q6
3100nF/50VCapacitor_SMD:C_0603_1608MetricC10, C17, C20
310R/1%Resistor_SMD:R_0603_1608MetricR2, R5, R12
31nF/100VCapacitor_SMD:C_0603_1608MetricC11, C12, C14
20RResistor_SMD:R_0603_1608MetricR22, R26
21000R/1%Resistor_SMD:R_0603_1608MetricR19, R21
2100nF/100VCapacitor_SMD:C_0603_1608MetricC2, C3
210KR/1%Resistor_SMD:R_0603_1608MetricR24, R28
22.2uF/50VCapacitor_SMD:C_0805_2012MetricC13, C19
2330uF/63VCapacitor_THT:C_Radial_D10.0mm_H20.0mm_P5.00mmC15, C16
24.7UF/16VCapacitor_SMD:C_0603_1608MetricC5, C6
24700R/1%Resistor_SMD:R_0603_1608MetricR17, R18
2JST-GH-4uc4h node v2100.pretty:SM04B-GHS-TBJP4, JP5
2MountingHoleMountingHole:MountingHole_2.2mm_M2_Pad_ViaH201, H202
2SOLDERJUMPERNOuc4h node v2100.pretty:SJ_2S-NOSJ2, SJ3
10ZCK0020FF2Guc4h node v2100.pretty:FUSE-0805F1
10ΩResistor_SMD:R_0603_1608MetricR25
110000R/1%Resistor_SMD:R_0603_1608MetricR16
1100KRResistor_SMD:R_0603_1608MetricR27
1100nF/100VCapacitor_SMD:C_0805_2012MetricC18
110VDiode_SMD:D_SOD-123D4
110kResistor_SMD:R_0603_1608MetricR23
110u/25VCapacitor_SMD:C_0603_1608MetricC31
1120Resistor_SMD:R_0603_1608MetricR29
1150R/1%Resistor_SMD:R_0603_1608MetricR20
11uFCapacitor_SMD:C_0201_0603MetricC34
11uFCapacitor_SMD:C_0603_1608MetricC33
12.2kResistor_SMD:R_0603_1608MetricR31
122nF/100VCapacitor_SMD:C_0603_1608MetricC1
14.7kResistor_SMD:R_0603_1608MetricR30
14.7uF/16VCapacitor_SMD:C_0603_1608MetricC4
1BOOT0uc4h node v2100.pretty:SJ_2S-NOSJ1
1CSTCE8M00G55-R0uc4h node v2100.pretty:RESONATOR-SMDQ8
1FanConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ4
1Green LEDLED_SMD:LED_0603_1608MetricD1
1HeatsinkSymbol:OSHW-Logo2_7.3x6mm_SilkScreenHS1
1M01PTHuc4h node v2100.pretty:1X01JP2
1M02PTHuc4h node v2100.pretty:1X02JP3
1M04PTHuc4h node v2100.pretty:1X04JP1
1MIC5219-3.3YM5-TRPackage_TO_SOT_SMD:SOT-23-5IC5
1MIC5219-5.0YM5-TRPackage_TO_SOT_SMD:SOT-23-5IC6
1PH4uc4h node v2100.pretty:4X1_1P27_OCT_BILEXSWD1
1RP2040Libraries:RP2040U1
1Red LEDLED_SMD:LED_0603_1608MetricD2
1TJA1051TK/3Package_DFN_QFN:VDFN-8-1EP_2x2mm_P0.5mm_EP0.9x1.7mmIC7
1TVS DIODEDiode_SMD:D_SMAD6
1TerminalBlock_2_P5.08mmLibraries:TerminalBlock_bornier-2_P5.08mmU2
1TerminalBlock_3_P5.08mmLibraries:TerminalBlock_bornier-3_P5.08mmU3
1VCC_IOConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2
1Val**Libraries:NUP4114UCW1T2GD5
1WSD90P06DN56Libraries:PDFN-8Q7
1eTQFP48_9x9_TRILibraries:TMC6200-TAIC1
1greenuc4h node v2100.pretty:CHIPLED_0603LED2
1reduc4h node v2100.pretty:CHIPLED_0603LED1

Questions

How big is the Opm inline PCB?

It measures 58 × 40 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Opm inline use?

103 parts, built around the RP2040, TJA1051TK/3, MIC5219-3.3YM5-TR and MIC5219-5.0YM5-TR. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Opm inline KiCad files?

From the opme/motor-driver repository on GitHub, at the commit this page was made from: the board is opm-inline-mcu/source/opm-inline.kicad_pcb and its schematic opm-inline-mcu/source/Connectors.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Opm inline design in my own project?

Its repository states no licence, so its author keeps all rights: ask opme before reusing the design.

More from opme/motor-driver

4
  • 4 layers249.8 × 250 mmPanel.opm inline, the printed circuit board in 3D

    Panel.opm inline

    opme/motor-driver

    open source motor drivers to be driven by foc controller

    2,473 parts
  • 2 layers58 × 40 mmOpm lowside, the printed circuit board in 3D

    Opm lowside

    opme/motor-driver

    open source motor drivers to be driven by foc controller

    84 parts
  • 4 layers55 × 85 mmTMC6100-EVAL v1.2, the printed circuit board in 3D

    TMC6100-EVAL v1.2

    opme/motor-driver

    open source motor drivers to be driven by foc controller

    78 parts
  • 4 layers58 × 40 mmOpm inline, the printed circuit board in 3D

    Opm inline

    opme/motor-driver

    open source motor drivers to be driven by foc controller

    76 parts

Similar boards

  • 2 layers25 × 40 mmSTorM32 NT BGC v333i, the printed circuit board in 3D

    STorM32 NT BGC v333i

    ConfusedHello/STorM32-NT

    A fork of the STorM32 NT controller board for my own purposes.

    74 parts
  • 2 layers104 × 43.3 mmSerial snooper, the printed circuit board in 3D

    Serial snooper

    can-caglar/Data-Logger-STM32

    The Serial Snooper is a UART data logger with automatic baud rate detection, real-time data stamping and a command-line-interface for configuration, running on an STM32F3 microcontroller.

    101 parts4
  • 2 layers335 × 340.9 mmRCA Radio Telescope, the printed circuit board in 3D

    RCA Radio Telescope

    Glaubinator/Radio-Telescope-RCA

    Radio Telescope System for 1 GHz to 2 GHz Operation

    81 parts3GPL-3.0
  • 2 layers30 × 30 mmMotor power, the printed circuit board in 3D

    Motor power

    neurobot-1000/neurobot-1000.github.io

    Monorepo for the Neurobot-1000 works

    10 partsBSD-3-Clause-Clear
  • 4 layers55 × 42 mmDrone V3, the printed circuit board in 3D

    Drone V3

    Ryan-Fagan/QuadcopterPCB

    Gerbers, models, & code for an STM32 quadcopter focused on reasearch applications.

    89 parts
  • 2 layers51 × 21 mmMitayi Pico D1, the printed circuit board in 3D

    Mitayi Pico D1

    CIRCUITSTATE/Mitayi-Pico-D1

    Open-Source RP2040 Microcontroller Development Board

    75 parts36MIT