AM243x Motor Control SDK  2025.00.00
Release Notes 2025.00.00

Attention
  1. Please refer to individual module pages for more details on each feature, unsupported features, important usage guidelines.
  2. Motor Control SDK 9.x/11.x included the Industrial Communications SDK and MCU+ SDK in bundled ind_comms_sdk and mcu_plus_sdk folders. Starting with Motor Control SDK 2025.00.00, these folders are no longer included and must be downloaded separately. Motor Control SDK installer provides an option to install the required Industrial Communications SDK and MCU+ SDK.
  3. For release notes of Industrial Communications SDK and MCU+ SDK, please refer to AM243X Industrial Communications SDK Release Notes 2025.00.00 and AM243X MCU+ SDK Release Notes 11.01.00 respectively.
Note
  1. These 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
  2. Tamagawa over SoC UART example is not supported for AM243x.

New in this Release

Feature Module
EnDat3 protocol support with 12.5 Mbps data rate, Manchester encoding, frame-based communication (HPF/LPH/LPF), foreground and background communication channels, host trigger and periodic trigger modes Position Sense EnDat3
Multi-channel with load share mode, handle-based API architecture, Periodic trigger modes (CMP and CAP), SysConfig-based initialization Position Sense Tamagawa
Handle-based API architecture, periodic trigger modes (CMP and CAP), SysConfig-based initialization Position Sense EnDat
Handle-based API architecture, periodic trigger modes (CMP and CAP), SysConfig-based initialization, per-channel encoder timeout configuration Position Sense BiSS-C
Improved sampling for RX data, Handle-based API architecture, different IEP CAP signal per slice, SysConfig-based initialization Position Sense HDSL
Handle-based API architecture, periodic trigger modes (CMP and CAP), SysConfig-based initialization Position Sense Nikon A-format
Handle-based API architecture, SysConfig-based initialization, improved error handling with return codes, support for 9 channels on a single PRU core Current Sense SDFM

Device and Validation Information

SOC Supported CPUs Boards Host PC
AM243x R5F AM243x GP 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 or MacOS

Dependent Tools, Compiler and Other Open Source SW Module Information

Tools / SW module Supported CPUs Version
AM243x Industrial Communications SDK R5F 2025.00.00.08
AM243x MCU+ SDK R5F, M4F 11.01.00.19
Code Composer Studio R5F, M4F 20.2.0
SysConfig R5F, M4F 1.23.0, build 4000
TI ARM CLANG R5F, M4F 4.0.1.LTS
FreeRTOS Kernel (included in AM243x MCU+ SDK) R5F, M4F 11.1.0
Tiny USB (included in AM243x MCU+ SDK) R5F 0.14.0
LwIP (included in AM243x MCU+ SDK) R5F STABLE-2_2_0_RELEASE
Mbed-TLS (included in AM243x MCU+ SDK) R5F 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 using single PRU core, Nine SDFM channels using three PRU cores (load share mode), SDFM Sync with EPWM, Single/Double Normal Current Sampling per EPWM cycle, Continuous Normal Current Sampling, High and Low Threshold Comparator (Over-current detection), Fast Detect, Phase Compensation, Zero Cross Detection, Trip Generation using PRU-ICSS TripZone, Tested with SDFM clock from ECAP/IEP, 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, single byte register communication using control communication, automatic processing delay detection and compensation, interface speed of 1, 2, 5, 8, and 10 MHz, long cable (upto 100 meters), host trigger mode, periodic trigger modes (CMP and CAP), daisy chaining, safety mode (safety CRC and sign-of-life counter), BP-AM2BLDCSERVO Boosterpack with LP-AM243 Control communication: BiSS-C Commands (Control Select bit (CTS) = 0), start bit delay and sequential multi-byte access with Register Communication (Control Select bit (CTS) = 1)
EnDat R5F YES FreeRTOS, NORTOS Single channel, Multi channel using single PRU core and three PRU cores (load share mode), recovery time for 2.2 command set, interface speed of 4, 8 and 16 MHz, long cable (upto 100 meters), periodic trigger modes (CMP and CAP), continuous mode, BP-AM2BLDCSERVO Boosterpack with LP-AM243 Encoder receive communication command
EnDat3 R5F YES FreeRTOS, NORTOS Single channel, Manchester encoding, data transfer rate of 12.5 Mbps, frame-based protocol (HPF/LPH/LPF), foreground communication commands (DATA0-DATA7, DATA, DATANOP, RESET, CLEAR, ECHO, RATE, HELLO), background communication commands (NOP, READ, WRITE, RECONFIGURE, AUTH, PROTECT, SETPASS, LOCATE), host trigger mode, periodic trigger modes (CMP and CAP), automatic CRC verification, BP-AM2BLDCSERVO Boosterpack with LP-AM243 25 Mbps data rate, Multi-channel concurrent operation, Daisy chain topology, Long cable (upto 100 meters)
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, Cable length upto 10 meters, Long cable upto 100 meters with single channel Free Run mode and PRU core running at 300 MHz, BP-AM2BLDCSERVO Boosterpack with LP-AM243 Long cable upto 100 meters (except single channel Free Run mode and PRU core running at 300 MHz)
Nikon A-format R5F YES FreeRTOS, NORTOS Nikon A-format version 2.1 and version 3.0, Single channel, Multi channel using single PRU core and three PRU cores (load share mode), point-to-point connection, bus connection up to 7 encoders, individual 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), host trigger mode, periodic trigger modes (CMP and CAP), BP-AM2BLDCSERVO Boosterpack with LP-AM243 Bus connection with 8 encoders
Tamagawa R5F YES FreeRTOS, NORTOS Single channel, Multi channel using single PRU core, Multi channel using three PRU cores (load share mode), absolute position, encoder ID, reset, EEPROM read, EEPROM write, 2.5 Mbps Encoder, periodic trigger modes (CMP and CAP), BP-AM2BLDCSERVO Boosterpack with LP-AM243 5 Mbps encoder

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) -
SFRA R5F YES FreeRTOS, NORTOS Software Frequency Response Analyzer support -
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) -
Utilities R5F YES FreeRTOS, NORTOS Angle Compensation Generator, Step Response, Datalog, Trapezoid generator -

