Infineon DC Motor Shield w/ TLE94112EL for Arduino - Review

Table of contents

RoadTest: Infineon DC Motor Shield w/ TLE94112EL for Arduino

Author: balearicdynamics

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Arduino UNO R3, Chipkit, Genuino 101 as main MCU board to test the shield in different environments. DC Motor controller for Arduino, my own development.

What were the biggest problems encountered?: Most of the problems met during the testing period were due to the software, but Infineon support was excellent in helping and solving the issues.

Detailed Review:



I must admit that this Road Test has been one of the better I ever done, as it was the most collaborative work with many great interactions between my work and the supplier technical support. By an end-user point of view, the reliability of the product should be considered at the same place of the supplier technical support. As a matter of fact, I encountered some issues during the testing that in the end turned to be a positive experience, as they helping me to learn more about the TLE94112LE IC features and possibilities.


After testing, I decided to involve this component in other projects I am currently working on. In the past year, I have been developing a (single) DC motor controller for Arduino aiming to create a motorized 3D printing filament feeder, now developed (supporting up to 6 filament rolls at the same time!) based on the Infineon shield.


Unpacking & package: what's inside

The package included two units: the Infineon TLE94112LE Arduino shield and the Infineon XMC1100 Boot KitXMC1100 Boot Kit Arduino compatible.


The shield was included in an antistatic bag, while the XMC1100 platform was blistered. According to me, that kind of packaging is fine for large quantities of items, on the contrary distributing single units in blisters means exposing the components toan high risk of damage.


XMC1100 Boot Kit

The adjective that best describes my first impression when I put my hands on this board was fascinating. Arduino form factor enables a lot of possibilities and the JTag capabilities many others. But after following the installation of the board in the Arduino IDE...


The first blocking issue

First board, first installation. Nothing was working. None on Mac (OSX) due a problem on the serial recognition but also nothing on Windows. JTag lite installation was completed but nothing worked at all and the board was not recognised by the system. The song of the silent hardware. After a number of tries, I discovered that for some reasons there was a JTag lite update on the laptop installation not synched automatically as expected with the Arduino Infineon XMC1100 library.

The very interesting aspect is the way that issue it was solved: it was the first proactive collaboration with the Infineon engineers (, and Infineon team). BTW, I needed a second XMC1100 board I bought by myself and a third board shipped (again) by Element14 to discover that the supposed hardware problem was a mere software issue.

You can find more about this story and how it has been solved on the Infineon XMC1100 GitHub repository readme file.


That said, the XMC1100 is a great and fast micro controller and I plan to use it in future in other projects as a better Arduino replacement.


TLE94112LE Arduino Shield

While I was trying to solve the problem of the XMC1100, I started working with the DC motor controller shield using an Arduino UNO.


To become more confident with the new device, I started testing the features with a 12V brushed motor and the provided demo software. I should admit that managing all the features of the board is not so easy, especially trying to get the feedback from the status registers on-the-run. The available documentation from the Infineon site is very good and exhaustive and covers all the features. I appreciated that the supplier made available both the IC data-sheet and a well-described shield user manual. The entire documentation set is available on the Infineon site Anyway, I have attached the most interesting document to this review.


Key features

I suggest to read the attached User Manual for a complete understanding of the board features; here, I list those that in my opinion are the most important characteristics that make the difference.


SPI protocol support


As shown in the above design, the micro-controller MCU communicates with the shield via the SPI protocol so only two effective PINs of the Arduino board are unavailable for other uses: pin 8 and 10. A third micro-controller GPIO will be used if (a max of) two shields are stacked up, so another board SPI select pin will be used to expand the system to 2 independent brushed DC motors controller by a single MCU. In this extended configuration also the GPIO pin 9 of the Arduino board should be dedicated to the motor control.


Robust and reliable diagnostics

The availability of the real time diagnostic system gives high precision feedback information on the state of every motor at any time, drastically reducing the number of direct feedback in charge to the micro controller. A single status register and a predefined bit mask through a single SPI reading return all the diagnostic information to the control program. It is worth to note the dual overtemperature protection available; before the temperature reaches too high values and damages the circuits, the pre-warning protection alerts that the system has entered a risk zone.


PWM output channels

