AM243x Motor Control SDK  09.02.00
Release Notes 09.02.00

Attention
Also refer to individual module pages for more details on each feature, unsupported features, important usage guidelines.
For release notes of Industrial Communications SDK and MCU+ SDK, please refer to AM243X Industrial Communications SDK Release Notes 09.02.00 and AM243X MCU+ SDK Release Notes 09.02.00 respectively.
Note
The examples will show usage of SW modules and APIs on a specific CPU instance and OS combination.
Unless noted otherwise, the SW modules would work in both FreeRTOS and NORTOS environment.
Unless noted otherwise, the SW modules would work on any of the R5F's present on the SOC.
Unless noted otherwise, the SW modules would work on all supported EVMs
Tamagawa over SoC UART example is not supported for AM243x

New in this Release

Feature Module
Three channel Nikon A-Format with one PRU-ICSSG Slice Position Sense Nikon A-Format
Point-to-point and bus connection support for Nikon A-Format Position Sense Nikon A-Format
Multiple baud rate support : 2.5 MHz, 4 MHz, 6.67 MHz, 8 MHz, and 16 MHz Position Sense Nikon A-Format
Long cable (upto 100 meters) Position Sense Nikon A-Format
Updated HDSL position realignment algorithm Position Sense HDSL
Readiness for BiSS Safety profile by supporting 16 bit CRC and sign-of-life counter Position Sense BiSS-C
Compare event based command trigger support Position Sense BiSS-C
SysConfig Enhancements Current Sense SDFM
SINC1 and SINC2 Filtering Current Sense SDFM
Deadband Configuration PRU-ICSS PWM
Control Library Real Time Libraries
Observer Library Real Time Libraries

Device and Validation Information

SOC Supported CPUs Boards Host PC
AM243x R5F AM243x EVM (referred to as am243x-evm in code),
AM243x LAUNCHPAD (referred to as am243x-lp in code)
Windows 10 64b or Ubuntu 18.04 64b

Tools, Compiler and Other Open Source SW Module Information

Tools / SW module Supported CPUs Version
Code Composer Studio R5F, M4F 12.7.0
SysConfig R5F, M4F 1.20.0, build 3587
TI ARM CLANG R5F, M4F 3.2.2.LTS
FreeRTOS Kernel R5F, M4F 10.4.3
Tiny USB R5F 0.14.0
LwIP R5F STABLE-2_2_0_RELEASE
Mbed-TLS R5F mbedtls-2.13.1

Key Features

Current Sense

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
ICSS SDFM R5F YES FreeRTOS, NORTOS Three SDFM channels on single PRU core, Nine SDFM channels on three PRU cores (load share mode), SDFM Sync with EPWM, Single/Double Normal Current Sampling per PWM cycle, Continuous Normal Current Sampling, High and Low Threshold Comparator (Over-current detction), Fast Detect, Phase Compensation, Zero Cross Detection, Trip Generation using PRU-ICSS TripZone, Tested with SDFM clock from ECAP, Tested with 5MHz Clock from EPWM -

Position Sense

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
BiSS-C R5F YES FreeRTOS, NORTOS Single channel, Multi channel using single PRU core and three PRU cores (load share mode), point-to-point connection, daisy chaining, control communication, automatic processing delay detection and compensation, interface speed of 1, 2, 5, 8, and 10 MHz, Long cable (upto 100 meters), safety CRC, sign-of-life counter, Boosterpack with AM243x-LP -
EnDat R5F YES FreeRTOS, NORTOS Single channel, Multi channel using single PRU core and three PRU cores (load share mode), Continuous mode, Recovery Time for 2.2 command set, Long cable (upto 100 meters), Boosterpack with AM243x-LP Encoder receive communication command
HDSL R5F YES FreeRTOS, NORTOS Single channel, Multi channel using three PRU cores (load share mode), Free Run mode, Sync mode, Short Message Read and Write, Long Message Read and Write, Pipeline Channel Data, Long cable (upto 100 meters) with single channel Free Run mode, Boosterpack with AM243x-LP 225 MHz PRU-ICSSG Core Clock based firmware, Multi-channel with long cables(100m length), Long cable (upto 100 meters) with sync mode
Nikon A-Format R5F YES FreeRTOS, NORTOS Single channel, Multi channel using single PRU core and three PRU cores (load share mode), point-to-point connection, bus connection, ndividual and multiple transmission mode with encoder addresses ranging between ENC1-ENC8, baud rates from 2.5 MHz, 4 MHz, 6.67 MHz, 8 MHz, and 16 MHz, up to 40-bit absolute position (single turn + multi turn) data with additional information, long cable (upto 100 meters), Boosterpack with AM243x-LP -
Tamagawa R5F YES FreeRTOS, NORTOS Absolute position, Encoder ID, Reset, EEPROM Read, EEPROM Write, 2.5 Mbps and 5 Mbps Encoder Support, Boosterpack with AM243x-LP -

