Changelog EtherCAT Library
V1.8.3 (2024-08-15)
EtherCAT Library:
fixed write access to Register MII Management PDI Access State
extended check of PDO MApping objects to full address ranges
(0x1600 .. 0x17FF, 0x1A00 .. 0x1BFF)check if Mailbox Sync Managers are in Mailbox mode
process fragmented CoE responses before sending EOE frame
(don't interrupt Segmented SDO DOwnload or Upload)improved LED Emulation for Error LED on ET1100
optionally support early access check for SDO Downloads
(Abort invalid access early, after first chunk was received)Added EtherCAT Bootloader mode (FoE only)
(No CoE, SDO, DC, PDO)reworked LED emulation to properly support STATUS indicator
fixed handling of NMT SPlit state if DC is enabled and active
increase DC Sync loss check time to 100 ms
distinguish between loss of DC event and loss of PDI event when reporting error
Drivers:
XMC4800: support log message printing on Relax EtherCAT Kit
LAN9253: added optional SPI communication check during initialization
Linux: support LAN9253 SPI driver as a build option
AM64XX: added support for TI AM64XX with FreeRTOS
Examples:
AM64XX: added examples for TI AM64XX with FreeRTOS
V1.8.2 (2023-07-06)
EtherCAT Library:
fixed EEPROM Emulation initialization for non-SPI targets
Drivers:
updated XMC4800 Relax-Kit V1
added XMC4800 Automation Board V2 incl. FreeRTOS
Examples:
updated XMC4800 Relax-Kit V1
added XMC4800 Automation Board V2 incl. FreeRTOS
V1.8.1 (2023-04-27)
EtherCAT Library:
fixed PDO mapping check for objects of MDP modules
extended PDO mapping to support:
gaps
bit data types
string data types (also objects bigger than 31 bytes)
safety data bigger than 16 bits
made object dictionary API threadsafe
(driver must provide a Mutex)dynamically created CoE objects can now be freed
(if supported by the target)marked EtherCAT API as C functions for C++ projects
fixed processing of Process Data Watchdog events if NMT Split feature is activated
reworked EEPROM Emulation Relead command to work with ESC LAN9253
fixed SDO Info service GetEntryDescription for objects larger than 64 kbits
support storing CoE object descriptions in ROM
Drivers:
AM335x: fixes for current stack version
added support for Microchip LAN9255
Examples:
added examples for Microchip LAN9255
V1.8.0 (2022-04-27)
EtherCAT Library:
Extended SPI driver API to pass stack instance handle to driver
Fixed possible NULL pointer access for dynamically created objects
fixed handling of SDO Info Service GetEntryDescription request that have reserved bits set
extended MDP module to support more than one slot
(but only one active instance of each module)support more than 4 Sync Managers and multiple Sync Units (multiple pairs of Output/Input Sync Managers)
added optional extended PDO user API (ec_applSyncInd and ec_applPdoInd)
added function to set number of Sync Managers in dynamic config mode (default value: 4)
fixed overflow bug for periodic timers
(handle overflow of time value for newly created and updated timers)
Drivers:
Adjust all SPI drivers to updated SPI driver API
Linux: support spidev user space API as SPI PDI
V1.7.2 (2022-01-25)
EtherCAT Library:
fixed PDO Mapping for configurations with alignment gaps
fixed writing of non-numeric SDO objects if not all bytes are written
added initialization function for common SPI drivers
Drivers:
SPI for LAN9253: support direct mapped mode
Added support for ST STM32F4xx
Examples:
Template: updated to work with current stack version
add examples for ST STM32F4xx
V1.7.1 (2021-05-31)
EtherCAT Library:
EoE is now dynamically configurable (if dynamic configuration is activated)
Fixed handling of PDO mappings with gap entries
Added extended object attributes to support Safety flags
Added support of MDP profile for devices with only one slot
FSoE can now be supported (3rd party FSoE stack is required)
Support LED emulations for targets that have dynamic configuration disabled
Drivers:
SPI for ET1100: use Waitstate byte to support higher SPI speeds
Added support for TI TMS320F28388X (CM4 Core)
Examples:
Added examples for TI TMS320F28388X (CM4 Core)
V1.7.0 (2021-01-31)
EtherCAT Library:
fixed SDO Abort Code if Complete Access Response exceeds Mailbox size
merged header files from "source" folder into header files of "include" folder
reimplemented Dynamic Objects to have them behave like normal objects (new API)
Timer callbacks now support arguments
improved access to Object dictionary
allow devices that have only dynamic objects
new API to generate Debug messages
debug messages now contain function name and line number
moved all global variables to one EtherCAT handle (changed all API)
(required for instantiation of EtherCAT stack in multiprotocol devices)added compatibility mode for applications and drivers that use the old API of 1.6.
support dynamic configuration of stack during startup
reworked ESC access
fixed Download of non-numeric objects
support objects that do not have a default value or a minimum and maximum value
added timeout when waiting for Sync0 during SafeOp to Op transition
added timeout for Read Mailbox (release Mailbox if it is not read by master)
fixed deadlock of Input Only slaves that received a SM Change Request
support Emulation of RUN and ERR LEDs in CPU
fixed Complete Access SDO Download if object size check is enabled
fixed limit check for SDO access to UNSIGNED64 and INTEGER64 objects
improved Mailbox handling if multiple Mailbox protocols are enabled
fixed SDO Info service for objects with gaps
several small improvements
Drivers:
ALL: cleaned up include headers & use new API
added support for GOAL
added generic modules for SPI access to ET1100 and LAN9252
added support for SPI access to ESC on Linux (ET1100 and LAN9252)
Examples:
ALL: use new API
RIN32M3: updated IAR projects
V1.6.3 (2018-03-23)
EtherCAT Library:
Several bugfixes
Use register “Watchdog Status Process Data” to monitor watchdog instead of “AL Status”
Added more AL Status Code macros
added ec_esmFinishTransition() that allows abortion of ESM state transitions for application specific reasons
Driver:
added support for STM32F7XX (SPI)
Examples:
added examples for STM32F7XX with Keil RTX
V1.6.2 (2018-03-01)
Driver:
updated driver for TI TMS320F2837x to work with EMIF
(parallel Interface)
Examples
added examples for TI TMS320F2837x with EMIF as PDI
V1.6.1 (2017-11-28)
EtherCAT Library
set ERROR LED depending on AL Status Code
support DSPs (16 bit RAM access)
Driver:
TMS320f2837x: added support for TI TMS320f2837x
Examples:
TMS320f2837x: added examples for TI TMS320f2837x
V1.6.0 (2017-08-03)
EtherCAT Library
added MII Management API (Phy access via ESC registers)
added support for Input Only slaves with Sync Manager 2 as Inputs
CoE: added timeout when waiting for a Master to read response from a Mailbox
SDO: Complete Access - allow writing less than all Subindices
fixed waiting for DC during SafeOP to OP when feature NMT Split is activated
added support for UNSIGNED64 and INTEGER64 data types
MBOX: fixed bug "deadlock of Rx Buffers in case of asynchronous traffic"
added support for TCP/IP stack "lwIP" over EoE
TIMER: renewed Timer API
fixed clang compiler warnings
added support for GOAL
Driver:
RZ/T1_M3: added support for GOAL on Renesas RZ/T1 (M3 core)
RZ/T1_R4F: added support for GOAL on Renesas RZ/T1 (R4F core)
Examples
ALL: updated all examples to work with newest EtherCAT Design Tool
ALL: use new Timer API
V1.5.2 (2017-01-03)
EtherCAT Library
accelerated process data exchange if PDI is SPI
Driver:
STM32L4XX: access ESC RAM via Process RAM registers instead of CSR registers
PIC32MX: added support for Microchip PIC32MX
Examples
PIC32MX: added support for Microchip PIC32MX
V1.5.1 (2016-12-06)
Driver:
AM335X: fixed recognition of writing last byte in Mailbox
STM32L4XX: added support for ST STM32L4XX
Examples
STM32L4XX: added support for ST STM32L4XX
V1.5.0 (2016-07-05)
EtherCAT Library
added support for data type BYTE
V1.4.0 (2016-06-22)
EtherCAT Library
merged lib_type.h into ec_type.h
removed obsolete ec_fct.h
new init function for ECAT Lib: ec_initLibrary() -> ec_initEtherCAT()
new CoE State Machine, fully supporting Complete Access
(automatic padding of bit types)new Mailbox handler
new FoE State Machine, supporting Busy Requests
new EoE State Machine, supporting Set & Get IP Parameter
new non-blocking debug message generation
support of dynamic PDO Configuration
fully support objects with gaps
fully support SDO Info service
Virtual Objects are now also allowed in Profile Area of Object Dictionary
new ESM state change indication ec_newNmtStateInd -> ec_newEsmStateInd
(indicating new state, error state, and error code)Process Data Watchdog is now mandatory
extended API for Virtual objects
Virtual & Dynamic Objects are now recognized by SDO Info service
supporting EEPROM Access via PDI
EtherCAT Library now conforms to EtherCAT Conformance Test 2.0.40.0
Driver:
updated all drivers to run with ECAT Lib 1.4.
added driver for Microsemi SmartFusion2 (ESC: Trinamic TMC8461)
Examples:
updated all examples to run with ECAT Lib 1.4.
added examples for Microsemi SmartFusion2 (ESC: Trinamic TMC8461)
V1.3.13 (2016-01-12)
EtherCAT Library
added support for feature “Acknowledgement by write”
moved declaration of ESC memory struct to ecmain.c
Driver:
All: removed obsolete declaration of ESC memory struct
XMC4800: added support for Infineon XMC4800
RIN32M3: added support for IAR Starter Kit
Examples:
XMC4800: added examples for Infineon XMC4800
V1.3.12 (2015-11-20)
EtherCAT Library
simplified generation of debugging messages
fixed FoE state machine to handle connection losses
fixed recognition of Repeat Requests for Mailbox Read
Driver:
AM335X: cleaned & refactored driver, removed unused files
Examples:
AM335X: added more examples
V1.3.11 (2015-10-15)
EtherCAT Library
fixed checking of Sync Managers for Process Data
Driver:
AT91SAM7X: added support for Atmel AT91SAM7X
Examples:
AT91SAM7X: added sample applications for Atmel AT91SAM7X
V1.3.10 (2015-05-08)
EtherCAT Library
Fixed recognition of deactivated DC when DC was active before
Driver:
K2X: added support for Freescale Kinetis K2X
Examples:
K2X: added sample applications for Freescale Kinetis K2X
V1.3.9 (2015-04-14)
EtherCAT Library
new EtherCAT State Machine
debug level EC_DBG_LVL_NMT replaced by EC_DBG_LVL_ESM
Support for Explicit Device Identification (Register 0x134)
new User Indication UNSIGNED16 ec_getDeviceID(void)
support DC as only synchronization mode
changed function prototype of ec_confirmNewNmtState()
Driver:
XMC4500: added support for Infineon XMC4500
Examples:
XMC4500: added sample applications for Infineon XMC4500
V1.3.8 (2015-02-17)
EtherCAT Library:
fixed access to ESC PD RAM for Big Endian architectures
fixed copying of Output Process data if Output PDO Bypass is activated (Big Endian only)
DC: fixed calculation of checktimer period
MBOX: printMboxHdr is now deactivated by default when debugging
EOE: query TCP/IP stack for new packet before trying to send out EOE message
MAIN: check if SM0 is pending, when no AL Event bit is set
Driver:
Generic: adapted driver to new Library version
AM335X: adapted driver to new Library version
Linux(PCI): adapted driver to new Library version
R-IN32M3: adapted driver to new Library version
Examples:
Linux (PCI): cleaned and unified all examples
R-IN32M3: cleaned and unified all examples
V1.3.7 (2015-01-09)
EtherCAT Library:
Fixed handling of invalid state requests during state Operational
V1.3.6 (2014-11-11)
DRIVER
added STM32F2XX driver module
V1.3.5 (2014-10-14)
EtherCAT Library:
moved function prototypes of CoE Indication Functions from ec_usr.h to
ec_coe.hall files have reformatted code & improved comments
added support for EEPROM Emulation
added support for reading & writing EEPROM via PDI
check address assigned to a Sync Manager
is address within Process Data RAM ?
does assigned memory area interfere with other Sync Managers?
added support for ESC Process Data Watchdog
extended ESC register access structure
only compile debugging messages, if debugging is active
moved print function for debugging to driver module (ec_drvPrint())
DRIVER:
AM3359:
adapted driver to new stack version
use new EEPROM Emulation
Linux:
adapted driver to new stack version
RIN32M3:
adapted driver to new stack version
V1.3.4 (2014-09-01)
added driver package for Renesas R-IN32M3
added examples for Renesas R-IN32M3
V1.3.3 (2014-07-24)
Drivers:
update TI am335x driver and examples for adaption and test with ICE Board
Rev. 2.1A
V1.3.2 (2014-06-23)
removed german comments
fixed PDO mapping validation
fixed handling of emergency message queue
fixed handling of SDO Info Request
fixed bug 660: renamed member bitSize to byteSize of struct EC_PDO_MAP_T
added driver package for ti am335x
V1.3.1
fixed possible crashes when using virtual objects and gaps in records/arrays
fixed XILINX microblaze driver with new Design Tool
adaption of examples for DesignTool 1.1
V1.3.0
ObjectDictionary: objects can now be defined dynamically
EoE: ec_eoeInitInd() is now called on startup
Virtual objects: applied naming conventions to some functions
NMT: Added support for BOOTSTRAP mode
Support for compiling with GNU C++ compiler improved
DC: Improved supervision of sync events
Synchronization:
Reworked, application synchronization is now done on SM2, SM3 or DC, depending
on the configurationWhen no output data is available, the application synchronizes on SM3-event
When output data is available, the application synchronizes on SM2-event
Changed signature of function ec_syncInd() regarding update of input data
DC: Separate ISR for PDI and SYNC, optionally can be unified
HAL: Fixed byte order for process data on big endian targets
DC: Additional options for the user, callback function introduced
Optimizations in ISR *functions
Removal of sprintf function calls
Bugfix: for mailbox transmission, could lead to wrong length calculation
Bugfix: Removed unused variables and warnings
V1.2.2
PDI supervision (cyclic check for process data) added
Fixed getObjectName function, when no names are supported
Added missing prototypes
Added new error codes
V1.2.1 (2011-11-04)
add STM32 driver with SPI access
V1.2 (2011-09-22)
add void parameter to function prototypes to avoid compiler warnings
add SPI access mode
routines for access to sii-prom
foe indication parameter changed
eoe indication added
octet string handling added
add check of PDO parameter mapping handling
V1.1 (2010-07-30)
first version