虽然许多工程师使用加密狗和工具通过pmbus配置电源系统管理设备,但越来越多的设计正在添加电路板管理控制器,或将其pmbus连接到现有的微控制器或应用处理器。在ltc中,加密狗/工具选项由dc1613和ltpowerplay组成,linduino支持用于电力系统管理的固件开发,又名“linduino psm”。
linduino平台是一个独立的arduino兼容板(dc2026),适用于不同设备的代码库和草图。直到最近,人们的注意力还是在我身上。2c 和 spi。现在支持pmbus器件,包括dc2294扩展板,它允许工程师将linduino连接到psm演示板,并连接到全相位小猎犬以监视总线。
linduino psm的目标与linduino的目标相同,即提供工作示例代码,以便工程师可以学习,原型和借用自己的设计工作代码。
图1.dc2294 屏蔽 dc2026 林杜伊诺
linduino psm pmbus stack
linduino psm提供的pmbus库的分层方式很像网络api。层允许替换和替换。例如,驱动程序层可以针对工程师的最终解决方案进行返工,以便其顶部的层无需修改即可重复使用。
图2.pmbus 库堆栈
twi 和电线层
底部是双线接口,它是arduino twi和lt_wire库的修改副本。修改很小,但解决了块命令的问题。
smbus 1.3 规范定义了两个块命令:块写入和块读取。
图3.块写入
图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. 但是,它针对不同的字节顺序以及dac、adc等进行了优化。通过提供 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,这些是演示设备功能的简单文本菜单应用程序,例如:
读取遥测数据
读取状态
排序上/下
探测总线
转储故障日志
图5.命令界面
它们背后的代码使用lt_pmbus层,因此代码易于阅读。下面的代码只是在页面上循环,读取电压,并以十进制格式打印。读出中的值以浮点数形式返回,即 ieee 754 值;与数学库的转换发生在读取 v 中外功能。
无效 print_all_voltages()
{
浮动电压;
uint8_t页;
for (page = 0;page setpage(ltc3880_i2c_address, page);
电压 = pmbus->readvout(ltc3880_i2c_address, false);
电压 = pmbus->readvout(ltc3880_i2c_address, false);
serial.println(电压,dec);
}
}
pec 在幕后处理。在主菜单上,可以打开和关闭pec。由于命令是 pmbus-> 编写的,因此可以更改指针。
图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和现成的扩展板相结合,可以创建独立的工具。例如,下面的工具是一个编程工具,用于配置手持插座中设备的非易失性存储器。向上/向下按钮选择文件,选择按钮对设备进行编程。
图7.示例工具
教育用途
linduino psm的最后一个常见用途是学习。如果不熟悉smbus/pmbus标准,一个好的学习方法是连接全相位小猎犬,在dc1962上运行一些草图,并使用全相位数据中心软件观察总线。请注意,还有另一种选择,其中ltpowerplay可以与beagle一起使用。ltpowerplay的优点是寄存器语法内置于工具中,因此gui中的任何值都可以显示为smbus/pmbus事务。
总结
linduino psm是用于pmbus代码开发的原型设计,工具构建和学习环境。linduino与dc2294结合使用,可连接到任何psm演示板或产品。有一个完整的工作smbus / pmbus库以及数学转换,与arduino编码环境兼容。
华为交换机如何查看端口信息和光模块信息?
干货:蓝牙beacon工作原理和技术参数解析
EPS与UPS的区别分析
如何实现3D立体显示
YT-5700型挥发性有机物连续在线监测系统的使用事项
支持用于电力系统管理的固件开发的Linduino PSM
英飞凌电机系统IC系列:显着地减少了所需的PCB空间和组件总数
APS排程软件提升各部门沟通效率
小度在家智能音箱越来越受欢迎 正在走进千家万户
29位行业大咖助阵 百余企业参展 2023(春季)亚洲智能穿戴展精彩回顾
抓住重要战略机遇期 推动工业互联网快速发展
单片机I/O口的结构的详解与说明
8051单片机的定时器/计数器
linux怎么进入vim命令窗口
INGUN全新最小电动标记工具
5G还没用上6G就浮现了 6G的速度难道要上天
地物光谱仪在热致变色材料表征中的应用
芯森电子中标国家电网电流传感器采购项目
联建光电:出售子公司聚焦LED主业
智慧灯杆系统架构由哪些部分组成