Element14 was kind enough to provide me with an Infineon DC Motor Control Shield after the Internet of Holiday Lights RoadTest Plus, in which contestants were given another Infineon shield as part of the kit: the Infineon RGB LED Shield.
This post will cover my first observations and tests using the DC Motor Shield. You can find my review and project using the RGB LED Shield here.
DC Motor Shield
The shield is built around two BTN8982TA: a high current half bridge for motor control applications.
The BTN8982TA package consists of:
- a driver circuit
- one p-channel highside MOSFET
- one n-channel lowside MOSFET
Offering:
- logic level inputs (driver circuit)
- high PWM frequency control capabilities
- various protections, such as: undervoltage, short circuit, overcurrent and overtemperature
- diagnosis with current sense
- adjustable slew rates (fixed on the shield though)
First observations
Out of the package, the board looks very well made and of high quality. There are however a few things that immediately drew my attention:
- no headers on the board or in the box
- a huge vertically mounted capacitor
- no (screw) terminals, but instead big ring shaped pads
No headers
This was already the case with the RGB LED Shield. My main problem with this is that you cannot start using the shield right away. If you have anticipated for the missing headers, the only remaining task is to solder them on. Else, you’re stuck with an unusable shield until you are able to find a fitting pair of headers, which would probably delay you a day or two.
The fact that no headers are soldered on does give you the option to choose your own header type though: stackable, long, short, … Whatever type suits your needs.
My suggestion remains the same as last time: include a pair of tall stackable headers in the box, preferably even soldered on.
Huge capacitor
The huge capacitor in the middle of the board really sticks out: about 25mm! One of the advantages of the BTN8982TA, is that it has very low board space consumption for the features it offers. I personally feel the capacitor obsoletes that advantage completely. It also prevents other shields to be stacked on top of this one, which seems like a big problem as other shields with displays or prototyping areas require to be on top.
Couldn’t the capacitor have been put on its side ?
No (screw) terminals
One of the things I liked very much about the RGB LED Shield, were the screw-less terminals for both the power supply and the RGB LED strip. I was expecting something similar for this shield, but instead found big ring shaped pads. This will require soldering as opposed to the terminals, which makes it less practical for testing different types of motors and power supplies.
Is there a specific reason (except cost), why pads would be better than (screw) terminals ?
Software
I was looking for some sample code to use the shield with an Arduino, but I couldn’t find any!
Not on the Infineon or E14’s pages on the shield:
Unfortunate, but not a disaster as the shield seems easy enough to control.
This is the test sketch I came up with for testing:
First tests
There are two tests I wanted to perform using the motors I had at hand:
- half-bridge configuration: controlling two unidirectional DC motors
- H-bridge configuration: controlling a single bidirectional DC motor
But first … finding a set of suitable headers to be able to use the shield and make some practical modifications.
Headers
I’ve ordered tall stackable headers for Arduino, but it will take some days until they get here. In the mean time, I’ve been experimenting with what I had at hand.
The first tests was to use different size male headers with an Arduin UNO. Using the typical size male headers, there was contact between the shield’s VBAT connector and the UNO’s USB port, which would create a very nasty short circuit. With a different size male headers the problem was resolved for the UNO.
The next test was about finding suitable headers for the YUN. The Arduino YUN has a vertically mounted USB port and an ethernet port, which are sure to cause problems as they are taller than the UNO’s USB port. The tall headers working for the UNO were too short for the YUN and had to be combined with intermediate female headers.
The following is the result with extra tall stacking headers. There is just enough clearance for the YUN. I put some tape on the bottom side of the shield to avoid direct contact. With the capacitor on its side, other shields can be used as well, although they should have long headers.
Modifications
There are two modifications I made, based on the feedback given during my first observations: laying the capacitor on its side and using screw terminals.
Single bidirectional motor
To use a single bidirectional motor with the shield, following steps were taken:
- connect the motor to OUT1 and OUT2
- connect a power supply (I used 12V/2A)
- set INH1 and INH2 to HIGH
- use IN1 for direction 1, IN2 for direction 2
Two unidirectional motors
To use a two unidirectional motors with the shield, following steps were taken:
- connect the motor 1 to OUT1 and GND, motor 2 to OUT2 and GND
- connect a power supply (I used 12V/2A)
- set INH1 and INH2 to HIGH
- use IN1 to control motor 1, IN2 for motor 2
Demo
Here’s a video of the different modes in action:
Calling something a shield would suggest it was going to be used with headers so it would make sense to include them. Wondering if those big holes are intended for use with terminal posts?
Hi Andy,
from what I understood from other people is that you could use these holes in combination with nuts and bolts to attach motors with ring connectors. The size of the holes is also suitable for banana plugs.
Frederick
Thanks for sharing this. I am just wondering how you would code the BTN8982TA chip for 3-phase motor.
Based on the datasheet “http://www.infineon.com/dgdl/Infineon-BTN8982TA-DS-v01_00-EN.pdf?fileId=db3a30433fa9412f013fbe32289b7c17&ack=t “, it said it can be combined 3 of them to form 3-phase drive configurations. And do you have any ideas how you would code the kind of application? I have built the circuit based on the datasheet.
And also for this case, how would you code this for just 1 motor, and both of the output from BTN8982TA are connected to both motor inputs?
Thanks so much!
Hi Frederick,
I just found your test of the Motor Control Shield. Thanks a lot. Even it is almost a year ago I just gives some comments.
Software examples and documentation were available just after you did your test. See:
http://www.infineon.com/cms/en/product/productType.html?productType=5546d4624ad04ef9014b07c0c07922e0
It was Infineons first Shield for Arduino. The missing headers were because of pricing. The shield should be as cheap as possible. It is intended for makers. The Shields which followed later on come with pin headers. Lesson learned 🙂
http://www.infineon.com/cms/en/tools/landing/arduino.html?channel=5546d4614b0b239c014ba1e6c4a73098
The half bridges are capable of driving 600W Motors (60A). This was the reason for the huge ring shaped pads.
They were intended for banana jacks. The 600W were also the reason for the large capacitor. Just in case somebody is driving such a strong motor, this so called DC-link capacitor is required to keep the voltage ripple at the Vs-pin of the NovalithIC™ low during switching operation. It could be replaced by smaller capacitors if used with smaller motors. Thanks a lot for testing and commenting on the Shield. I appreciate this.
Hello Johannes,
thank you for your feedback, great insights on why things were designed this way! Also glad to see things like headers and instructions are now solved! 🙂
Almost 2 years since you posted this, but hopefully you still remember something about it 🙂
The current sense/diagnostic pins IS are connected directly to the Arduino’s A0/A1 analog input pins. As I understand it the voltage at IS can be as high as Vs (which is 6-40V), which is far higher than the Arduino can handle.
Any idea how the current monitoring works?
Hi Anthony, it’s been so long, I don’t remember. I did see that Shabaz posted a useful reply on E14, which should hopefully help you forward 🙂