OJSC NIIET的新型家用电机控制微控制器K1921VK01T


关于OJSC NIIET的新型微控制器K1921VK01T出现的消息不知何故传给了。效果如何?其外围设备设计用于控制电动机(motorcontrol)。这不仅是几个PWM通道。这是九个复杂的两通道PWM模块(PWM),其中三个是具有“高分辨率”模式的模块(HRPWM)。这是六个单独的32位CAP捕获模块。带有灵活的启动管理器,内置平均器和数字比较器的12位ADC的二十四个(!)通道。两个正交解码器(QEP),一堆通信接口,内部用户存储器和时钟-所有这些均在ARM Cortex-M4F内核上实现,具有兆字节的板上闪存和100 MIPS的性能!有意思吗

实际上,为了不在文章中列出产品的所有技术特征,我将其发送到制造商网站的页面既有简短的列表,也有完整的数据表(尽管它始终隐藏在站点的不同角落,并且在撰写本文时,可以从当前开发的表格中下载它)。在本文中,我最好告诉您一些数据表中未写的内容。

一点历史


NPP Digital Solutions 公司根据OJSC NIIET的命令于2012年开始对微控制器(以下称为MK)进行开发(沃罗涅日)。已获得ARM Cortex-M4F内核和一些通信外围模块的许可证,并且其中一些模块是由该公司独立开发的:PWM模块,ADC控制器(不是ADC本身,而是用于管理它的管理器),CAP捕获模块和QEP正交解码器模块。 NPP Digital Solutions首先在Kintex7 FPGA上产生了一个微控制器模型,该模型实现了未来微控制器的所有逻辑,包括ARM内核。但是FPGA是一种可自由重新编程的产品,如果在通过测试后检测到MK逻辑错误(这是在模拟器上进行的测试之外),它可以使您更正错误。但是如何测试电机控制微控制器?除了综合测试,当然还有控制电动机的真正任务!为此,NPP“数字解决方案”向我们求助-NPF Vector LLC,因为我们在基于MK Texas Instruments的电驱动器领域拥有丰富的经验,尽管这是因为我们坐在附近的建筑物中。在设计用于控制电动机的外围设备的联合讨论中,决定采用TMS320F28335德州仪器(TI)作为模型,因为该微控制器可能具有功能最强大,最灵活的电动机控制外围设备,在世界范围内都应受到尊重。因此,借助TI数据表,“数字解决方案”在其基础上为K1921VK01T创建了PWM,CAP和QEP模块的内部逻辑。此外,根据我们在TI MK方面的经验,我们还提出了TI缺乏的一些改进。这是PWM模块中的短脉冲滤波器(并非所有电源键驱动器,例如在很短的时间内打开/关闭,IGBT都可以进入线性模式),这些是正交解码器模块中的一些细微差别,可让您摆脱旅途中切换电表分频器的问题等与TI模块相比,“数字解决方案”将它们考虑在内,并相应地扩展了外围功能。

当NPP Digital Solutions开发模块的内部逻辑时,NPF Vector的我们为测试未来的微控制器奠定了基础。它是一个带有六个晶体管的小型变频器(“伺服放大器”),通过控制电路连接到FPGA上的原型微控制器,电源部分连接到带有霍尔位置传感器(用于检查CAP模块)和正交位置传感器(用于检查QEP模块)的小型伺服电机。 )我们的目标是:为微控制器编写软件,以确保使用您选择的任何位置传感器或同时使用这两个位置传感器对电动机进行全面的矢量控制。并且,当然,向“数字解决方案”报告外围发现的所有问题。

尽管MK在Digital Solutions进行了许多测试,但在带电电动机的测试过程中发现了许多错误。基本上,它们与内部块逻辑的不正确实现相关,在德州仪器(TI)数据表中未明确描述。例如,如果将比较设定点设置为定时器周期以上,PWM模块将产生什么?或者,如果为正交解码器包括输入信号分频器,则模块是否应通过分频信号或原始输入检测旋转方向的变化?这些问题的答案对于电驱动器可能是显而易见的,但对于微控制器逻辑的设计者而言则不是显而易见的。尽我们所能,我们在Digital Solutions中发现了类似的错误。该驱动器已成功进行矢量控制,没有任何问题。但是,当然,我们无法通过此类测试涵盖所有错误-确保在其他任务中错误会再次出现。但是为此,存在勘误表和微控制器的新修订版:要修复错误,必须首先收集它们。在使用“数字解决方案”在FPGA上调试MK逻辑后,完成了MK(或其他任何东西)的“接线”叫做微控制器吗?拓扑?),然后将所有工作结果转移到NIIET。顺便说一句,在MK发布之后,我们已经在“石头”中发现了几个错误,但是NIIET认为它们足以改变MK布局至关重要:它们会积累更多的东西-他们会加以解决。

