0
\$\begingroup\$

I'm decided to finally make my motor driver boards but I'd be happy to have some feedback as it's my first PCB design.

It's mostly based on the datasheet of the l298n chip. So there is nothing much here.

R1 and R2 are supposed to be shunt resistors but in my case I can probably just short them as I don't plan to measure power.

I'm not sure yet about which diode to use. Most of the design I already saw for the l298N seems to use common diodes such as 1N4001 and such.

I was planning to use 1N5822 diodes for my own design. I do have 1N4004, 1N60, 1N914 diodes in my possession.

PCB Update: Updated PCB Schematic

Netlist:

(export (version D)
  (design
    (source /home/sss/KiCad/l298-hbridge/l298-hbridge.sch)
    (date "Thu 22 Nov 2018 12:00:18 PM MSK")
    (tool "Eeschema 4.0.4-stable")
    (sheet (number 1) (name /) (tstamps /)
      (title_block
        (title)
        (company)
        (rev)
        (date)
        (source l298-hbridge.sch)
        (comment (number 1) (value ""))
        (comment (number 2) (value ""))
        (comment (number 3) (value ""))
        (comment (number 4) (value "")))))
  (components
    (comp (ref U1)
      (value L298N)
      (footprint L298N:DRIVER_L298N)
      (fields
        (field (name Field4) "Multiwatt-15 STMicroelectronics")
        (field (name Field5) L298N)
        (field (name Field6) None)
        (field (name Field7) Unavailable)
        (field (name Field8) STMicroelectronics))
      (libsource (lib L298N) (part L298N))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF655FE))
    (comp (ref D7)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF656A9))
    (comp (ref D5)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65926))
    (comp (ref D3)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF659F0))
    (comp (ref D1)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65A51))
    (comp (ref D8)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65A86))
    (comp (ref D6)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65AD3))
    (comp (ref D4)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65B16))
    (comp (ref D2)
      (value D)
      (footprint Diodes_ThroughHole:D_A-405_P7.62mm_Horizontal)
      (libsource (lib device) (part D))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65B45))
    (comp (ref C1)
      (value C)
      (footprint Capacitors_ThroughHole:C_Disc_D5.0mm_W2.5mm_P2.50mm)
      (libsource (lib device) (part C))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65B95))
    (comp (ref C2)
      (value C)
      (footprint Capacitors_ThroughHole:C_Disc_D5.0mm_W2.5mm_P2.50mm)
      (libsource (lib device) (part C))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65C52))
    (comp (ref R1)
      (value R)
      (footprint Resistors_ThroughHole:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal)
      (libsource (lib device) (part R))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65CB6))
    (comp (ref R2)
      (value R)
      (footprint Resistors_ThroughHole:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal)
      (libsource (lib device) (part R))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF65D21))
    (comp (ref P2)
      (value CONN_01X04)
      (footprint Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm)
      (libsource (lib conn) (part CONN_01X04))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF679C5))
    (comp (ref P1)
      (value CONN_01X04)
      (footprint Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm)
      (libsource (lib conn) (part CONN_01X04))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF67BFC))
    (comp (ref P3)
      (value CONN_01X04)
      (footprint Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm)
      (libsource (lib conn) (part CONN_01X04))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF68D84))
    (comp (ref P4)
      (value CONN_01X02)
      (footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm)
      (libsource (lib conn) (part CONN_01X02))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF6A123))
    (comp (ref P5)
      (value CONN_01X02)
      (footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm)
      (libsource (lib conn) (part CONN_01X02))
      (sheetpath (names /) (tstamps /))
      (tstamp 5BF6A1EB)))
  (libparts
    (libpart (lib device) (part C)
      (description "Unpolarized capacitor")
      (footprints
        (fp C?)
        (fp C_????_*)
        (fp C_????)
        (fp SMD*_c)
        (fp Capacitor*))
      (fields
        (field (name Reference) C)
        (field (name Value) C))
      (pins
        (pin (num 1) (name ~) (type passive))
        (pin (num 2) (name ~) (type passive))))
    (libpart (lib conn) (part CONN_01X02)
      (description "Connector, single row, 01x02")
      (footprints
        (fp Pin_Header_Straight_1X02)
        (fp Pin_Header_Angled_1X02)
        (fp Socket_Strip_Straight_1X02)
        (fp Socket_Strip_Angled_1X02))
      (fields
        (field (name Reference) P)
        (field (name Value) CONN_01X02))
      (pins
        (pin (num 1) (name P1) (type passive))
        (pin (num 2) (name P2) (type passive))))
    (libpart (lib conn) (part CONN_01X04)
      (description "Connector, single row, 01x04")
      (footprints
        (fp Pin_Header_Straight_1X04)
        (fp Pin_Header_Angled_1X04)
        (fp Socket_Strip_Straight_1X04)
        (fp Socket_Strip_Angled_1X04))
      (fields
        (field (name Reference) P)
        (field (name Value) CONN_01X04))
      (pins
        (pin (num 1) (name P1) (type passive))
        (pin (num 2) (name P2) (type passive))
        (pin (num 3) (name P3) (type passive))
        (pin (num 4) (name P4) (type passive))))
    (libpart (lib device) (part D)
      (description Diode)
      (footprints
        (fp Diode_*)
        (fp D-Pak_TO252AA)
        (fp *SingleDiode)
        (fp *_Diode_*)
        (fp *SingleDiode*))
      (fields
        (field (name Reference) D)
        (field (name Value) D))
      (pins
        (pin (num 1) (name K) (type passive))
        (pin (num 2) (name A) (type passive))))
    (libpart (lib L298N) (part L298N)
      (fields
        (field (name Reference) U)
        (field (name Value) L298N)
        (field (name Footprint) DRIVER_L298N)
        (field (name Field4) "Multiwatt-15 STMicroelectronics")
        (field (name Field5) L298N)
        (field (name Field6) None)
        (field (name Field7) Unavailable)
        (field (name Field8) STMicroelectronics))
      (pins
        (pin (num 1) (name CSA) (type BiDi))
        (pin (num 2) (name OUTPUT1) (type output))
        (pin (num 3) (name OUTPUT2) (type output))
        (pin (num 4) (name SV-VS) (type power_in))
        (pin (num 5) (name INPUT1) (type input))
        (pin (num 6) (name ENABLEA) (type input))
        (pin (num 7) (name INPUT2) (type input))
        (pin (num 8) (name GND) (type passive))
        (pin (num 9) (name LV-VSS) (type power_in))
        (pin (num 10) (name INPUT3) (type input))
        (pin (num 11) (name ENABLEB) (type input))
        (pin (num 12) (name INPUT4) (type input))
        (pin (num 13) (name OUTPUT3) (type output))
        (pin (num 14) (name OUTPUT4) (type output))
        (pin (num 15) (name CSB) (type BiDi))))
    (libpart (lib device) (part R)
      (description Resistor)
      (footprints
        (fp R_*)
        (fp Resistor_*))
      (fields
        (field (name Reference) R)
        (field (name Value) R))
      (pins
        (pin (num 1) (name ~) (type passive))
        (pin (num 2) (name ~) (type passive)))))
  (libraries
    (library (logical L298N)
      (uri /home/sss/KiCad/library/L298N.lib))
    (library (logical device)
      (uri /usr/share/kicad/library/device.lib))
    (library (logical conn)
      (uri /usr/share/kicad/library/conn.lib)))
  (nets
    (net (code 1) (name "Net-(P2-Pad3)")
      (node (ref U1) (pin 7))
      (node (ref P2) (pin 3)))
    (net (code 2) (name "Net-(P2-Pad2)")
      (node (ref U1) (pin 10))
      (node (ref P2) (pin 2)))
    (net (code 3) (name "Net-(P2-Pad1)")
      (node (ref P2) (pin 1))
      (node (ref U1) (pin 12)))
    (net (code 4) (name "Net-(P1-Pad3)")
      (node (ref P1) (pin 3))
      (node (ref U1) (pin 6)))
    (net (code 5) (name "Net-(P2-Pad4)")
      (node (ref P2) (pin 4))
      (node (ref U1) (pin 5)))
    (net (code 6) (name "Net-(P1-Pad2)")
      (node (ref U1) (pin 11))
      (node (ref P1) (pin 2)))
    (net (code 7) (name +12V)
      (node (ref D7) (pin 1))
      (node (ref P5) (pin 2))
      (node (ref D3) (pin 1))
      (node (ref D1) (pin 1))
      (node (ref C2) (pin 2))
      (node (ref D5) (pin 1))
      (node (ref U1) (pin 4)))
    (net (code 8) (name "Net-(R1-Pad1)")
      (node (ref R1) (pin 1))
      (node (ref U1) (pin 1)))
    (net (code 9) (name "Net-(R2-Pad1)")
      (node (ref R2) (pin 1))
      (node (ref U1) (pin 15)))
    (net (code 10) (name GND)
      (node (ref D8) (pin 2))
      (node (ref D6) (pin 2))
      (node (ref D4) (pin 2))
      (node (ref D2) (pin 2))
      (node (ref C1) (pin 2))
      (node (ref C2) (pin 1))
      (node (ref R1) (pin 2))
      (node (ref R2) (pin 2))
      (node (ref U1) (pin 8))
      (node (ref P5) (pin 1))
      (node (ref P4) (pin 1)))
    (net (code 11) (name "Net-(D1-Pad2)")
      (node (ref U1) (pin 2))
      (node (ref D2) (pin 1))
      (node (ref D1) (pin 2))
      (node (ref P3) (pin 1)))
    (net (code 12) (name "Net-(D3-Pad2)")
      (node (ref U1) (pin 3))
      (node (ref P3) (pin 2))
      (node (ref D4) (pin 1))
      (node (ref D3) (pin 2)))
    (net (code 13) (name +5V)
      (node (ref P1) (pin 4))
      (node (ref P1) (pin 1))
      (node (ref P4) (pin 2))
      (node (ref C1) (pin 1))
      (node (ref U1) (pin 9)))
    (net (code 14) (name "Net-(D5-Pad2)")
      (node (ref D5) (pin 2))
      (node (ref U1) (pin 13))
      (node (ref D6) (pin 1))
      (node (ref P3) (pin 3)))
    (net (code 15) (name "Net-(D7-Pad2)")
      (node (ref D8) (pin 1))
      (node (ref P3) (pin 4))
      (node (ref U1) (pin 14))
      (node (ref D7) (pin 2)))))

