Skip to content

Commit

Permalink
Merge pull request #5 from Infineon/tle94112
Browse files Browse the repository at this point in the history
Tle94112
  • Loading branch information
OlafFilies committed Nov 4, 2019
2 parents 884e827 + 782047f commit 5ead4e3
Show file tree
Hide file tree
Showing 24 changed files with 11,400 additions and 1,059 deletions.
39 changes: 21 additions & 18 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,39 @@
language: python
python:
- "2.7"

sudo: required

branches:
only:
- master
only:
- tle94112

env:
global:
- USR_NAME="mhoechner"
- USR_EMAIL="[email protected]"
# new token needs to be generated & encrypted
- secure: OLSYr2ioMsqS+l43+s+yzfaVeCTK0Z1ky+Tm31bHdU66Ahq8+ZiDNX4fVDuziJtuHJWR3pEmqnYdSqSqcuByObM+I7uW3RaV2fOAtvCnWQcar5jt0+TYHuuLbfLu7vsL6ntBkQJXWibLO3JlVFp8ZVNd33WUE0mrnNdR7xormwy6EV7Ry9X/j43G+zHGjAKXxcfWIKs279pHvhtye4Vhlg3U8MkEwlkgpGiMbpWmk5CaePTi82KuoIOAceVZ8ixssuqpt4DgCnl7m6t1D+8MnjXxPLISvOr0pHNHTJ+3/gv1dGUrxENyPiW9d1q8OnrKyD9CniqC6Rklj+g5mhR+v+FJvjfa2k85SXVvFYikkqUyXkIVZkJu+PxZX0mfY18SbI7GB8mOkjgcusI9KhzNhZJQxUzza/DBe2MOR72mHVdpHlsOtx/1PjaUjJtS6lFBBZw1gCKYsFkGU3UfY+Jr3yajU1veCICgde0gm3SfhCDsQVymi7hsfnbBj8YhrY1K5+YJ6JHk5Wu6x2SsT8Al2/YSZoDdUDCZZ8Y4WNO+ZY2vF0ZU3jOcK/JSuLV6W7VzXAhSaYHVAHq2fXNgW7EWkRaLeFGtjgwvZIkhQ1Mrsl6oObMJhFhaD6vP4MlwvTWKp0MB8NdFWsgR2ITU80sREp4RBzJVSQIvLiBCIwi0upY=
- USR_NAME="Dr Olaf Filies (IFAG DES MDP PSA)"
- USR_EMAIL="[email protected]"
matrix:
- PLATFORMIO_CI_SRC=examples/Control2Motors
- PLATFORMIO_CI_SRC=examples/Control2Motors
- PLATFORMIO_CI_SRC=examples/rampSpeedTest
- PLATFORMIO_CI_SRC=examples/rampTest
- PLATFORMIO_CI_SRC=examples/speedControl
- PLATFORMIO_CI_SRC=examples/speedControll

install:
# build with stable core
- pip install -U platformio
- platformio platform install https://github.com/Infineon/platformio-infineonxmc.git
- platformio platform install -f infineonxmc

script:
- platformio ci --lib="." --board=xmc1100_xmc2go --board=xmc1100_boot_kit --board=xmc1100_h_bridge2go --board=xmc1300_boot_kit --board=xmc4700_relax_kit --project-option="lib_deps=Wire"
- platformio ci --lib="." --board=xmc1100_xmc2go --board=xmc1100_boot_kit --board=xmc4700_relax_kit --board=uno

