0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

支持用于电力系统管理的固件开发的Linduino PSM

星星科技指导员 来源:ADI 作者:Michael Jones 2023-04-21 11:19 次阅读

虽然许多工程师使用加密狗和工具通过PMBus配置电源系统管理设备,但越来越多的设计正在添加电路板管理控制器,或将其PMBus连接到现有的微控制器或应用处理器。在LTC中,加密狗/工具选项由DC1613和LTpowerPlay组成,Linduino支持用于电力系统管理的固件开发,又名“Linduino PSM”。

Linduino平台是一个独立的Arduino兼容板(DC2026),适用于不同设备的代码库和草图。直到最近,人们的注意力还是在我身上。2C 和 SPI。现在支持PMBus器件,包括DC2294扩展板,它允许工程师将Linduino连接到PSM演示板,并连接到全相位小猎犬以监视总线。

Linduino PSM的目标与Linduino的目标相同,即提供工作示例代码,以便工程师可以学习,原型和借用自己的设计工作代码。

poYBAGRCALGAPAT8AALKrR6-bsA872.png

图1.DC2294 屏蔽 DC2026 林杜伊诺

Linduino PSM PMBus Stack

Linduino PSM提供的PMBus库的分层方式很像网络API。层允许替换和替换。例如,驱动程序层可以针对工程师的最终解决方案进行返工,以便其顶部的层无需修改即可重复使用。

pYYBAGRCALKAHAUkAAAp5W28e9Q513.png

图2.PMBus 库堆栈

TWI 和电线层

底部是双线接口,它是Arduino TWI和LT_Wire库的修改副本。修改很小,但解决了块命令的问题。

SMBus 1.3 规范定义了两个块命令:块写入和块读取。

poYBAGRCALOATtzAAAJdFY_3FGU359.png

图3.块写入

poYBAGRCDL-AWj_IAABiDU7nUPc129.png

图4.阻止读取

允许字节计数的范围为 0 到 255 字节。TWI和Wire的Arduino版本只允许32字节。为了支持 255 字节事务,必须解决三个问题:

小缓冲

内存使用情况

应用程序接口

缓冲区最多可容纳 255 个字节(原始缓冲区为 32 个),但大缓冲区将使用处理器内存的 1/8,即使从未使用块调用也是如此。修改后的库将缓冲区从应用程序传递到 API。如果应用程序分配内存,则只需在需要时使用内存,并且可以在不使用时释放内存。修改后的 API 可以传递大于 255 的值以传输超过 255 个字节,因为 count 参数已从字节更改为单词。

LTC_I2控制层

The LTC_I2CBus 层提供 I2C 事务接口。最初的林杜伊诺图书馆附带了另一个 I2名为 LT_I 的 C 库2C. 但是,它针对不同的字节顺序以及DACADC等进行了优化。通过提供 I2专门用于PMBus的C层,可以维护新层,而无需更新旧草图或担心破坏其他非PSM草图。

LTC_SMBus图层

LTC_SMBus层为 SMBus 提供标准事务,这是 PMBus 的基础。例如:

发送字节

写/读字节

写/读字

写/读块

此层可用于与任何 SMBus 设备通信,或使用 PMBus 命令代码与 PMBus 设备通信。

LTC_PMBus层

LTC_PMBus层提供基于 PMBus 命令集的高级事务。这允许工程师使用高级功能进行编程,例如:

设置页面

读取当前

读取电压

顺序向上/向下

使用更高层的命令使代码更具可读性,工程师不必在规范中查找命令。某些命令是聚合的,例如“设置第 N 页的电压”或“设置电压并保持边距相同百分比”。

如果缺少命令,通常的做法是先使用LTC_SMBus层对其进行编码,然后将代码迁移到LTC_PMBus层。

LTC_PMBusMath

PMBus使用的数据格式(L11 / L16),这些格式不是IEEE 754浮点标准等行业标准,但工程师更喜欢IEEE标准,因为C / C++使用此标准。Linduino PSM 库包括与 IEEE 浮点和 PMBus 格式之间的转换例程。LTC_PMBus层接受并返回 IEEE 浮点数,并使用LTC_PMBusMath例程管理层内的转换。但是,可以将数学例程与LTC_SMBus层一起使用。

注意:PMBus 1.3 定义了 IEEE 754 格式,但在业界根据此标准实现设备之前,数学库中的转换例程将是必需的。也总会有旧设备需要支持。

林杜伊诺素描