PRU-ICSS PWM

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
PRU-ICSS PWM R5F YES FreeRTOS, NORTOS PWM Duty cycle, PWM Phase shift, PWM Dead band, PWM Period -

TIDEP-01032 EtherCAT-Connected Single-Chip Dual-Servo Motor Drive Reference Design

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
TIDEP-01032 EtherCAT-Connected Single-Chip Dual-Servo Motor Drive Reference Design R5F YES FreeRTOS, NORTOS All build levels, speed control for open loop and closed loop, closed loop with EtherCAT Distributed Clock (DC) mode -

Timesync

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
Timesync R5F YES FreeRTOS Tested with two board setup: board 1 running time_sync_transmitter_receiver example and board 2 running time_receiver example at 100us cycle time Not tested time_receiver example in release mode

Fixed Issues

ID Head Line Module Applicable Releases Resolution/Comments
PINDSW-5690 HDSL: EDGE register is not updated Position Sense HDSL 9.0 onwards NOTE: This register is not implemented in TI HDSL solution. It is documented as a known difference in TI HDSL Exceptions List.
PINDSW-9605 Unable to open example.syscfg directly from SysConfig tool All examples 9.0 onwards -
EXT_EP-13296, PINDSW-9707 SDFM: Changing OSR values at runtime does not have any effect on sample output Current Sense SDFM 9.0 onwards -
EXT_EP-13297, PINDSW-10139 EnDat: Supplement 2_2 commands do not work with periodic mode when channels 0 and 1 both are enabled Position Sense EnDat 9.0 onwards -
EXT_EP-13298, PINDSW-10244 EnDat: Variations seen in propagation delay measurement with different PRU Clock frequencies Position Sense EnDat 9.0 onwards -
EXT_EP-13299, PINDSW-10284 SDFM: Trigger mode requires channel 2 to be connected for icss_sdfm_three_channel_single_pru_mode example Current Sense SDFM 11.0 -
PINDSW-10322 TIDEP-01032: USER_M1_IS_OFFSET_CMPSS macro type mismatch causes data abort at -O1 optimization TIDEP-01032 Reference Design 9.1 onwards The USER_M1_IS_OFFSET_CMPSS macro for the BP_AM2BLDCSERVO board was casting SDFM_HALF_SCALE (131072.0f) to uint16_t, which exceeds the uint16_t range (max 65535). This float-to-integer undefined behavior caused the compiler to eliminate the calcMotorOverCurrentThreshold function body at -O1 optimization. Fixed by setting the macro to 0 for SDFM-based boards where ADC CMPSS is not applicable.
PINDSW-10364 TIDEP-01032: Incorrect constant table configuration for PRU-ICSSG1 TIDEP-01032 Reference Design 11.0 -
EXT_EP-13300, PINDSW-10365 Shared memory region located in TCM marked as Cached in SDK examples TIDEP-01032 Reference Design, Position Sense EnDat, Current Sense SDFM 9.0 onwards In SDK examples, PRU firmwares for SDFM and EnDat store the data into R5F TCM memory.
EXT_EP-13301, PINDSW-10389 Tamagawa: Periodic command does not work with a lower cycle period Position Sense Tamagawa 9.0 onwards Due to maximum value of RX frame size being configured always for all commands, the periodic mode does not work for lower periods for certain commands.
PINDSW-10435 PRUICSS PWM: PRUICSS_PWM_enableIEP1Slave always uses 1 instead of using enable parameter PRUICSS PWM 9.1 onwards -
PINDSW-10647 PRUICSS PWM: PRUICSS_PWM_iepConfig uses incorrect variable for IEP shadow mode check PRUICSS PWM 9.1 onwards -
EXT_EP-13294, PINDSW-10670 HDSL: Communication drops seen in SYNC mode Position Sense HDSL 9.0 onwards -