after_success:
# only build once (after one job by checking id, however this does not work reliably)
# - |
# if [ $(($TRAVIS_JOB_ID - $TRAVIS_BUILD_ID)) -eq 2 ]; then
# export REPO_NAME=${TRAVIS_REPO_SLUG#*/}
# git clone https://github.com/Infineon/InfineonDoxyGenerator.git
# cd well-automated-documentation/docs
# # cd $TRAVIS_BUILD_DIR/docs
# chmod +x publish_pdf.sh
# ./publish_pdf.sh
# fi
- |
if [ $(($TRAVIS_JOB_ID - $TRAVIS_BUILD_ID)) -eq 2 ]; then
export REPO_NAME=${TRAVIS_REPO_SLUG#*/}
#git clone https://github.com/Infineon/InfineonDoxyGenerator.git
cd InfineonDoxyGenerator/docs
chmod +x publish_pdf.sh
./publish_pdf.sh
fi
58 changes: 32 additions & 26 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ license of the respective file and putting it under the same license (except
stated otherwise by the license).
All rights of the respective copyright holders shall be reserved.
Brands and product names are trademarks of their respective owners.
Referred and linked files/pages are out-of-scope of this repository and underly
Referred and linked files/pages are out-of-scope of this repository and underlay
their respective licenses.
```
In case of deviating information in this repository, license information
Expand All @@ -16,31 +16,37 @@ valid in the scope of the repository (not if statement here is not applicable).
## License

*********************************************************************************************************************
* Copyright (c) 2017, Infineon Technologies AG
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
* following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
* disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided with the distribution.
*
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
* products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* To improve the quality of the software, users are encouraged to share modifications, enhancements or bug fixes with
* Infineon Technologies AG.
Copyright (c) 2017, Infineon Technologies AG
All rights reserved.


Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:


Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.


Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.


Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


To improve the quality of the software, users are encouraged to share modifications, enhancements or bug fixes with
Infineon Technologies AG.
*********************************************************************************************************************


32 changes: 20 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

[![Build Status](https://travis-ci.org/Infineon/DC-Motor-Control-TLE94112EL.svg?branch=master)](https://travis-ci.org/Infineon/DC-Motor-Control-TLE94112EL)

<img src="https://github.com/Infineon/Assets/blob/master/Pictures/TLE94112EL_Shield.png" width="400">

Library of Infineon's [DC Motor Shield with TLE94112EL](https://www.infineon.com/cms/en/product/productType.html?productType=5546d46259d9a4bf015a369885a95505) for Arduino.
<img src="https://github.com/Infineon/Assets/raw/master/Pictures/TLE94112EL_Shield.png" style="max-width:100%;" width="400">


Library of Infineon's [DC Motor Shield with TLE94112EL](https://www.infineon.com/cms/en/product/evaluation-boards/tle94112el_shield/) for Arduino.

## Summary
The DC motor shield is a small evaluation board equipped with TLE94112EL for use with Arduino. The TLE94112EL is capable to drive up to 6 small DC motors in parallel mode or up to 11 DC motors in cascaded mode. All outputs can drive up to 0.9A. The outputs can be used stand-alone or combined to increase driving capability up to 3.6A. The implemented integrated [TLE94112EL](https://www.infineon.com/cms/en/product/power/motor-control-and-gate-driver-ics/intelligent-motor-control-ics/multi-half-bridge-driver/TLE94112EL/productType.html?productType=5546d46254e133b4015538ca99e552a1) is a protected twelve-fold half-bridge driver designed especially for automotive motion control applications such as Heating, Ventilation and Air Conditioning (HVAC) flap DC motor control.
The DC motor shield is a small evaluation board equipped with TLE94112EL for use with Arduino. The TLE94112EL is capable to drive up to 6
small DC motors in parallel mode or up to 11 DC motors in cascaded mode. All outputs can drive up to 0.9A. The outputs can be used stand-alone
or combined to increase driving capability up to 3.6A. The implemented integrated [TLE94112EL](https://www.infineon.com/cms/en/product/power/motor-control-ics/intelligent-motor-control-ics/multi-half-bridge-ics/tle94112el/)
is a protected twelve-fold half-bridge driver designed especially for automotive motion control applications such as Heating, Ventilation and Air Conditioning (HVAC) flap DC motor control.

## Key Features and Benefits
* Driver with 12 half-bridge outputs to drive DC motors, resistive or inductive loads
Expand All @@ -19,6 +24,8 @@ The DC motor shield is a small evaluation board equipped with TLE94112EL for use
* Efficient design for multi-motor applications
* Less communication with µC through integrated PWM generator and zero clock diagnosis
* Reducing external components to meet EMC requirements
* The board is stackable if you change the position of a resistor, [see here](https://raw.githubusercontent.com/infineon/assets/master/Pictures/TLE94112_Arduino_Shield_Pin_out.png)
* LED driver on the first half-bridge

## Target Applications:
* Multi-motor applications
Expand All @@ -27,17 +34,18 @@ The DC motor shield is a small evaluation board equipped with TLE94112EL for use
* HVAC systems

## Installation
First of all, please download this repository from GitHub by clicking on the following field in the [releases](https://github.com/Infineon/DC-Motor-Control-TLE94112EL/releases) of this repository.
For the description of library [installation](docs/Installation.md)

![Download Library](https://raw.githubusercontent.com/infineon/assets/master/Pictures/DL_DC_Mot_Rel-TLE94112EL.png)
## Examples
For the description of the [examples](docs/Examples.md)

To install the DC motor control library in the Arduino IDE, please go now to **Sketch** > **Include Library** > **Add .ZIP Library...** in the Arduino IDE and navigate to the downloaded .ZIP file of this repository release. The library will be installed in your Arduino sketch folder in libraries and you can select as well as include this one to your project under **Sketch** > **Include Library** > **TLE94112**.
## Library documentation
The doxygen [library documentation](https://infineon.github.io/DC-Motor-Control-TLE94112EL/).

![Install Library](https://raw.githubusercontent.com/infineon/assets/master/Pictures/Library_Install_ZIP.png)

## Usage
Please follow the example sketches in the /examples directory in this library to learn more about the usage of the library.

## Board Information, Datasheet and Additional Information
A PDF summarizing the features and layout of the DC motor control shield is stored on the Infineon homepage [here](https://www.infineon.com/dgdl/Infineon-DC_Motor_Control_Shield_with_TLE94112EL_UserManual-UM-v01_00-EN.pdf?fileId=5546d46259d9a4bf015a4755351304ac).
The datasheet for the TLE94112EL can be found here [TLE94112EL Datasheet](https://www.infineon.com/dgdl/Infineon-TLE94112EL-DS-v01_00-EN.pdf?fileId=5546d462576f347501579a2795837d3e) while the respective application note is located here [TLE941xy Application Note](https://www.infineon.com/dgdl/Infineon-TLE941xy-AN-v01_00-EN-AN-v01_00-EN-AN-v01_00-EN.pdf?fileId=5546d4625b62cd8a015bc8db26c831e3).
* A PDF summarizing the features and layout of the DC motor control shield is stored on the Infineon homepage [here](https://www.infineon.com/dgdl/Infineon-DC_Motor_Control_Shield_with_TLE94112EL_UserManual-UM-v01_00-EN.pdf?fileId=5546d46259d9a4bf015a4755351304ac).
* The datasheet for the TLE94112EL can be found here [TLE94112EL Datasheet](https://www.infineon.com/dgdl/Infineon-TLE94112EL-DS-v01_00-EN.pdf?fileId=5546d462576f347501579a2795837d3e)
* The respective application note is located here [TLE941xy Application Note](https://www.infineon.com/dgdl/Infineon-TLE941xy-AN-v01_00-EN-AN-v01_00-EN-AN-v01_00-EN.pdf?fileId=5546d4625b62cd8a015bc8db26c831e3).
* There is a pinout picture [Tle94112el pintout](https://raw.githubusercontent.com/infineon/assets/master/Pictures/TLE94112_Arduino_Shield_Pin_out.png)

13 changes: 13 additions & 0 deletions docs/Examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Examples2Go

## List of examples
To run this examples use either the Arduino IDE or something similar like the [PlatformIO](https://platformio.org/platformio-ide?utm_source=github&utm_medium=xmc-for-arduino) module for [code](https://code.visualstudio.com/) or [atom](https://atom.io/)
* examples/Control2Motors/Control2Motors.ino
* examples/rampSpeedTest/rampSpeedTest.ino
* examples/rampTest/rampTest.ino
* examples/speedControl/speedControl.ino

## DIY-projects
* there are two Lego robots using the TLE94112 shields for controlling motors.
* a [Lego rama driving robot](https://www.infineon.com/cms/en/tools/landing/infineon-for-makers/diy-projects/)
* a [Lego six axes robot](https://www.infineon.com/cms/en/tools/landing/infineon-for-makers/diy-projects/)
28 changes: 28 additions & 0 deletions docs/Installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Installation

## Integration of Library
Please download the required repository from GitHub by clicking on the following field in the latest [release](https://github.com/Infineon/DC-Motor-Control-TLE94112EL/releases) of this repository:

![Download Library](https://raw.githubusercontent.com/infineon/assets/master/Pictures/Releases_Generic.jpg)

To install the TLE94112 motor control library in the Arduino IDE, please go now to **Sketch** > **Include Library** > **Add .ZIP Library...** in
the Arduino IDE and navigate to the downloaded .ZIP file of this repository. The library will be installed in your Arduino sketch folder
in libraries and you can select as well as include this one to your project under **Sketch** > **Include Library** > **TLE94112**.

![Install Library](https://raw.githubusercontent.com/infineon/assets/master/Pictures/Library_Install_ZIP.png)

## Usage
Please follow the example sketches in the /examples directory in this library to learn more about the usage of the library.
For proper work of the TLE94112 the following tips may help:
* the TLE94112 works properly in the range of min 5.5V to max 40V Vbat
* the max current on one half bridge is 0.9 A, if you need more you have to cascade more half bridges, see [manual](https://www.infineon.com/dgdl/Infineon-TLE94112EL-DS-v01_00-EN.pdf?fileId=5546d462576f347501579a2795837d3e) and pin out picture
* the shield is stackable if you change the 0 \Omega resistor from R7/R8. There is also a hack to stack a max number of three TLE94112 (please ask if you need this)
* the first two ports can be directly used also for LEDs but with the help of right dimensioned resistors, any half bridge can be used
for LEDs or other stuff falling in the voltage and current limits of the board
* there is a handy [pin out picture](https://raw.githubusercontent.com/infineon/assets/master/Pictures/TLE94112_Arduino_Shield_Pin_out.png)
<img src="https://raw.githubusercontent.com/infineon/assets/master/Pictures/TLE94112_Arduino_Shield_Pin_out.png" width=100%>

## Installation of XMC
If you use any Infineon XMC microcontroller like the XMC1100 Boot Kit or the XMC4700 Relax Kit, than you must also
install the [XMC-for-Arduino library from here](https://github.com/Infineon/XMC-for-Arduino).

49 changes: 49 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
##################################################################################
# documentation build files
# - generates the html doxygen documentation
# needed software:
# - graphviz dot
# - doxygen 1.8.15 or higher

# Directories
SRC_DIR ?= ../
DOC_DIR ?= ./
DOC_IMG_DIR ?= ./img
DOC_BUILD_DIR ?= ./
DOT_PATH ?= /usr/bin/dot
# General settings
DOXYFILE ?= doxyfile_html
WORKING_DOXYFILE ?= temp_doxyfile
PROJECT_LOGO ?= ./img/ifx_logo.png
DOXYGEN_WARNING ?= warn.log

# Tools
CD ?= cd
ECHO ?= echo
DOXYGEN_ECHO ?= echo
RM ?= rm
RM_DIR ?= rm -rf
COPY ?= cp
DOXYGEN ?= ${DOXY_BIN_PATH}/doxygen

html:
@$(ECHO) Generating $@
@$(COPY) $(DOXYFILE) $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) >> $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) INPUT=$(SRC_DIR) >> $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) PROJECT_NAME= "Tle94112" >> $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) OUTPUT_DIRECTORY = $(DOC_BUILD_DIR) >> $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) PROJECT_LOGO = $(PROJECT_LOGO) >> $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) IMAGE_PATH = $(DOC_IMG_DIR) >> $(WORKING_DOXYFILE)
@$(DOXYGEN_ECHO) DOT_PATH = "$(DOT_PATH)" >> $(WORKING_DOXYFILE)
@$(DOXYGEN) $(WORKING_DOXYFILE)

clean:
@$(ECHO) Removing build directory
@$(RM_DIR) $(DOC_BUILD_DIR)
@$(ECHO) Removing temporary files
@$(RM) $(DOXYGEN_WARNING)
@$(RM) $(WORKING_DOXYFILE)
@$(RM) $(LIBRARY_NAME).pdf

.PHONY: lib_doc clean
Loading

0 comments on commit 5ead4e3

Please sign in to comment.