Linduino/Arduino Sketches只不过是小应用程序。对于 PSM,这些是演示设备功能的简单文本菜单应用程序,例如:

读取遥测数据

读取状态

排序上/下

探测总线

转储故障日志

poYBAGRCDN2ARfaFAAD0tn4kmIU236.png

图5.命令界面

它们背后的代码使用LT_PMBus层,因此代码易于阅读。下面的代码只是在页面上循环,读取电压,并以十进制格式打印。读出中的值以浮点数形式返回,即 IEEE 754 值;与数学库的转换发生在读取 V 中外功能。

无效 print_all_voltages()
{

浮动电压;
uint8_t页;

for (page = 0;page < 2;page++)
{

pmbus->setPage(ltc3880_i2c_address, page);
电压 = pmbus->readVout(ltc3880_i2c_address, false);
电压 = pmbus->readVout(ltc3880_i2c_address, false);
Serial.println(电压,DEC);
}
}

PEC 在幕后处理。在主菜单上,可以打开和关闭PEC。由于命令是 pmbus-> 编写的,因此可以更改指针。

poYBAGRCDNiARW8AAADYnyBT5ik437.png

图6.主菜单

案例2:
pmbus->enablePec(ltc3880_i2c_address);
pmbus->enablePec(ltc2974_i2c_address);
pmbus->enablePec(ltc2977_i2c_address);
删除SMBus;
删除 PMBus;
smbus = new LT_SMBusPec();
pmbus = new LT_PMBus(smbus);
破;

情况3:
pmbus->禁用Pec(ltc3880_i2c_address);
pmbus->disablePec(ltc2974_i2c_address);
pmbus->disablePec(ltc2977_i2c_address);
删除SMBus;
删除 PMBus;
SMBs = 新LT_SMBusNoPec();
pmbus = new LT_PMBus(smbus);
破;

嗯,差不多。设备还必须处于正确的模式。基本策略是:

更改设备模式

删除 smbus 和 pmbus 对象

使用正确的模式重新实例化对象

使用 smbus-> 和 pmbus-> 指针的代码不必更改。

其他库(非 Linduino)传递一个值来控制 PEC 或配置全局变量。Linduino方法使用C++类。但是,代码保持非常简单,因此如果禁止工程师使用C++,它可以非常快速地转换为纯 C。大多数嵌入式系统都支持 C 和 C++ 编译器,但如果一个大型系统是纯 C,工程师可能不想为C++名称重整或使用 C++ 编译器编译 C 的效果而烦恼。

成型

原型设计只是将草图复制到具有新名称的文件并进行修改的问题。原型完成后,工程师必须决定如何将代码迁移到最终应用程序。

如果不涉及遗留代码,最简单的情况是重写LTC_I2CBus 或LTC_SMBus图层并重用其上方的图层。如果有很多遗留代码,最好复制原型设计并重新编码。最主要的是工程师可以在更简单的环境中进行原型设计。

硬件也可以重复使用。当然,可以将Atmega328放入设计中并直接使用Linduino PSM代码。或者对TWI / LTC_I进行一些调整2CBus工程师可以使用更大的Arduino平台之一。LTC将这些移植到伽利略作为实验,花了不到一天的时间。

对于从属硬件,Linduino可以连接到任何PSM演示板。但是,大多数产品设计都有用于DC1613加密狗的连接器,因此Linduino可以使用DC2294扩展板直接连接到终端设计。这是在将资源投入到新产品之前对完整设计进行原型设计的好方法。可以为操作系统开发算法,以确定需要多少计算能力和内存空间,并证明它将提供投资回报。

工具制造

Linduino是构建专业最终用途工具的良好平台。通过将Linduino,DC2294和现成的扩展板相结合,可以创建独立的工具。例如,下面的工具是一个编程工具,用于配置手持插座中设备的非易失性存储器。向上/向下按钮选择文件,选择按钮对设备进行编程。

pYYBAGRCALeAKTlPAAPExiTuuZ0169.png

图7.示例工具

教育用途

Linduino PSM的最后一个常见用途是学习。如果不熟悉SMBus/PMBus标准,一个好的学习方法是连接全相位小猎犬,在DC1962上运行一些草图,并使用全相位数据中心软件观察总线。请注意,还有另一种选择,其中LTpowerPlay可以与Beagle一起使用。LTpowerPlay的优点是寄存器语法内置于工具中,因此GUI中的任何值都可以显示为SMBus/PMBus事务。

总结

