Difference between revisions of "2 Kilowatt DC Motor Controller"

From Lofaro Lab Wiki
Jump to: navigation, search
(Instructions on how to flash the MCU)
 
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
== Flashing the MCU ==
+
== Introduction ==
You can flash and debug the MCU using any JTAG programmer / debugger supported by Code Composer Studio. If you do not already have a JTAG probe, consider using the TI TM4C123 Launchpad development board, which doubles as a JTAG probe. To do so, you must first solder a JTAG header to the Launchpad and connect the pins as described in [http://www.ti.com/lit/an/spma075/spma075.pdf Using TM4C Devices Over JTAG]. Additionally, you will need to buy an adapter to go from the 2.54mm pitch header of the Launchpad to the 1.27mm pitch of the 10-pin ARM JTAG connector on the motor controller. The [https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-20-10/ Olimex 20-pin to 10-pin JTAG adapter] is convenient for this purpose.
+
The 2 kilowatt DC Motor Controller provides torque and velocity control of large brushed DC motors. The device can be configured and commanded over a CAN bus. Additionally, sensor feedback over CAN can be performed automatically at 100 Hz or asynchronously upon request. Additional logging for debug purposes can be performed over UART. The motor controller protects itself against overcurrent and overheating faults. If a temperature probe mounted on the motor is connected, the motor controller will protect against the motor overheating as well.  
  
[[File:Jtag-probe.jpg|640px]]
+
[[File:2kw-motor-controller-running.jpg|400px]]
  
Once you have the JTAG probe hooked up, open up the project in Code Composer Studio. Check that the settings in the "target_config.ccxml" file match the JTAG probe you are using. If using a Launchpad, you must select "Stellaris In-Circuit Debug Interface", as shown below.
 
  
[[File:Ccs-target config.png|640px]]
+
== Motor Controller Specifications ==
 +
{|
 +
|  Maximum continuous current || 90 amps
 +
|-
 +
|  Maximum transient current || Configurable / application specific
 +
|-
 +
|  Maximum motor voltage || 65 amps
 +
|-
 +
|  Maximum power output || 5.8 kw (estimated)
 +
|-
 +
|  Controller operating voltage || 6 - 9V
 +
|-
 +
|  Controller operating current (max) || 400 mA
 +
|-
 +
|  Communication interfaces || CAN, UART
 +
|-
 +
|  Programming interface || JTAG
 +
|-
 +
|  Current control || Yes
 +
|-
 +
|  Velocity control || Yes
 +
|-
 +
|  Position control || No
 +
|-
 +
|  Thermal protection || Yes
 +
|-
 +
|  Overcurrent protection || Yes
 +
|-
 +
|  Battery voltage monitoring || Yes
 +
|}
  
Once this is done, build the project by clicking the 'hammer icon, and then flash the MCU by clicking the 'debug' icon:
 
  
[[File:Ccs-build-flash.png|640px]]
+
 
 +
''' Power ratings '''
 +
 
 +
The 2 kilowatt designation refers to the maximum power output when using a 24V power supply. The motor controller is designed to operate at up to 65V, at which point it should be capable of delivering about 5.8 kW to a motor. However, it has not been tested at voltages above 24V.
 +
 
 +
 
 +
''' Maximum current ratings'''
 +
 
 +
You can configure the thresholds for the maximum average current and maximum instantaneous current which will cause a fault. It is not recommended to set the maximum average current limit beyond 90A. It is ''probably'' safe to run short transient currents of much more than 90A (e.g. 150A for some tens of milliseconds at motor startup), but no testing has been done of this kind of operation and no guarantees are made about the safety of doing so.
 +
 
 +
 
 +
== Design Files ==
 +
 
 +
The design files are on Github: [https://github.com/ofdouglas/2kwMotorController]
 +
 
 +
== Instructions ==
 +
* [[Building the Motor Controller]]
 +
 
 +
* [[Flashing the MCU]]
 +
 
 +
* [[Using the Python CLI]]

Latest revision as of 23:22, 2 December 2017

Introduction

The 2 kilowatt DC Motor Controller provides torque and velocity control of large brushed DC motors. The device can be configured and commanded over a CAN bus. Additionally, sensor feedback over CAN can be performed automatically at 100 Hz or asynchronously upon request. Additional logging for debug purposes can be performed over UART. The motor controller protects itself against overcurrent and overheating faults. If a temperature probe mounted on the motor is connected, the motor controller will protect against the motor overheating as well.

2kw-motor-controller-running.jpg


Motor Controller Specifications

Maximum continuous current 90 amps
Maximum transient current Configurable / application specific
Maximum motor voltage 65 amps
Maximum power output 5.8 kw (estimated)
Controller operating voltage 6 - 9V
Controller operating current (max) 400 mA
Communication interfaces CAN, UART
Programming interface JTAG
Current control Yes
Velocity control Yes
Position control No
Thermal protection Yes
Overcurrent protection Yes
Battery voltage monitoring Yes


Power ratings

The 2 kilowatt designation refers to the maximum power output when using a 24V power supply. The motor controller is designed to operate at up to 65V, at which point it should be capable of delivering about 5.8 kW to a motor. However, it has not been tested at voltages above 24V.


Maximum current ratings

You can configure the thresholds for the maximum average current and maximum instantaneous current which will cause a fault. It is not recommended to set the maximum average current limit beyond 90A. It is probably safe to run short transient currents of much more than 90A (e.g. 150A for some tens of milliseconds at motor startup), but no testing has been done of this kind of operation and no guarantees are made about the safety of doing so.


Design Files

The design files are on Github: [1]

Instructions