Real Time Libraries

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
Control R5F YES FreeRTOS, NORTOS Field Weakening Control, Maximum Torque Per Ampere, Strator voltage frequency generator support -
Digital Control Library (DCL) R5F YES FreeRTOS, NORTOS Linear PI, Linear PID, Linear PI with double integrator (PI2), Direct Form 1 (first order), Direct Form 1 (second order), Direct Form 1 (third order), Direct Form 2 (second order), Direct Form 2 (third order), Non-linear PID controller -
Observer R5F YES FreeRTOS, NORTOS Sensored eQEP-based encoder, Hall sensor, Sensorless Enhanced Sliding Mode Observer, both speed measurement for sensored (speedcalc) and sensorless (speedfr) -
Transforms R5F YES FreeRTOS, NORTOS Clarke transformation, Park transformation, Inverse Park transformation, Space Vector Generation (SVGEN), Common-mode subtraction approach, DPWM Generation (Part of SVGEN), Maximum Modulation, Minimum Modulation, SVGEN current reconstruction for single-shunt (SVGENCURRENT), Phase voltage reconstruction in overmodulation (VOLTS_RECON) -

Fixed Issues

ID Head Line Module Applicable Releases Resolution/Comments
PINDSW-6630 HDSL: POS bit is not set during initial fast position alignment Position Sense HDSL 9.0 onwards -
PINDSW-7158 HDSL: Reset Value of SSUM bit is not correct Position Sense HDSL 9.0 onwards -
PINDSW-7480 HDSL: Continuous short/long message requests cause PRU to get stuck Position Sense HDSL 9.0 onwards -
PINDSW-7498 ROV is not working for the Industrial Communication SDK Examples which are part of Motor Control SDK Examples 9.1 onwards -
PINDSW-7560 PRU firmware build in Motor Control SDK is failing in Linux environment Examples 9.1 onwards -
PINDSW-7567 PRUICSS PWM : Mapping of pwm signals PWMm_0_NEG to PWMm_A1, PWMm_1_POS to PWMm_A2, PWMm_1_NEG to PWMm_B0, PWMm_2_POS to PWMm_B1 is not correct PRUICSS PWM 9.1 onwards -
PINDSW-7595 SDFM: SDFM_init API does not have support for ICSSG1 Current Sense SDFM 9.0 onwards -
PINDSW-7642 Docs: The tool versions of older releases in Release Notes are not correct Documentation 9.1 onwards -
PINDSW-7696 Unable to use SBL OSPI boot mode for all the demo applications of Motor Control SDK Examples 9.1 onwards -
PINDSW-7756 Tamagawa: After stopping periodic trigger mode, firmware gets stuck Position Sense Tamagawa 9.1 onwards -
PINDSW-7758 BiSS-C: Firmware does not work when changing ICSSG Core Clock Frequency to 300MHz Position Sense BiSS-C 9.1 onwards Clock dividers for Three Channel Peripheral Interface were not being set correctly for 300MHz
PINDSW-7940 Transforms: UART Log does not work in transforms_test example Real Time Libraries 9.1 onwards -

Known Issues

ID Head Line Module Applicable Releases Workaround
PINDSW-5537 HDSL not working with 225 MHz PRU-ICSSG Core Clock Frequency Position Sense HDSL 9.0 onwards Use 300 MHz frequency for PRU-ICSSG Core Clock
PINDSW-5690 HDSL: EDGE register is not updated Position Sense HDSL 9.0 onwards -
PINDSW-6486 HDSL: RSSI register shows higher values than expected for a non-noisy setup Position Sense HDSL 9.0 onwards -
PINDSW-6544 SDFM: Incorrect samples seen intermittently with EPWM as SDFM clock Current Sense SDFM 9.0 onwards Use 5MHz SDFM clock from EPWM1 (tested with 5MHz clock from EPWM) or use PRU-ICSSG ECAP as SDFM clock source
PINDSW-7130 HDSL: Few protocol resets seen during initialization with Free Run mode on AM243x-LP Position Sense HDSL 9.0 onwards -
PINDSW-7163 HDSL: Trailer data contains 4 zeros instead of 5 Position Sense HDSL 9.0 onwards -
PINDSW-7474 HDSL : 100 meter cable length does not work for sync mode in 300MHz PRU clock Position Sense HDSL 9.0 onwards -