Linduino PSM是用于PMBus代码开发的原型设计,工具构建和学习环境。Linduino与DC2294结合使用,可连接到任何PSM演示板或产品。有一个完整的工作SMBus / PMBus库以及数学转换,与Arduino编码环境兼容。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7547

    浏览量

    151333
  • 电源
    +关注

    关注

    184

    文章

    17706

    浏览量

    250002
  • 处理器
    +关注

    关注

    68

    文章

    19265

    浏览量

    229684
收藏 人收藏

    评论

    相关推荐

    移动车载3G无线视频监控有效提高电力系统管理效率

    `移动车载3G无线视频监控系统有效提高电力系统管理效率目前,电力建设单位通过架设临时杆塔或在塔吊安装固定移动车载3G无线视频监控系统,通过该监控系统
    发表于 01-05 16:35

    一周推荐:Analog Devices数字电源系统管理 (PSM) 器件

    、时序、裕度调整和黑盒故障日志数据进行控制和监控。这款业界领先、具有图形用户界面 (GUI) 的开发软件经验证可支持多达256个电压轨。数字电源系统管理PSM产品类型电源
    发表于 08-21 10:20

    电力系统管理

    电力系统管理
    发表于 04-16 11:02 3次下载
    <b class='flag-5'>电力系统管理</b>

    AN170-磨练电力系统管理控制器的可调补偿功能

    AN170-磨练电力系统管理控制器的可调补偿功能
    发表于 04-18 19:40 0次下载
    AN170-磨练<b class='flag-5'>电力系统管理</b>控制器的可调补偿功能

    AN168-利用电力系统管理控制器实现快速遥测

    AN168-利用电力系统管理控制器实现快速遥测
    发表于 04-18 20:54 0次下载
    AN168-利用<b class='flag-5'>电力系统管理</b>控制器实现快速遥测

    具有电力系统管理功能的PMBus DC/DC变换器

    具有电力系统管理功能的PMBus DC/DC变换器
    发表于 04-28 12:49 5次下载
    具有<b class='flag-5'>电力系统管理</b>功能的PMBus DC/DC变换器

    数字电力系统管理

    数字电力系统管理
    发表于 05-09 12:00 1次下载
    数字<b class='flag-5'>电力系统管理</b>

    LTC3870-1:用于数字电力系统管理的多相降压从控制器数据表

    LTC3870-1:用于数字电力系统管理的多相降压从控制器数据表
    发表于 05-18 13:41 0次下载
    LTC3870-1:<b class='flag-5'>用于</b>数字<b class='flag-5'>电力系统管理</b>的多相降压从控制器数据表

    LTC3884:亚百万欧姆DCR传感双输出多相降压控制器和数字电力系统管理数据表

    LTC3884:亚百万欧姆DCR传感双输出多相降压控制器和数字电力系统管理数据表
    发表于 05-19 15:50 0次下载
    LTC3884:亚百万欧姆DCR传感双输出多相降压控制器和数字<b class='flag-5'>电力系统管理</b>数据表

    LTC3889:60V双输出降压控制器,带数字电力系统管理数据表

    LTC3889:60V双输出降压控制器,带数字电力系统管理数据表
    发表于 05-24 14:50 7次下载
    LTC3889:60V双输出降压控制器,带数字<b class='flag-5'>电力系统管理</b>数据表

    LTM4664:48VIN,单片机50A微机调节器,数字电力系统管理用户指南

    LTM4664:48VIN,单片机50A微机调节器,数字电力系统管理用户指南
    发表于 05-26 18:23 9次下载
    LTM4664:48VIN,单片机50A微机调节器,数字<b class='flag-5'>电力系统管理</b>用户指南

    AN-152电力系统管理培训

    AN-152电力系统管理培训
    发表于 05-31 12:24 23次下载
    AN-152<b class='flag-5'>电力系统管理</b>培训

    电力系统管理协议规范之通用要求传输和电气接口

    电力系统管理协议规范之通用要求传输和电气接口
    发表于 08-03 16:29 3次下载

    电力系统管理协议规范之命令语言

    电力系统管理协议规范之命令语言
    发表于 08-03 16:31 5次下载

    用于电源系统管理Linduino

    电子发烧友网站提供《用于电源系统管理Linduino.pdf》资料免费下载
    发表于 11-24 11:49 0次下载
    <b class='flag-5'>用于</b>电源<b class='flag-5'>系统管理</b>的<b class='flag-5'>Linduino</b>