Low Level Driver Library for TLE987x

// Effective initialization of hardware modules and their configuration.


Qualified Low Level Driver Library for MOTIX™ TLE987x


The qualified Low Level Driver (LLD) Library for MOTIX™ MCU TLE987x family enables users to configure and initialize the hardware modules and interact with them at run-time. The library contains of 21 driver folders for the respective hardware blocks. Each folder contains a module (.c/.h file pair) for the exposed APIs and the configuration data structures. In addition, multiple modules with the non-exposed driver parts and a type definition header (contains enumeration types for symbolic representation of register field values).

Built on top of Cortex Microcontroller Software Interface Standard (CMSIS). The driver uses the device abstraction (device header file TLE987x.h with register and bitfield symbols and addresses) from the device SDK.

The LLD is offered as a qualified and tested code for productive usage. Customers can get access to documentation and test reports in the quality package.


Some facts about the MOTIX™ LLD

Qualified and maintained software for productive use

Comprehensive user and quality documents

Supported configuration

Low Level Driver Library at a glance


// What is a Low Level Driver?

A Low Level Driver (LLD) is a unified API for controlling the peripheral modules on the microcontroller. The primary purpose of an LLD is to initialize hardware devices and provide an interface for higher-level software components to interact with the hardware. LLDs are specific to a particular device or family of devices, and they are designed to work with the hardware at a very low level, providing the ability to control the device's functionality directly.

// How to use the Low Level Driver?
  • Integrate the library to your application project by copying the files or by installing the CMSIS pack in Keil µVision.

  • Include the driver header files in your application modules (1).

  • Create variables of the respective configuration struct type and assign default by calling the Ifx_*_InitDriver() (2).

  • Set the values of the struct members using the provided enumeration type members (3).

  • Initialize the peripheral by calling the Ifx_*_Init(&config) function (4)

  • Call the APIs in your code (5).

// What is delivered with the Low Level Drive?

Delivery Scope:

  • LLD Source Code (available also as CMSIS pack)

  • User documentation (API)

  • Example Application collection


  • SW Requirement Specification (incl. Traceability Reports to architecture and test)

  • SW architecture documentation (Enterprise Architect HTML export)

  • Static Code Analysis Report (including MISRA Report)

  • Unit Test Report

// Which peripherals are supported?

Driver/folder name



10-Bit Analog Digital Converter (ADC1)


Measurement Core Unit including the ADC2 Core (8-bit ADC).


Bridge Driver (including Charge pump) to drive external NFET B6 bridge


Capture/Compare Unit 6


Arm® Cortex®-M3 Core


Current Sense Amplifier


Direct Memory Access Controller


General Purpose Input/Output (GPIO) Ports and peripheral I/O


General Purpose Timer Units GPT1 and GPT2


Interrupt System


Measurement Unit


High-Voltage Monitor Input


Power Management Unit


System Control Unit: Digital Modules


System Control Unit - Power Modules


14-bit Sigma Delta ADC Driver (ADC3/4)


High-Speed Synchronous Serial Interface (SSC1/SSC2)


Timer2 and Timer21






Watchdog Timer (WDT1)


Header for commonly used data types


Provides access routines for Special Function Registers (SFR)

// Which development tools are supported?

The LLD is tested with the Compiler ArmClang V6.x (esp. V6.16 and V6.19). The clang and lto technologies are recommended to minimize code overhead caused by the rich API approach.

Example project files are provided for:

  • Visual Studio Code (using Python Scons build)

The library is available as CMSIS pack file for the usage in

  • Keil Embedded Development Tools for Arm 5.38