-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fe39cea
commit 4f3d0b4
Showing
8 changed files
with
908 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#include <TLE94112.h> | ||
|
||
|
||
void setup() { | ||
int dc = 100; | ||
//Serial for debug output | ||
Serial.begin(9600); | ||
while(!Serial); | ||
|
||
//LED | ||
pinMode(LED1, OUTPUT); | ||
|
||
//power supply voltage should be available before tle94112.begin() is called | ||
delay(100); | ||
//enable tle94112 | ||
tle94112.begin(); | ||
|
||
/* | ||
//update motor speed | ||
//three different frequencies are shown on oscilloscope | ||
tle94112.configPWM(tle94112.TLE_PWM1, tle94112.TLE_FREQ80HZ, dc); | ||
tle94112.configPWM(tle94112.TLE_PWM2, tle94112.TLE_FREQ100HZ, dc); | ||
tle94112.configPWM(tle94112.TLE_PWM3, tle94112.TLE_FREQ200HZ, dc); | ||
*/ | ||
|
||
//halfbridges for outputting HIGH or PWM | ||
tle94112.configHB(tle94112.TLE_HB1, tle94112.TLE_HIGH, tle94112.TLE_PWM1); | ||
tle94112.configHB(tle94112.TLE_HB2, tle94112.TLE_HIGH, tle94112.TLE_PWM2); | ||
tle94112.configHB(tle94112.TLE_HB3, tle94112.TLE_HIGH, tle94112.TLE_PWM3); | ||
tle94112.configHB(tle94112.TLE_HB4, tle94112.TLE_HIGH, tle94112.TLE_NOPWM); | ||
|
||
//halfbridges outputting LOW | ||
tle94112.configHB(tle94112.TLE_HB5, tle94112.TLE_LOW, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB6, tle94112.TLE_LOW, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB7, tle94112.TLE_LOW, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB8, tle94112.TLE_LOW, tle94112.TLE_NOPWM); | ||
|
||
//halfbridges floating / inactive | ||
tle94112.configHB(tle94112.TLE_HB9, tle94112.TLE_FLOATING, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB10, tle94112.TLE_FLOATING, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB11, tle94112.TLE_FLOATING, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB12, tle94112.TLE_FLOATING, tle94112.TLE_NOPWM); | ||
} | ||
|
||
//duty cycle | ||
int dc = 100; | ||
|
||
void loop() { | ||
|
||
//update dutycycle to show animation on oscilloscope | ||
dc = (dc + 8) % 255; | ||
|
||
//update motor speed | ||
//three different frequencies are shown on oscilloscope | ||
tle94112.configPWM(tle94112.TLE_PWM1, tle94112.TLE_FREQ80HZ, dc); | ||
tle94112.configPWM(tle94112.TLE_PWM2, tle94112.TLE_FREQ100HZ, dc); | ||
tle94112.configPWM(tle94112.TLE_PWM3, tle94112.TLE_FREQ200HZ, dc); | ||
|
||
|
||
//print diagnosis information | ||
int diagnosis = tle94112.getSysDiagnosis(); | ||
if(diagnosis==tle94112.TLE_STATUS_OK) | ||
{ | ||
Serial.println("Status: OK"); | ||
} | ||
else | ||
{ | ||
Serial.print("Status: Error! "); | ||
Serial.println(diagnosis); | ||
tle94112.clearErrors(); | ||
} | ||
|
||
//let LED blink to show that program is still running | ||
delay(200); | ||
digitalWrite(LED1, HIGH); | ||
delay(200); | ||
digitalWrite(LED1, LOW); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#include <TLE94112.h> | ||
|
||
#define pinDir 5 | ||
#define pinSpeed A1 | ||
//connect motor between halfbridge 1 and halfbridge 2 | ||
|
||
|
||
void setup() { | ||
//power supply voltage should be available before tle94112.begin() is called | ||
delay(100); | ||
//enable tle94112 | ||
tle94112.begin(); | ||
|
||
pinMode(pinDir, INPUT); | ||
pinMode(pinSpeed, INPUT); | ||
} | ||
|
||
|
||
void loop() { | ||
//get desired direction from digital pin | ||
int dir = digitalRead(pinDir); | ||
if(dir == HIGH) | ||
{ | ||
tle94112.configHB(tle94112.TLE_HB1, tle94112.TLE_HIGH, tle94112.TLE_PWM1); | ||
tle94112.configHB(tle94112.TLE_HB2, tle94112.TLE_LOW, tle94112.TLE_NOPWM); | ||
} | ||
else | ||
{ | ||
tle94112.configHB(tle94112.TLE_HB1, tle94112.TLE_LOW, tle94112.TLE_NOPWM); | ||
tle94112.configHB(tle94112.TLE_HB2, tle94112.TLE_HIGH, tle94112.TLE_PWM1); | ||
} | ||
|
||
//get desired motor speed from analog input | ||
int dc = analogRead(pinSpeed) >> 2; | ||
//update motor speed | ||
tle94112.configPWM(tle94112.TLE_PWM1, tle94112.TLE_FREQ80HZ, dc); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
####################################### | ||
# Syntax Coloring Map For TLE94112 | ||
####################################### | ||
|
||
####################################### | ||
# Datatypes (KEYWORD1) | ||
####################################### | ||
|
||
Tle94112 KEYWORD1 | ||
|
||
|
||
|
||
####################################### | ||
# Methods and Functions (KEYWORD2) | ||
####################################### | ||
|
||
begin KEYWORD2 | ||
end KEYWORD2 | ||
configHB KEYWORD2 | ||
configPWM KEYWORD2 | ||
getSysDiagnosis KEYWORD2 | ||
getHBOverCurrent KEYWORD2 | ||
getHBOpenLoad KEYWORD2 | ||
clearErrors KEYWORD2 | ||
|
||
|
||
|
||
####################################### | ||
# Instances (KEYWORD2) | ||
####################################### | ||
|
||
tle94112 KEYWORD2 | ||
tle94112_2 KEYWORD2 | ||
|
||
|
||
|
||
####################################### | ||
# Constants (LITERAL1) | ||
####################################### | ||
|
||
TLE_HB1 LITERAL1 | ||
TLE_HB2 LITERAL1 | ||
TLE_HB3 LITERAL1 | ||
TLE_HB4 LITERAL1 | ||
TLE_HB5 LITERAL1 | ||
TLE_HB6 LITERAL1 | ||
TLE_HB7 LITERAL1 | ||
TLE_HB8 LITERAL1 | ||
TLE_HB9 LITERAL1 | ||
TLE_HB10 LITERAL1 | ||
TLE_HB11 LITERAL1 | ||
TLE_HB12 LITERAL1 | ||
|
||
TLE_NOPWM LITERAL1 | ||
TLE_PWM1 LITERAL1 | ||
TLE_PWM2 LITERAL1 | ||
TLE_PWM3 LITERAL1 | ||
|
||
TLE_FLOATING LITERAL1 | ||
TLE_LOW LITERAL1 | ||
TLE_HIGH LITERAL1 | ||
|
||
TLE_FREQOFF LITERAL1 | ||
TLE_FREQ80HZ LITERAL1 | ||
TLE_FREQ100HZ LITERAL1 | ||
TLE_FREQ200HZ LITERAL1 | ||
|
||
TLE_SPI_ERROR LITERAL1 | ||
TLE_LOAD_ERROR LITERAL1 | ||
TLE_UNDER_VOLTAGE LITERAL1 | ||
TLE_OVER_VOLTAGE LITERAL1 | ||
TLE_POWER_ON_RESET LITERAL1 | ||
TLE_TEMP_SHUTDOWN LITERAL1 | ||
TLE_TEMP_WARNING LITERAL1 | ||
|
||
TLE_STATUS_OK LITERAL1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
name=TLE94112 | ||
version=0.1.0 | ||
author=Infineon Technologies | ||
maintainer=Infineon Technologies <www.infineon.com> | ||
sentence=This library provides an interface for Infineon's DC Motor Control Shield with TLE94112EL | ||
paragraph=This shield provides 12 half-bridges which can drive up to 6 indipendent (+5 cascaded) bidirectional motors consuming up to 0.9 Ampere each | ||
category=Device Control | ||
url=https://www.infineon.com/dgdl/Infineon-DC_Motor_Control_Shield_with_TLE94112EL_UserManual-UM-v01_00-EN.pdf?fileId=5546d46259d9a4bf015a4755351304ac | ||
architectures=* |
Oops, something went wrong.