MSPM0 DALI User’s Guide

1. Introduction

Digitally Addressable Lighting Interface (DALI) is a serial protocol for digital lighting control that allows for simple and efficient communication between various lighting application gear and controllers.

Note: The use of “Master” and “Slave” terminology is being considered obsolete. These terms have been replaced with “Controller” and “Gear” respectively.

2. DALI in the MSPM0 SDK

The MSPM0 SDK provides a DALI protocol software layer that enables the MSPM0 to act either as a control gear or as a control device. The implementation is based on selected parts of the IEC62386 standard and is structure to provide essential protocol handling, while leaving flexibility for users to build custom application logic on top.

Control Gear

Control gear are devices that receive and act on DALI commands. These devices control lighting loads based on the instructions received over the DALI bus.

Supported DALI Parts

  • DALI IEC 62386-102:2014 - (General Requirements) defines the core behaviors for all DALI control gear, including addressability, command handling, and light output control parameters.

  • DALI IEC 62386-207:2018 - (LED Modules) extends Part 102 with specific functionality required for controlling LED drivers.

Included Features

  • Functions to receive and transmit DALI commands and responses, respectively

  • Template functions using EEPROM to store certain DALI information in Flash memory and reload that information at startup

  • Fade Time/Fade Rate fade routines

  • Support for Direct Arc Power Control (DAPC), Up, Down, Step Up, Step Down, Recall Max, and Recall Min Execution Commands

    • Other execution commands can be implemented utilizing the fade time routine implemented for DAPC

  • Support for Configuration commands

    • Extended Fade Time and Identify Device were omitted for customer implementation

    • Template for setting fast fade time was included, but translation to timer load value implementation was omitted

    • Only fade time for IEC62386-102:2014 is supported

      • Extended Fade Time and Fast Fade Time are not supported

      • Fast fade times can be set, computation for extended fade times will have to be included by customer

      • Modify timeToPeriodConversion to support use in DAPC

    • Template for Reset Memory Bank was included in source code

  • Support for both logarithmic and linear fade curves

    • IEC 62386-207 supports a linear fade curve if selected

    • If LED Module is enabled for a connected device, it will allow you to use a configuration command to select a dimming curve

Control Devices

Control devices are responsible for initiating communication on the DALI bus. These devices send commands or events based on inputs such as sensor triggers.

Supported DALI Parts

  • DALI IEC 62386-103:2014 - (General Requirements) defines the general behaviors for all DALI control devices, including instance based addressing, event generation and communication format.

  • DALI IEC 62386-303:2017 - (Occupancy Sensors) extends Part 103 with input behaviors specific to occupancy detection devices, such as movement and presence sensors.

Included Features

  • Functions to receive and transmit DALI commands and responses, respectively

  • Template functions using EEPROM to store certain DALI information in Flash memory and reload that information at startup

  • Support for Multi Master Application Controller (Collision Detection, Collision Avoidance and Collision Recovery)

  • Support for DALI 103 Commands

    • Device Control Instructions

    • Device Configuration Instructions

    • Device Queries

    • Instance Control Instructions

    • Special Commands

  • Support for DALI 303 Event Messages

  • Support for configuring the onboard PIR sensor on the TIDA 010-963 boosterpack.

3. Example Applications

This section provides example applications based on the supported DALI functionality. Each example demonstrates the use of specific parts and can be used as a reference for developing full-featured applications.

1. LED Demo

This example demonstrates DALI control gear implementation using DALI Part 102 and 207. The onboard LED on the launchpad is used to represent the lighting load.

Required Materials

Mount the TIDA 010-963 Boosterpack onto MSPM0L1306_LP. Connect the DALI bus lines to Hasseb DALI 2 controller. Once the example is flashed and device is running the example, launch the DALI 2 Controller GUI and press initialize. Once a short address, random address, and device type appear, you can begin sending supported/implemented commands to the device. LED on the launchpad will respond to the supported execution commands.

2. Occupancy Sensor demo

This example uses DALI Part 103 and Part 303 to implement an occupancy sensor using the onboard PIR sensor on the TIDA 010-963 board. The device sends event messages based on the detection motion.

Required Materials

External DALI Application controller can be used to send commands and verify event messages of the input device.

The test controller example can be used to evaluate this demo. However, no predefined commands are included in the code, users must manually input valid forward frame data to test the input devices.

Mount the TIDA 010-963 Boosterpack onto MSPM0G3507_LP. Connect the DALI bus lines to the boosterpack mounted on another MSPM0G3507_LP which is running the test controller example. Ensure that one of the TIDA 010-963 board provides power to the bus by supplying a 24V external DC input through the barrel jack connector on the board. Also, make sure the J1 and J7 connectors are properly connected to enable the external supply to power the DALI bus. Details on how to send commands using the test controller example are provided in the following section.

3. Test Controller demo

This example uses DALI Part 103 to implement a basic DALI application controller capable of sending forward frames. It allows users to manually construct and transmit 16-bit or 24-bit frames over the DALI bus.

No predefined commands are included in this example. Users are expected to modify or input the desired command frames at runtime. This setup serves as a reference for building a full-featured application controller, where custom control logic and flow can be added based on their requirements.

Once the example is flashed and the device is running, users can add the gUserVar variable to the expressions tab and modify its parameters as needed. Then set toSend to 1 to trigger the command transmission. If a response is received, the gReceive variable is set to 1, and the response data can be viewed in dali_gpio.Rx.dataArr.