职称



我还必须说微控制器幸存了好几个名字。最初,在开发过程中,它的代号为“ MS01”,然后将实验性的石头批次命名为NT32M4F1,然后就变成了K1921VK01T(此外,在某些地方,这些字母用俄语写成,其他英语字母也写成)。因此,如果您在此MK的早期文章和出版物中看到这些名称,请不要感到惊讶。

多少钱


目前(2016年初),NIIET准备出售第一批微控制器,该微控制器已经开始面向客户。晶体部分用塑料包裹部分用陶瓷包裹(因此,在关键应用中,晶体无法确定您自己的方式_知道_知道_)看来,2015年底塑料中的石材价格略低于3 tr,高于在俄罗斯购买时TI TMS320F28335的价格(在撰写本文时,将“其”价格转换为“我们的”的系数为76)。但是,在TMS320F28335中没有用户存储空间和小时,您需要设置外部存储空间和小时,因此最终的成本变得可比。这使得K1921VK01T不仅在进口替代方面,而且在简单的“商业利益”方面都有希望。尽管这种比较当然不是完全正确的-您可以在Cortex-M4F上找到许多便宜晶体的示例,这些晶体具有较高的时钟频率,但外围设备较少。因此,对于简单的任务,K1921VK01T会非常大且昂贵。但是对于主要应用(电动机和复杂电力电子设备的控制)而言,它具有竞争力。

我们的表现如何?


一年前,我们在展览会上做了一个演讲,演讲可以在这里找到。当然,我们的测试并不假装特别准确-毕竟,我们没有发布真正的基准测试,而是“汇总”了相同的矢量控制系统(还有什么可以激发电驱动器的?)。但是,这次演讲的简短重述是:在驱动任务所需的平均计算中,ARM Cortex-M4F架构落后于C2​​8 TI核心DSP。如果在可能的情况下使用近似三角函数等降低了计算的准确性,则可以将此差距减小到大约15%。但是同时,顶级C28内核(相同的TMS320F28335)的时钟频率为150 MHz,而K1921VK01T的频率为100 MHz。因此,通过所有库优化,K1921VK01T的计算能力在一定程度上与频率为90 MHz的TI piccolo MK系列相当。在我们看来,这可以解释为...非常好,因为如果您正确使用了新MK的所有硬件功能,例如DMA和自滤波ADC测量,您可以节省很多时钟周期。一种或另一种方式是,我们设法将性能最苛刻的项目K1921VK01T“塞入”了基于TMS320F2810(150 MHz,C28内核)的TMS320F2810,该项目已经崩溃到相同的2810中。

?