Known Issues

ID Head Line Module Applicable Releases Workaround
PINDSW-6486 HDSL: RSSI register shows higher values than expected for a non-noisy setup Position Sense HDSL 9.0 onwards -
PINDSW-7130 HDSL: Few protocol resets seen during initialization with Free Run mode on LP-AM243 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: Sync mode does not work with cable length > 10 meters Position Sense HDSL 9.0 onwards -
PINDSW-9179 Nikon: PRU Firmware gets stuck if encoder does not respond with number of bytes expected by driver Position Sense Nikon A-format 9.2 onwards -
PINDSW-10391 HDSL: Free run mode does not work with cable length > 10 meters when PRU runs at 225 MHz Position Sense HDSL 9.0 onwards -
PINDSW-10641 Unable to create a new .syscfg with MCSDK directly from SysConfig tool SysConfig 2025.0 onwards Copy an example.syscfg file from SDK example and use it

Limitations

Attention
Please refer to individual module pages for more details on known limitations and unsupported features.
ID Head Line Module Reported in Release Applicable Devices Workaround
MCUSDK-208 gmake with -j can sometimes lock up Windows command prompt Build 9.0 onwards AM64x, AM243x Use bash for windows as part of git for windows or don't use -j option
PINDSW-9370 Nikon: Only 7 encoders can be tested in bus connection with BP-AM2BLDCSERVO Position Sense Nikon 9.2 onwards Unable to test 8 encoders because of voltage drop when using BP-AM2BLDCSERVO is used

Upgrade and Compatibility Information for Motor Control SDK 2025.0.0

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

This section lists changes which could affect user applications developed using older SDK versions. 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.

SDK drivers for following modules underwent significant architectural changes including a move to handle-based APIs, enhanced periodic trigger modes, improved SysConfig integration, etc. For module specific migration details, refer to links from Migration Details for Motor Control SDK 11.00.00 to Motor Control SDK 2025.00.00.

  • Position Sense
    • BiSS-C
    • EnDAT 2
    • HDSL
    • Nikon A-format
    • Tamagawa
  • Current Sense

Examples

Module Affected API Change Additional Remarks
PRUICSS PWM App_epwmSync0Irq Remove calling PRUICSS_PWM_changePwmSetToIntialState API call PWM is not changed to init state when it is being generated
TIDEP-01032 Reference Design HAL_setupSDFM, HAL_readMtrSdfmData, HAL_setupEncoder, HAL_getMtrEncoderPosition in hal.c The SDFM and EnDat driver code in hal.c has been updated to use the new handle-based API architecture. The SDFM initialization now uses SDFM_init with params-based configuration, and data reads use SDFM_getFilterData with handle. The EnDat initialization now uses endat_init with params-based configuration, and position reads use endat_command_build/endat_command_process with handle. These changes are required due to SDK driver migration to handle-based APIs. For more information on SDFM and EnDat driver migration, refer the migration guide of EnDat and SDFM.
TIDEP-01032 Reference Design PRUICSS INTC mapping in SysCfg, MOTOR1_PRU_TRIGGER_HOST_SDFM_EVT_NUMBER and MOTOR2_PRU_TRIGGER_HOST_SDFM_EVT_NUMBER in hal.h The PRU INTC event-to-channel mapping for SDFM interrupts has been updated. MOTOR1 now uses PRU event 21 (channel 5) and MOTOR2 uses PRU event 24 (channel 6). The SysCfg INTC mapping configuration has been updated accordingly. Additionally, SDFM_selectIepCmpEvent() API call has been added to configure the IEP compare event for SDFM sampling trigger. Update the SysCfg INTC mapping and hal.h PRU event number defines to match the new assignment.

Drivers

Module Affected API or structure Change Additional Remarks
PRUICSS PWM PRUICSS_PWM_config Change dutyCycle, riseEdgeDelay, fallEdgeDelay data type to float -
PRUICSS PWM PRUICSS_PWM_iepConfig Initialize IEP counter value with zero and compare values with PRUICSS_IEP_COUNT_REG_MAX

-

Note
Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates) in the US and/or elsewhere.