DRV8312-C2-KIT HowToRunGuide v101
DRV8312-C2-KIT HowToRunGuide v101
This Guide explains the steps needed to run the DRV8312-C2-KIT with the software supplied through
controlSUITE. The software is located at:
controlSUITE\developement_kits\DRV8312-C2-KIT_vXXX\
The following projects are currently available for the kit:
The document assumes the user has read the Kit’s Hardware Reference Guide and understood all
the safety measures that need to be taken. The guide is found under
controlSUITE\developement_kits\DRV8312-C2-KIT_vXXX\~Docs\
WARNING
This EVM is meant to be operated in a lab environment only and is not
considered by TI to be a finished end-product fit for general consumer use.
This EVM must be used only by qualified engineers and technicians familiar
with risks associated with handling high voltage electrical and
mechanical components, systems and subsystems.
This equipment operates at voltages and currents that can result in electrical
shock, fire hazard and/or personal injury if not properly handled or applied. Equipment must
be used with necessary caution and appropriate safeguards must be employed to avoid
personal injury or property damage.
It is the user’s responsibility to confirm that the voltages are identified and understood, prior
to energizing the board and or simulation. When energized, the EVM or components
connected to the EVM should not be touched.
Hardware Configuration
To experiment with digital motor control the following hardware components are needed:
DRV8312-EVM
TMS320F28035 controlCARD;
PMSM or BLDC Motor
PC with Code Composer Studio (CCSv4) installed
Additional instruments such as oscilloscope, digital multi-meter, current sensing probe and function
generator.
A high voltage DC power supply (Up to 50V DC)
The experimental setup and connection are illustrated in the following section. Refer to the Hardware
Guide and DRV8312-EVM schematic file for detailed configuration of each component and
connection of the system in detail.
Note: Keep all the power supplies to zero unless directed to energize.
1) Controller Power Domain which provides the 12V, 5V and 3.3V for the microcontroller, the logic
and the sensing circuit present on the board. Power for this can be driven from two sources:
2) DC Bus Power is the high voltage line that provides the voltage to the DRV8312 chip to generate
the power to the motor. The DC Bus is provided by an external DC power supply connected to the
PVDD and GND terminals or the J9 power entry jack. (Max 50V DC)
Motor Control Experiment HW Setup Instructions
For the purpose of the Motor Control Projects we will use the 24V DC supply that is shipped with the
kit to supply the DC bus voltage. The 12V control voltage will be regulated from the DC bus using the
on-board regulator.
1. Install Jumper JP1 in the VR1 position to configure for internal 12V supply.
2. Unpack the DIMM style controlCARD and verify that the DIP switch settings match Figure 1.
3. Place the controlCARD in the connector slot of J1. Push vertically down using even pressure from
both ends of the card until the clips snap and lock. (to remove the card simply spread open the
retaining clip with thumbs)
4. Connect a USB cable to J1 on the controlCARD. This will enable isolated JTAG emulation to the
C2000 device. LD4 on the controlCARD should turn on.
5. Connect a 24V power supply to the J9 power entry jack of the DRV8312-EVM. Now LED2 and
LED3 should turn on. Notice the control card LED would light up as well indicating the control
card is receiving power from the board.
6. Note that the motor should be connected to the MOA, MOB and MOC terminals after you finish
with the first incremental build step.
Figure 2 Hardware Setup for PM_Sensorless Experiment
Figure 3 Hardware Setup for InstaSPIN_BLDC, BLDC_Sensored and BLDC_Sensorless Experiments
WARNING: DC bus Capacitors would remain charged for a long time after the supply is
disconnected. Use cauti
Software Setup for DRV8312-EVM Projects
1. If not already installed, please install Code Composer v4.x from the DVD included with the kit.
4. Once Code Composer Studio opens, the workspace launcher may appear that would ask to
select a workspace location,: (please note workspace is a location on the hard drive where
all the user settings for the IDE i.e. which projects are open, what configuration is selected
etc. are saved, this can be anywhere on the disk, the location mentioned below is just for
reference. Also note that if this is not your first-time running Code Composer this dialog may
not appear)
Click the “Browse…” button
Create the path below by making new folders as necessary.
“C:\Documents and Settings\My Documents\ CCSv4_workspaces\DRV8312-C2-
KIT_vXXX_workspace”
Uncheck the box that says “Use this as the default and do not ask again”.
Click “OK”
5. Next we will configure Code Composer to know which MCU it will be connecting to. Click
“Target -> New Target Configuration…”. Name the new configuration xds100-f28035.ccxml
or any other name depending on the target device. Make sure that the “Use shared location”
checkbox is checked and then click Finish.
Figure 5 Creating a target configuration
6. This should open up a new tab as seen in Figure 6. Select and enter the options as shown:
Connection – Texas Instruments XDS100v1 USB Emulator
Device – TMS320F28035
Click Save
Close the xds100-f28035.ccxml tab
8. Add all the motor control projects into your current workspace by clicking “Project->Import
Existing CCS/CCE Eclipse Project”.
Click Finish, this would copy all the projects relevant for the kit into the workspace. If you
want only a particular project to be copied uncheck the box next to the other project
names.
Configuring a Project
9. Expand the file structure of the project you would like to run from the C/C++ Projects tab.
Right-click on this project’s name and select “Set as Active Project”.
10. Assuming this is your first time using Code Composer, the xds100-F28035 should have been
set as the default target configuration. Do verify this by viewing the xds100-f28035.ccxml file
in the expanded project structure and a [Active/Default] written next to it. By going to “View->
Target Configurations” you may edit existing target configurations or change the default or
active configuration. You can also link a target configuration to a project in the workspace by
right clicking on the Target configuration name and selecting Link to Project.
11. Each project can be configured to create code and run in either flash or RAM. You may select
either of the two, however for lab experiments we will use RAM configuration most of the time
and move to the FLASH configuration for production. As shown in Figure 8, right-click on an
individual project and select Active Build Configuration-> F2803x_RAM configuration.
13. Open and inspect [Project-Name] -DevInit_F2803x.c by double clicking on the filename in the
project window. Confirm that GPIO00 to GPIO03 are configured to be PWM outputs.
14. Open the [Project-Name].c file and go to the function MainISR(). Locate the following piece of
code in incremental build 1 and confirm that the Datalog buffers are pointing to the right
variables. These Datalog buffers are large arrays that contain value-triggered data that can
then be displayed to a graph. Note that in other incremental builds different variables may be
put into this buffer to be graphed. Following is an example where the datalog are pointed to
the PID module.
DlogCh1 = (int16)_IQtoIQ15(pid1_i.Ref);
DlogCh2 = (int16)_IQtoIQ15(pid1_i.Fdb);
DlogCh3 = (int16)_IQtoIQ15(pid2_i.Ref);
DlogCh4 = (int16)_IQtoIQ15(pid2_i.Fdb);
15. Now Right Click on the Project Name and click on “Rebuild Project” and watch the Console
window. Any errors in the project will be displayed in the Console window.
16. On successful completion of the build click the “Debug” button, located in the top-left side
of the screen. The IDE will now automatically connect to the target, load the output file into
the device and change to the Debug perspective.
17. Click “Tools->Debugger Options->Generic Debugger Options”. You can enable the debugger
to reset the processor each time it reloads program by checking “Reset the target on program
load or restart” and click “Remember My Settings” to make this setting permanent.
18. Now click on the “Enable silicon real-time mode” button and “Enable polite real-time
mode” button . This will allow the user to edit and view variables in real-time. Do not reset
the CPU without disabling these realtime options!
19. A message box may appear. If so, select YES to enable debug events. This will set bit 1
(DGBM bit) of status register 1 (ST1) to a “0”. The DGBM is the debug enable mask bit.
When the DGBM bit is set to “0”, memory and register values can be passed to the host
processor for updating the debugger windows.
Setup Watch Window & Graphs
Click: View Watch on the menu bar to open a watch window to view the variables being used in
the project. Add variables to the watch window as shown below. By right-clicking on the variable it is
possible to change the number format of the variable. Refer to the project specific document to know
what variables need to be added to the watch window. You can select the appropriate Q format for
the variable you want to watch. Figure 9 below shows a typical watch window.
20. To automatically populate a watch window with the recommended variables use the scripting
tool:
21. Click on the Continuous Refresh button in the watch window. This enables the window to
run with real-time mode. By clicking the down arrow in this watch window, you may select
“Customize Continuous Refresh Interval” and edit the refresh rate of the watch window. Note
that choosing too fast an interval may affect performance.
22. The datalog buffers point to different system variables depending on the build level. They
provide a means to visually inspect the variables and judge system performance. Open and
setup time graph windows to plot the data log buffers as shown below. Alternatively, the user
can import graph configurations files in the project folder; however, these files are not
supported by all CCS4 versions. In order to import them, Click: Tools -> Graph ->
DualTime… and select import and browse to the following location
controlSUITE\developement_kits\DRV8312-C2-KIT_vXXX\<project directory> and select
Graph1.graphProp, the Graph Properties window should now look like the Figure 10. Hit OK,
this should add the Graphs to your debug perspective. Click on Continuous Refresh button
on the top left corner of the graph tab.
Note: If a second graph window is used, you could import Graph2.prop, the start Addresses
for this should be DLOG_4CH_buff3 and DLOG_4CH_buff4.
Note: The default dlog.prescaler is set to 5 which will allow the dlog function to only log one
out of every five samples.
Figure 10 Graph window settings
23. Run the code by pressing Run Button in the Debug Tab.
24. The project should now run, and the values in the graphs and watch window should keep on
updating. Below are some screen captures of typical CCS perspective while using this
project, You may want to resize the windows according to your preference.
25. Once complete, reset the processor (Target->Reset->Reset CPU) and then terminate
the debug session by clicking (Target->Terminate All). This will halt the program and
disconnect Code Composer from the MCU.
C/C++
Perspective
CCS v4 C/C++
Perspective
Motor Control Code
Project Files
Debug
Perspective
Debug
View
Window
view CPU’s
being Real-time
Debugged variable
currently Watch
Window
Disassembly window
CCSv4 Debug
Shows location in code Perspective
when stepping through debugger
Real-time
Graph
Window
27. Customize the project to meet your motor. Change the motor parameters which can be found
in [motorproject].h. Feel free to also change the PWM switching frequency (ISR frequency)
and the base Q-value to balance accuracy and CPU bandwidth.
28. Now the user can open the lab manual found in : controlSUITE\development_kits\DRV8312-
C2-KIT_vXXX\xxxxx\~Docs and start experiments.