他们可能出了什么问题,这是ARM!正常,没有任何“但是”。采用任何JTAG,任何开发环境,但是...毕竟,任何方式都行不通。 “但是”是闪存固件。尽管ARM内核本身是标准化的,任何JTAG和环境都可以连接到K1921VK01T,但使用闪存固件并不是那么简单。似乎每个微控制器制造商都认为有责任制造自己的寄存器以使用其闪存的固件,因此开发工具的创建者在所有这些动物园的支持下都饱受折磨。在这方面,K1921VK01T也紧随其后-那里也有使用Flash的方法。但是,如果对于著名的制造商闪存编程器(驱动程序,闪存或我应该称呼它为什么?),在开发环境中编写并“开箱即用”工作,那么对于K1921VK01T,一切仅在那些环境下有效程序员在NIIET上为此编写的。幸运的是,对于IAR和Keil,一切都准备就绪,可以在以下位置找到带有固件说明的项目示例:NIIET论坛,以及NIIET维护的Bitbucket的开放存储库中。此外,我们在NPF Vector编写了对OpenOCD闪存K1921VK01T编程的支持(打开片上调试器)。这是GDB调试器和Iron之间的一层,形式是不同的JTAG仿真器和不同的石头。但是,当我们使用冲突解决方法在OpenOCD存储库中进行“代码审查”时,NIIET开发人员写了同样的东西,但是他们的写法更好(除了刻录主闪存之外,他们还添加了用户刻录功能),但是……这就是所有的歌词。这个OpenOCD有什么用?这是一种抽象层,允许您基于任何流行的IDE为K1921VK01T创建自己的免费开发环境。我们在“向量”中喜欢Eclipse(因为基于v4的TI Code Composer Studio环境是基于Eclipse的,我们已经习惯了它,通常,世界上没有比Eclipse更好的IDE) NIIET的开发人员在Qt Creator上创建了一个开发环境。但是,总的来说,这里和那里的含义是相同的:它需要环境,需要GCC的免费交叉开发工具集,需要使用OpenOCD的插件,需要使用OpenOCD本身,一些配置,还有一点魔力……而您已经完全使用了K1921VK01T,忘记了IAR和Keil。在撰写本文时,我们在我们的网站上发布了K1921VK01T的Eclipse程序集(我们将其称为VectorIDE);请在NIIET论坛上查看Qt Creator的配方。就个人而言,我们在自由的环境中进行K1921VK01T的所有项目,并建议您-GCC编译器集实际上并不落后于品牌IAR(请参阅我们的相同演示文稿)),但如果您是信誉良好的公司,则无需购买昂贵的导入软件(转换系数已经为76,Karl! 78!)。
哦是的还有一件事。它称为Codemaster ++ [ARM]。这是一个100%国内开发环境,包括编译器,也是为K1921VK01T设计的。我们在一年前检查了它的第一个版本,但是发现它还没有准备好,在编译器方面还有些不足,在代码编辑方面也很方便(尽管在此方面它可以与IAR竞争,后者知道我的意思)。但是它体积小且速度快,并且在接口上类似于OllyDbg之类的“黑客”调试器(比较:)。一般来说,也许有人会感兴趣。我必须说开发商(公司“ Fiton”)非常努力,甚至一次要求我们的基准提供“矢量引擎控件”以优化其编译器。

调试工具包有什么?



2016年初,自然界中就知道K1921VK01T上的四个调试板。这是我们的VectorCARD K1921BK01T以及其他产品……来自竞争对手。好的,就是这样,这是链接LDM-HELPER-K1921BK01TMBS-K1921VK01T。 NIIET本身似乎也有自己的电路板NIIET_1921BK01T,但显然在他们的网站上它对我隐藏了-如果有人找到链接,我将很乐意完成本文。它们之间有什么区别?我们不出售裸板,而是销售带有变频器,电动机,C源代码的矢量控制(基于我们当时为Digital Solutions编写的内容)以及用于监视所有过程的顶级程序和CANopen驱动程序的套件驱动器内部-请参阅我们的第一篇文章。因此,如果您只想使用新的MK,闪烁LED或通过各种通信接口发送数据,则最好购买竞争对手的调试板(尽管我们也有15 tr的裸板选项,但这完全是“裸机”-一些结论)。但是,如果您想在新的MK上创建电驱动器,则我们的调试工具包和软件可以节省半年或一年的开发时间(或更长的时间,具体取决于您是否了解电驱动器的原理以及是否拥有自己的调试和示波器工具)类似于我们的)。如果您仔细阅读第一篇文章因此,可能要记住,在没有可视化内部过程的情况下调试电驱动器的控制系统是不可能的。而且,如果在德州仪器(TI)的开发环境能够基于MK存储器阵列的数据显示“开箱即用”的波形图,那么对于通用开发环境中的ARM(不是来自MK的特定制造商)而言,尚未观察到这种功能(如果Fiton开发人员阅读了该功能) -您想使用示波器构建器修改Codemaster ++ [ARM]吗?这很容易!)。在我们的调试工具包中,提供了这种可视化波形的方法,因此您可以立即看到控制电动机的所有内容:相电流,电压,所有调节器的输入/输出等形式。我们套件的价格很高,大约为130 tr。(目前只有一台带有所有位置传感器的电动机的成本约为30 tr)。但是对于希望学习新产品的组织来说,这并不重要-仅ARM的商业开发环境可能会花费更多。

