Sample C code for Isolated Inverter Platform (EV-MCS-ISOINV-Z)

Document created by DOSulli2 Employee on Jul 14, 2015Last modified by DOSulli2 Employee on Jul 15, 2015
Version 1Show Document
  • View in full screen mode

The attached Zip file contains a sample C code project for the isolated inverter platform (EV-MCS-ISOINV-Z) that can be loaded on to an ADSP-CM408 EZkit for development of a motor control application. The sample code contains an open loop Volts/Hertz algorithm that can be run in conjunction with the EV-MCS-ISOINV-Z isolated inverter platform. It has been tested for IAR Embedded Work Bench version 7.4 and with the ADI Software Enablement package ver 2.0. If you are using an earlier version of the ADI SW Enablement Package, and need a code version compatible with this, please submit a request....although it is recommended to use version 2.0. If you are using an earlier version of IAR Embedded Workbench, some of the project settings may not come through and a message regarding 'Broken Options' will be displayed. See the end of this post for the correct Project Options.


Some different options can be enabled using preprocessor defines as shown below. A define that has _ in front of it, such as _NO_POWER_BOARD means that this define is NOT being used, but just stored for easy selection when required by deleting the preceding underscore.


So for instance:

NO_POWER_BOARD = Run the project without the inverter board (this disables trips and expected signals from the power board, and just enables output PWM)

TEKNIC110V = The inverter output is driving a 110-220V 8-pole PM motor

ANAHEIM24V = The inverter output is driving a LV PM motor (associated with the EV-MCS-LVDRV platform)

ABBIM = The inverter output is driving a 4 pole induction motor

WEGIM = The inverter output is driving a 2 pole induction motor

Please note that, if driving a low voltage motor, the dc supply input must be maintained at a corresponding voltage level.  For driving a resistive load, any of the load defines can be used (these just control RPM to frequency ratio, V/f gain setting, and frequency ramp rates, max rpm etc. in manual mode when no GUI is being used. If using the GUI, these settings are all controlled from the GUI).

Instructions on setting up the inverter platform and downloading and using the GUI are found here.


Project Options:

If an earlier version of IAR Embedded Workbench is being used some of the Project Options may not be fully represented. In this case, check the following options:

General Options->Target->Device=AnalogDevices ADSP-CM40z-384_2048 (will only be visible after the ADI SWE has been installed). On same tab an FPU must be selected


General Options->Library Configuration- Select Use CMSIS and DSP Library


C/C++ Compiler->Preprocessor->Additional include directories

C:\Analog Devices\ADSP-CM40x\CM403F_CM408F_EZ-KIT\inc

C:\Analog Devices\ADSP-CM40x\CM403F_CM408F_EZ-KIT\inc\sys

C:\Analog Devices\ADSP-CM40x\CM403F_CM408F_EZ-KIT\src











On the same tab: Defined symbols

As described above


Linker->Config->Select Override default and enter


Linker->Library->Additional libraries

C:\Analog Devices\ADSP-CM40x\CM403F_CM408F_EZ-KIT\lib\iar\debug\libdrv40z.a

C:\Analog Devices\ADSP-CM40x\CM403F_CM408F_EZ-KIT\lib\iar\debug\libosal40z_noos.a

C:\Analog Devices\ADSP-CM40x\CM403F_CM408F_EZ-KIT\lib\iar\debug\libssl40z.a



Linker->List- Select Generate linker map file


Options->Debugger->Download- Select Use flash loader

Options->Debugger->J-Link/J-Trace->Setup -Select Connect during reset

Options->Debugger->J-Link/J-Trace->Connection - Select SWD