Limitations

ID Head Line Module Reported in Release Applicable Devices Workaround
MCUSDK-208 gmake with -j can sometimes lock up Windows command prompt Build 7.3.0 AM64x, AM243x Use bash for windows as part of git for windows or don't use -j option

Upgrade and Compatibility Information for Motor Control SDK 09.02.00

Attention
When migrating from MCU+ SDK, see Migration Guide for more details.

This section lists changes which could affect user applications developed using Motor Control SDK 09.01.00. Read this carefully to see if you need to do any changes in your existing application when migrating to this SDK version relative to previous SDK version. Also refer to older SDK version release notes to see changes in earlier SDKs.

Examples

Module Affected API Change Additional Remarks
Current Sense SDFM Structure SdfmPrms_s Added a variable: icssgInsId -
Position Sense BiSS-C bissc_update_data_len Changed API parameter: pru_num to ch_num -
Position Sense BiSS-C bissc_generate_ctrl_cmd Added an API: bissc_generate_ctrl_cmd Needed to generate Hex equivalent command
Position Sense BiSS-C Structure bissc_periodic_interface Removed pruicss_cfg and pruicss_dmem variables, and added variable cmp0 Needed for time trigger
Current Sense SDFM Structure SdfmPrms_s Added sub structures for sdfm parameters: SdfmClkPrms_s, SdfmCompFilterPrms_s, SdfmChannelPrms_s Split SDFM parameters into multiple structures
Position Sense EnDat Structure endat_periodic_interface Removed pruicss_cfg variable and added variable cmp0 -
Position Sense Tamagawa Structure tamagawa_periodic_interface Removed pruicss_cfg variable and added variable cmp0 -

Drivers

Module Affected API Change Additional Remarks
PRUICSS PWM PRUICSS_PWM_actionOnOutputCfgPwmSignalB0 Updated definition to configure action of PWMn_m_0_NEG signal in active, intial, trigger states -
PRUICSS PWM PRUICSS_PWM_actionOnOutputCfgPwmSignalA1 Updated definition to configure action of PWMn_m_1_POS signal in active, intial, trigger states -
PRUICSS PWM PRUICSS_PWM_actionOnOutputCfgPwmSignalB1 Updated definition to configure action of PWMn_m_1_NEG signal in active, intial, trigger states -
PRUICSS PWM PRUICSS_PWM_actionOnOutputCfgPwmSignalA2 Updated definition to configure action of PWMn_m_2_POS signal in active, intial, trigger states -
Current Sense SDFM SDFM_init Added new parameter: PRU-ICSSG handle. -
Position Sense BiSS-C Structure bissc_priv Added variables: is_continuous_mode, ctrl_write_status[NUM_ED_CH_MAX], ctrl_reg_address[NUM_ED_CH_MAX], ctrl_reg_data[NUM_ED_CH_MAX], ctrl_enc_id[NUM_ED_CH_MAX]. Required to generate Hex equivalent control command and continuous mode
Position Sense BiSS-C bissc_generate_ctrl_cmd Added API: bissc_generate_ctrl_cmd. Required to generate Hex equivalent control command
Position Sense BiSS-C bissc_get_totalchannels, bissc_get_current_channel, bissc_clear_data_len Added API: bissc_get_totalchannels, bissc_get_current_channel, bissc_clear_data_len. Required to offload priv variable assignments from examples
Position Sense BiSS-C bissc_config_host_trigger, bissc_config_periodic_trigger Updating priv->is_continuous_mode Required for continuous mode
Position Sense BiSS-C bissc_command_wait Checking for priv->is_continuous_mode Required for continuous mode
Position Sense BiSS-C bissc_set_default_initialization Updating Structure variables: is_continuous_mode, ctrl_reg_address, ctrl_enc_id Required for continuous mode and control command generation
Current Sense SDFM Structure SDFM_s Added a variable: gPruPwmHandle
Current Sense SDFM Structure SDFM_s Added a void pointer: prussIep
Current Sense SDFM SDFM_setCompFilterThresholds Updated parameter type
Current Sense SDFM SDFM_selectClockSource Updated parameter name and type
Position Sense EnDat Structure cmd_supplement Added a variable: cmp0
Position Sense EnDat Structure endat_priv Added a variable: cmp0
Position Sense Tamagawa Structure tamagawa_priv Added a variable: cmp0
PRUICSS PWM PRUICSS_PWM_iepConfig PRUICSS_PWM_configureIepCompareEnable API call is removed from the PRUICSS_PWM_iepConfig function PRUICSS_PWM_configureIepCompareEnable needs to be called separately to enable IEP cmp events