K1921VK01T的缺点


现在可以注意到新型K1921VK01T的主要缺点是什么?
•首先,这无疑是一个原始产品,因为到目前为止,它实际上已经由10-20个人编程。当有更多开发人员坐在上面时,将检测到错误-将发布新修订。好了 但是,尽管如此,它们仍会扭曲引擎-扭曲自身。
•目前,文档也很潮湿。错误很少,但是有些事情已经解释了……这还不是很清楚。可以画出更多细节,举一些例子。我认为随着时间的推移它将最终确定。
•微控制器非常大且复杂。这对某人来说是一个加号,对某人来说是一个减号。几乎没有应用程序可以涵盖其全部功能。 NIIET已经在考虑基于它的一系列MK,它们具有不同的建筑物和一组外围设备。但目前-只有K1921VK01T。
•他有一个特定的ADC。通常,MK制造商会安装一个快速(12 MS / s)ADC模块,并通过多个通道对其进行多路复用-例如,这是由Texas Instruments在C2000系列中完成的。但是在K1921VK01T中,有12个并行运行的两通道慢速(1.7MS / s)ADC模块。除了无法快速测量某些东西外,为什么还差呢?如果MK中有一个ADC,则可以在控制器板上将校准后的参考信号(例如1V和2V)发送到两个未使用的通道,并使用它们来计算和补偿该一个ADC的乘法误差和偏移误差,从而将校正扩展到所有通道(ADC是一个)当MK中有许多ADC时,这种技巧将行不通-它们都会有自己的人为错误。我们在德州仪器(TI)MK型TMS320F2810上使用了校准技巧(在数据表中对此进行了描述并推荐使用),在未经校准的K1921VK01T中,与经过校准的TMS320F2810相比,我们获得的ADC精度较低。我们必须有一个专门的支架来独立地校准每个K1921VK01T ADC模块,并将校准表拼接到内置的用户存储器中。然后,模拟测量的精度被证明是可比的(校准几乎没有偏离温度-已对其进行了检查)。 NIIET可能应该在工厂闪过这样一张桌子,这很方便。但是,当闪光灯为空时。然后,模拟测量的精度被证明是可比的(校准几乎没有偏离温度-已对其进行了检查)。 NIIET可能应该在工厂闪过这样一张桌子,这很方便。但是,当闪光灯为空时。然后,模拟测量的精度被证明是可比的(校准几乎没有偏离温度-已对其进行了检查)。 NIIET可能应该在工厂闪过这样一张桌子,这很方便。但是,当闪光灯为空时。
•100 MHz的频率当然很低,我希望更快。但这就是。尽管他们在某些地方记录了125 MHz的频率-这完全取决于环境温度。 “数字解决方案”报告了这样的非正式信息:晶体内部的最大设计温度为125度。其上的温度比环境温度高约15度。根据项目K1921VK01T应该在环境+储备的85度下工作,保证在100 MHz下实现。实际上,MK可以加速到100 MHz以上,单个样本的工作频率在140-170 MHz,但这取决于样本。因此,如果晶体没有过热,则可以在有人需要的情况下将其分散。但是,如果您的应用中温度很高(+85),则最好不要欺负100 MHz以上的频率。
•没有通过通信接口(CAN,RS)的官方引导程序(编程器)。只能通过JTAG / SWD缝制MK。因此,如果产品控制器处于封闭状态,则需要为所需的通信接口编写引导加载程序。或等到NIIET写入。到目前为止,还没有,但是我认为它会出现。

结论


尽管还有什么结论呢?一切才刚刚开始!最后,还有一个家用微控制器,您可以在其上真正实现电驱动!在此之前,为了应对电机控制任务,所有现有的家用MK要么处于核心弱势状态,要么处于外围弱势状态。但是现在-拥有最复杂的控制结构和最复杂的动力单元的完全自由。我要特别指出这种用于机器伺服驱动器的微控制器的前景。到目前为止,在俄罗斯还不可能制造出全家用的多轴精密机床,因为(原因之一)没有什么可以制造高质量的伺服驱动器的。现在有这样的微控制器。

Source: https://habr.com/ru/post/zh-CN389129/


All Articles