Also, the tracks have the default KiCad size (0.25mm) for most except PWR lines with 1mm width. I'm planning to etch the board myself.


\$\endgroup\$
  • \$\begingroup\$ Your diode choice may not be the best. These have a very significant reverse leakage current of several milliamps; about a thousand times that of the 1N4004 you mention also having. And definitely don't use the 1N60! That's a germanium diode, which usually have very high reverse leakage currents, even worse than Schottky diodes. Not to mention that they're obsolete and hard to find; those practically belong in a museum. \$\endgroup\$ – Hearth Nov 22 '18 at 13:52
  • \$\begingroup\$ Hm, perhaps I was wrong about the bad reverse leakage; dug up an ancient datasheet and the rating isn't that bad, certainly not worse than that Schottky one you mention using. Still, though, it's a very obsolete part. \$\endgroup\$ – Hearth Nov 22 '18 at 14:00
  • 1
    \$\begingroup\$ Worth some consideration. \$\endgroup\$ – Andy aka Nov 22 '18 at 14:08
  • \$\begingroup\$ I would call R1, R2 current sensing resistors. If you don't really care worst-case scenario (short-circuit), then you can ignore and short them out. \$\endgroup\$ – Long Pham Nov 22 '18 at 14:16
  • \$\begingroup\$ Thin traces connect R1, R2 (0.011 ohm) to ground. Try to connect these high-current paths with larger width of copper. +12V paths also carry large currents that might benefit from wider traces. Single-sided board with no plate-through holes? If so, pads should be large diameter so that they don't de-laminate from strain on connectors & large components. \$\endgroup\$ – glen_geek Nov 22 '18 at 14:28
