STLUX:照明与电源转换领域的数字控制利器
在电子工程的照明与电源转换应用中,对高效、精准控制的需求日益增长。意法半导体(ST)推出的STLUX系列数字控制器,凭借其强大的功能和出色的性能,成为了这一领域的有力解决方案。作为一名资深电子工程师,我将结合实际设计经验,为大家深入解读STLUX系列控制器。
文件下载:STEVAL-ILL075V1.pdf
1. STLUX 家族概述
STLUX 家族是意法半导体为照明和电源转换应用量身定制的数字设备。该系列控制器成功集成于多种架构和应用中,从简单的用于驱动多串 LED 的降压转换器,到用于功率因数校正的升压转换器,再到用于高功率可调光 LED 串的半桥谐振转换器,甚至是用于 HID 灯镇流器的全桥控制器,都能看到 STLUX 的身影。
1.1 家族成员及特性对比
STLUX 家族包括 STLUX385A、STLUX383A、STLUX325A 和 STLUX285A 等不同型号,它们在封装、引脚数量、SMED 数量、PWM 输出引脚、数字输入引脚、比较器输入引脚、内部 DAC、ADC 输入引脚、ADC 增益、GPIO 端口引脚以及通信外设等方面存在一定差异。具体特性对比如下:
特性
STLUX385A
STLUX383A
STLUX325A
STLUX285A
封装
TSSOP38
TSSOP38
VFQFPN32
TSSOP28
引脚数量
38
38
32
28
SMED 数量
6
6
6
6
SMED PWM 输出引脚
6
6
5
4
快速数字输入引脚
6
6
5 (1)
3 (2)
正比较器输入引脚
4
4
4
2 (3)
负比较器输入引脚
1
1
1
1 (3)
内部 DAC
4
4
4
4
ADC 输入引脚
8
8
6
8
ADC 增益
x1 - x4
x1
x1
x1
GPIO 端口 0 引脚
6
6
4
4
UART 外设
是
是
是
是
I²C 外设
是
是
是
是
HSE 功能
是
是
是
是
注:
DIGIN2 - DIGIN3 在 STLUX325A 上连接到同一引脚。
DIGIN0 - DIGIN1、DIGIN2 - DIGIN3、DIGIN4 - DIGIN5 在 STLUX285A 上分别连接到同一引脚。
CPP0、CPP1 和 CPM3 在 STLUX285A 上连接到同一引脚,CPP2 和 CPP3 在 STLUX285A 上连接到同一引脚。
2. 核心技术:SMED(状态机事件驱动)
SMED 技术是 STLUX 家族的核心,它使设备能够独立配置六个 PWM 时钟,最大分辨率可达 1.3 ns。SMED 是一个强大的自主状态机,可对外部和内部事件做出响应,无需软件干预即可运行,反应时间低至 10.4 ns,非常适合对时间要求严格的应用。与传统的基于定时器的 PWM 发生器相比,SMED 具有更优越的性能。
2.1 SMED 的主要特性
可配置状态机 :能够根据外部事件和内部定时器的触发,生成 PWM 信号。
高分辨率 :原生分辨率超过 10.4 ns,使用 SMED 抖动功能时分辨率可达 1.3 ns。
多状态可选 :每个 SMED 有 6 个状态,包括 IDLE、S0、S1、S2、S3 和特殊的 HOLD 状态。
事件触发 :可由同步和异步外部事件或内部定时器触发状态转换,每个转换都可产生中断。
丰富的寄存器 :有 15 个寄存器用于配置状态机行为,包括四个 16 位可配置时间寄存器(T0、T1、T2、T3)。
内部资源访问 :可通过处理器接口访问内部资源,并有 8 个中断请求线。
2.2 SMED 耦合方案
STLUX 支持多种 SMED 耦合方案,包括单 SMED 配置、同步耦合 SMED、异步耦合 SMED、同步双耦合 SMED、异步双耦合 SMED 和外部控制 SMED。通过 MSC_SMEDCFGxy 寄存器的 SMDx_GLBCONF 和 SMDx_DRVOUT 位字段,可以对 SMED 单元进行不同的耦合配置,从而扩展单个 SMED 的功能。
2.3 连接矩阵
连接矩阵扩展了每个 SMED 单元的输入连接性,使 SMED 能够从多种来源接收事件。通过矩阵,可以将 SMED 输入连接到数字输入、比较器输出信号、软件事件和三个 PWM 内部反馈信号等。每个 SMED 单元有三个输入选择线,可通过 MSC_CBOXS (5:0) 寄存器进行配置,选择不同的连接矩阵信号。
3. 内部控制器(CPU)
STLUX 家族集成了可编程的 STM8 控制器,作为设备的监管者。STM8 是一款现代的 CISC 核心,专为代码效率和性能而设计,具有 21 个内部寄存器、20 种寻址模式和 80 条指令。
3.1 架构和寄存器
哈佛架构与 3 级流水线 :提高指令执行效率。
32 位宽程序内存总线 :大多数指令可单周期取指。
16 位索引寄存器 :支持带或不带偏移的索引寻址模式和读 - 修改 - 写类型的数据操作。
8 位累加器 :用于数据运算。
24 位程序计数器 :提供 16 - Mbyte 的线性内存空间。
16 位堆栈指针 :可访问 64 - Kbyte 的堆栈。
8 位条件码寄存器 :包含七个条件标志,根据最后执行的指令结果更新。
3.2 寻址模式
STM8 具有 20 种寻址模式,包括用于查找表的索引间接寻址模式和用于高效实现局部变量和参数传递的堆栈指针相对寻址模式。
3.3 指令集
指令集包含 80 条指令,平均指令大小为 2 字节,支持标准的数据移动、逻辑/算术功能、8 位乘 8 位乘法、16 位乘 8 位和 16 位乘 16 位除法、位操作以及堆栈和累加器之间的数据传输等。
3.4 单 wire 接口模块(SWIM)
SWIM 与集成的调试模块(DM)配合使用,可实现非侵入式的实时在线调试和快速内存编程。该接口可在所有设备操作模式下激活,并支持热插拔,最大数据传输速度为 145 字节/毫秒。
3.5 调试模块
调试模块可由外部目标仿真器完全控制,除了内存和外设操作外,还可以通过影子寄存器实时监控 CPU 操作。支持实时读写 RAM 和外设寄存器,在应用程序停止时可读写所有资源,可设置软件断点,但中断向量表除外,还有两个高级断点和 23 种预定义的断点配置。
4. 基本外设
4.1 向量中断控制器
支持嵌套中断,具有三个软件优先级级别和 21 个硬件优先级的中断向量,包括两个用于 12 个外部可屏蔽或不可屏蔽中断请求线的向量,以及陷阱和复位中断。
4.2 定时器
系统定时器 :由可编程预分频时钟驱动的 16 位自动重载计数器,可工作在单次或自由运行模式,用于提供 IC 时间基准系统时钟,并在定时器溢出事件时产生中断。
辅助定时器 :功能简单,时间基准频率由 CCO 时钟逻辑提供,可配置不同的源时钟和预分频因子,中断功能由中断边沿检测逻辑实现。支持自由运行模式、向上计数、8 位定时器预分频器,可配置为向量中断、IRQ/NMI 或轮询模式,定时器脉冲可通过 CCO 主引脚配置为时钟输出信号。
自动唤醒定时器(AWU) :用于周期性地将 IC 设备从活动暂停状态唤醒,AWU 频率时间基准 (f_{AWU}) 可在 LSI(153.6 kHz)和外部时钟 HSE 分频至 128 - kHz 时钟之间选择,默认由 LSI 内部源时钟提供。
看门狗定时器 :基于两个独立的定时器,为应用程序提供高可靠性。包括窗口看门狗定时器和独立看门狗定时器,窗口看门狗用于检测软件故障,独立看门狗用于解决硬件或软件故障。
5. 存储器
STLUX 采用嵌入式 Flash 和 (E^2PROM),具有 ECC 代码纠错和保护机制,防止嵌入式程序被破解。
程序 Flash 存储器 :32 Kbyte 的单电压程序 Flash 存储器,在 25 °C 下经过 10 k 周期后,在 85 °C 下数据保留 15 年。
数据 (E^2PROM) :1 Kbyte 真正的数据 (E^2PROM),在 85 °C 下经过 100 k 周期后,数据保留 15 年。
RAM :2 Kbytes。
5.1 存储器架构
存储器按 128 字节的块组织,读取粒度为 1 字(4 字节),写入/擦除粒度为 1 字(4 字节)或 1 块(128 字节),写入、擦除、字和块管理由存储器接口自动处理。
5.2 保护机制
写保护(WP) :在应用模式下防止意外覆盖存储器,可通过用户软件执行特定序列临时解除。
用户引导代码保护(UBC) :在所有 STLUX 设备中,可选择保护 32 Kbyte 的存储器区域不被覆盖,除了标准的写保护外,当 ROP 保护启用时,可通过嵌入式程序或调试接口修改 UBC 保护。
读保护(ROP) :可通过选项字节设置激活,防止通过调试模块和 SWIM 接口读取和写入程序存储器、数据存储器和选项字节,在所有设备操作模式下均有效,任何试图通过覆盖 ROP 选项字节来移除保护的操作都会触发程序和数据存储器内容的全局擦除。
6. 时钟控制器
时钟控制器将不同振荡器提供的系统时钟分配给核心和外设,管理低功耗模式下的时钟门控,并确保时钟的稳定性。
6.1 时钟源
内部 RC 振荡器 :包括 16 - MHz 的 HSI 和 153.6 - kHz 的 LSI。
外部时钟源 :可连接晶体/谐振器振荡器或外部时钟输入,支持最大 24 MHz 的外部时钟。
内部 PLL :提供 96 MHz 的高频时钟,用于生成高频、精确的 PWM 波形,输入参考时钟必须为 16 MHz,可由内部 HSI 信号或外部 HSE 辅助输入晶体振荡器线提供,但内部 PLL 预分频时钟不能作为 (f_{MASTER}) 源时钟。
6.2 时钟管理特性
复位 :复位后,微控制器默认以 2 MHz(16 MHz / 8)的 HSI 内部时钟重新启动,代码执行开始后,应用程序可更改时钟源和速度。
安全时钟切换 :可在运行模式下通过配置寄存器安全地切换时钟源,直到新的时钟源准备好才切换时钟信号,保证无毛刺切换。
时钟管理 :为降低功耗,可停止核心或单个外设的时钟。
唤醒 :设备从低功耗模式唤醒时,先使用内部 RC 振荡器(16 MHz / 8)快速启动,经过稳定时间后,恢复进入暂停模式前选择的时钟源。
时钟安全系统(CSS) :可监控外部时钟源,在时钟故障时自动切换到内部 RC(16 MHz / 8)。
可配置主时钟输出(CCO) :可输出内部时钟源信号供应用使用。
7. 电源管理
为实现高效的电源管理,STLUX 支持四种不同的低功耗模式:
等待模式 :CPU 停止,但外设继续运行,可由内部或外部中断或复位唤醒。
带稳压器开启的活动暂停模式 :CPU 和外设时钟停止,自动唤醒单元(AWU)以可编程间隔生成内部唤醒信号,主电压稳压器保持供电,电流消耗比带稳压器关闭的活动暂停模式高,但唤醒时间更快,可由内部 AWU 中断、外部中断或复位唤醒。
带稳压器关闭的活动暂停模式 :与带稳压器开启的活动暂停模式类似,但主电压稳压器关闭,唤醒时间较慢。
暂停模式 :微控制器功耗最低,CPU 和外设时钟停止,主电压稳压器关闭,可由外部事件或复位唤醒。
在所有模式下,CPU 和外设保持永久供电,系统时钟仅应用于选定的模块,RAM 内容保留,欠压复位电路保持启用。
8. 通信接口
8.1 数字可寻址照明接口(DALI)
DALI 是照明行业定义的用于照明控制解决方案的新接口,符合 IEC 62386 标准。STLUX 的 DALI 驱动具有以下特点:
传输速率 :支持 1.2、2.4 和 4.8 kHz 的传输速率,误差 ± 10%。
消息长度 :前向有效负载为 16、17、18 和 24 位消息长度,后向有效负载为 8 位消息长度。
双向通信 :支持双向通信,可监控接收器线路超时,超时时间为 500 ms ± 10%。
极性不敏感 :DALI_rx 和 DALI_tx 信号线路极性不敏感。
互操作性 :与不同消息长度的设备互操作。
可屏蔽中断请求线 :支持可屏蔽中断请求线。
低功耗模式 :在低速操作模式下,DALI 外设时钟降至 153.6 kHz。
噪声抑制滤波器 :DALI 接口包含噪声抑制滤波器,可通过三个寄存器(MSC_DALICKSEL、MSC_DALICKDIV 和 MSC_DALICONF)进行配置,去除 RX 线路上的任何反弹、毛刺或杂散脉冲。
8.2 通用异步接收器/发送器(UART)
UART 是异步接收器/发送器通信接口,具有以下特性:
SW 流控制 :支持 SW 流控制操作模式。
全双工通信 :支持全双工、异步通信。
高精度波特率发生器 :具有高精度的波特率发生器系统,通用可编程发送和接收波特率可达 (f_{MASTER}) / 16。
可配置数据字长度 :数据字长度可配置为 8 或 9 位。
可配置停止位和奇偶校验 :支持 1 或 2 个停止位,可配置奇偶校验控制。
独立使能位 :发送器和接收器有独立的使能位。
中断源 :包括发送事件、接收事件和错误检测标志,有两个中断向量(发送器中断和接收器中断)。
低功耗模式 :支持降低功耗模式,可通过空闲线检测或地址标记检测从静音模式唤醒,有两种接收器唤醒模式(地址位(MSB)和空闲线)。
8.3 内部集成电路接口(I²C)
I²C 总线接口作为微控制器和串行 I²C 总线之间的接口,提供多主功能,控制所有 I²C 总线特定的时序、协议、仲裁和定时,支持标准和快速速度模式。
主模式特性 :可生成时钟、启动和停止信号。
从模式特性 :可编程 I²C 地址检测和停止位检测。
寻址支持 :支持 7 位/10 位寻址和通用调用。
通信速度 :支持标准速度(最高 100 kHz)和快速速度(最高 400 kHz)。
状态标志和错误标志 :包括发送器/接收器模式标志、字节传输结束标志、I²C 忙标志以及仲裁丢失条件、地址/数据传输后确认失败、检测到错误的启动或停止条件、时钟拉伸禁用时的溢出/欠载等错误标志。
中断源 :包括通信中断、错误条件中断和从暂停模式唤醒中断,在从模式下,可在地址检测时唤醒 MCU 从低功耗模式。
9. 模拟 - 数字转换器(ADC)
STLUX 家族包含一个 10 位逐次逼近 ADC,具有 8 个多路复用输入通道。模拟输入信号在转换前可通过