Strictly related to the kind of brushed DC motor should be controlled we met a specific PWM control frequency and the best duty cycle min-max values range. The availability of three PWM channels - 80Hz, 100Hz and 200 Hz - assignable to the motors gives a considerable range of DC brushed motors controllable by the same IC. There are no limitations assigning the PWM channels to one of the three frequencies and different frequencies to groups of motors.


Why I consider special these three key factors

The great number of features included in the TLE94112LE IC makes this an excellent product with the great advantage of simplifying the hardware design and a need for very few external components. But these three features together - SPI communication, internal diagnostics and three flexible PWM channels and frequencies - give the possibility to manage a wide range of brushed DC motors at the same time with low impact on the MCU processing resources.

Seeing some other comparable DC motor controllers for low-cost micro-controllers the MCU resources are strongly involved. With TLE94112LE after the motor(s) have been set (PWM or not, freewheeling active or not, direction etc.) we just start the half bridges channels setting the right Hi/Low values and the motors start leaving the MCU immediately free to other tasks, as reading sensors, controlling states of the system etc.

That is the reason why it was possible to carry out the test projects I have created running without limitations on the AVR328p as well.


Another partially blocking issue

As mentioned above, due the issues in the XMC1100 Boot Kit the first phase of the study on the TLE94112 Shield has been done with Arduino UNO. In the meantime, with my great pleasure, Infineon development staff released a very good Arduino library for this board available on GitHub: Dc Motor Control TLE94112LE Arduino Library. I immediately adopted the library, but on the first compilation with the Arduino IDE I got some hundred of errors reporting a wrong false to FALSE define conversion error. After investigating in the library sources, I found the error and reported an issue in the library repository that can be found here; I have also setup a workaround patch and developed the first single motor project for this road test, the 3D Printer Filament Automatic Dispenser for Arduino - #1 Design and Hardware and 3D Printer Filament Automatic Dispenser for Arduino - #2 Connection and Software Everything was perfect until I started the development of the other project TLE94112 Interactive Testing Platform for which I decided to use the more performing XMC110 Boot Kit board as main MCU.

After the first compilation, the same bunch of errors! The bug was exclusive :{ I added in the library a preprocessor definition to decide what to do in the case of Arduino standard board alternatively to the XMC1100 board and updated the issue in the repository with a note. Everything worked fine again and I went ahead with the second project. After few days I was contacted on the Infineon GitHub repository about this issue. The  Infineon team was in action! After a night working on the problem together with (me testing image) he discovered that the bug was in a wrong assignment in the XMC110 board library for the Arduino IDE. That same night a new version of the board for the IDE has been released, I restored the original TLE94112LE Arduino library and everything worked fine.

Enjoy the project video below image


The test procedure

To test the features of the shield, I tried to build a reliable test platform which were easy to control with a set of single word instructions to see how the shield works in any possible condition. The image below shows the functional scheme I have setup. The communication dialog and platform configuration are shown on the terminal for the better interactivity.


Test platform setup

To test the signals in the different operating conditions I have used a Bitscope microBitscope micro 6/8 digital + 2 analog channels running on a desktop. The TLE94112LE shield was mounted on the Infineon XMC1100 Boot Kit and controlled via USB-to-serial connection by a terminal application running on an Android smartphone.


To track the tests, I used the commands to create several motors and PWM configurations; all the six motors were 6V brushed geared motors, 0,6 A wi a h gear reduction of 280:1.



The full project description of the testing platform can be found in the TLE94112 Interactive Testing Platform blog post and on the GitHub repository TLE94112LE.




Tests moved around what I considered the three most important signal classes: SPI communication, PWM reliability and Voltage levels. In all cases, also measures with a high capture resolution showed excellent results. I tested almost any possible configuration of PWM channels and frequencies associated to a single motor and group of motors and I always got the same good results. The setup configuration commands have been logged as shown in the images below.




My conclusions

I can close this last chapter in very few words. The TLE94114LE Shield is an excellent product offering all what promises. I think it can fit in an incredibly variety of applications almost in any field where brushed DC motors are involved.

Personally, this road test offered me the chance to experience the IC features in depth and I will definitely use it for a big open project I am about to start this month of July (soon announced to the Element14 community). I could only test motor applications, but the same board can also be used proficiently in a lot of non-motor based applications based on inductive devices and more.


A special thank should go to the Infineon support team that demonstrated to be an advanced supplier thanks to its reactivity and great support. I experienced it for myself.

Thanks to for text revision.