0
\$\begingroup\$

I suggest you read the datasheet, before you start a design. The datasheet is the source of all good information. First of all the datasheet states that the diodes must be Fast 2A with VF <1.2V@ I=2A and the trr< 200ns. This is the first step for a good design. R1 and R2 might need to be larger, as they are the sense resistors for the driver. this means that all of the current that goes through your load goes through these resistors.

The traces that will required to be beefed up, are the ones from the following pins: 1,2,3,4,13,14,15. Depending on the current of your load, the connectors for the power input and motor output might need to be bigger.

Make sure that you have taken into account the power dissipation of the L298. Depending on the load, you might need a heatsink.

Layout wise, I would make the pads of the L298 Oblong, so that you will have better chances at not ripping out the pads while drilling the holes, and give a more solid base for the solder joints.

|improve this answer|||||
\$\endgroup\$
  • \$\begingroup\$ Wouldn't it be better to drill holes before etching? That said, if it's necessary I can also electroplate the copper clad to make it thicker. \$\endgroup\$ – Loïc Faure-Lacroix Nov 22 '18 at 14:53
  • \$\begingroup\$ In commercial manufacturing the holes are drilled before etching, but generally in home etched PCBs this is done at the end. There are two simple reasons for this, first of which is knowing where to drill, as on a solid plate of copper, it is close to impossible unless you have a CNC, but most people don't. Alignment of the traces to the holes, now becomes critical, and you also risk to over etch inside the holes. Electroplating might help with that. \$\endgroup\$ – Elmesito Nov 22 '18 at 14:59
  • 1
    \$\begingroup\$ Etch first, drill later...otherwise copper will etch away from the drill hole, making soldering more difficult. It is a good plan to design a pad with a tiny diameter hole that is used as a guide for your drill. \$\endgroup\$ – glen_geek Nov 22 '18 at 14:59
  • \$\begingroup\$ @glen_geek Yes, It makes a lot of sense, etching a little point might help center the bit in pad. \$\endgroup\$ – Loïc Faure-Lacroix Nov 22 '18 at 15:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.