很久没逛论坛了,首先说下ST的使用经历:
从大一开始便接触了ST的MCU产品,那时候买的第一块开发板也是正点原子的F103系列,后来在一些项目设计中便一直使用ST的MCU产品。
无论是个人的电子设计还是参加工作后,在设计选型时都会优先考虑ST的MCU,因为ST的MCU产品应用场景覆盖率全,产品资料(参考手册、编程手册、应用笔记、勘误手册等)和生态开发环境全面,使用过程中遇到的问题基本上都可以通过官方手册来解决。
再谈一下目前及以往使用ST MCU过程中遇到的一些问题或困惑,以及建议:
(一)STM32G4
问题:
自从ST发布STM32G4系列MCU后,瞬间觉得F1、F2都弱爆了,G4这货堪称性能小怪兽啊。于是在最新的一个产品中用上了它,型号是STM32G474VE。软件工程师在调ADC外设的时候告诉我这货采样误差很大,居然最大误差超过了10%。
我一听心里一阵发慌,纳尼?这货难道名不属实?F103都没这么屌啊?我告诉自己要冷静,一定哪里出了问题,MCU本身应该不会这么弱。于是先检查了一遍硬件电路确保模拟运放部分电路无误后,便看了下软件工程师的代码和官方的例程,终于发现了点蹊跷:官方例程中都进行了ADC自校准操作,而我们的软件工程师由于对ST MCU不熟悉,而没有进行校验操作。
解决方法:
让软件工程师加上了ADC校验操作再次调试,精度上去了,但是误差最大还是有5%左右。我心里嘀咕,嗯!看来还有哪里配置没对。于是把STM32G4系列的参考手册翻出来,仔细看了一下ADC外设部分,发现这货的ADC参考电压VREF是不能配置的(F1系列ADC外设的参考电压是可以通过软件配置其电压规格),同时其内部有个1.2V的电压调整器,输出连到了ADC1/3/4/5的输入通道18上,可以通过采样该电压值反推外部参考电压VREF的值,然后计算ADC的实际采样值。
加上代码后调试,反推计算得到外部VREF的值为3.41V左右(该VREF参考电压为3.3V,实测为3.28V),也就是说ADC是按照3.41V的参考电压来计算。经过此番操作后,ADC的采样精度控制在2%了。但是关于这点,没有明白ST的用意,从ADC框图来看,外部VREF电压是直接输入到ADC参考电压上,中间没有经过其它环节,怎么会出现电压偏差?关于这点还希望ST原厂能够解答一下,谢谢!
(二)资料文档
问题:
(1)由于中英文语言文化的差异,ST官方的英文文档中部分词汇翻译成中文后,意义与英文想表达的意思那就是“差之毫厘谬以千里”,造成用户理解困难,不能准确领悟原文想要表达的意思。
(2)由于ST MCU的IO复用功能很多,导致每个IO的功能定义太多,设计时花在分配外设IO以及用户IO的工作量过多;如果把每个IO的功能定义都做到原理图封装中,这样可方便原理图设计及后续复用,但是设计原理图封装的花的时间也很多。
建议:
(1)对一些比较难理解的英文词汇增加注释,即用更简单或直白的英文句子释义。
(2)建议在资料中增加MCU IO PINOUT的excel文档,这样用户可以直接导入设计软件,加速原理图封装的制作。
(三)开发工具
问题:
(1)STM32CubeMX以及STM32CubeIDE中集成的STM32CubeMX,工具的窗口菜单栏等貌似都不能自适应显示器分辨率及大小,导致窗口放大缩小很不方便;比如在对IO功能定义进行配置时,由于ST MCU的IO复用功能选项多,在弹出的选择项中可能会有很多选项,如果使用的是笔记本这种小屏幕就会导致选项显示不完全。
(2)同时,某些外设的配置参数及选项不完整,部分采用了默认配置参数,如果用户改变了配置,再下一次重新通过STM32CubeMX生成代码时,又会被覆盖。
建议:
优化STM32CubeMX的自适应屏幕大小功能,对有些配置参数选项较多的可以设置成滚动显示或下拉菜单显示。同时,也希望能持续更新并优化生态链上的开发工具:STM32CubeIDE和STM32CubeMX、TouchGFX等,方便用户统一开发工具,解决开发平台多而杂的困境。
(四)希望推出的新产品
目前ST的MCU产品线基本上覆盖了大部分应用场景,但是在MPU产品上希望ST能够继续提升MPU的处理性能。这样作为用户来讲,从低端到高端应用场景下便可以统一采用一家公司的芯片,方便用户的使用、采购及物料管理等。在工业级应用方面,目前貌似只有TI选择性大。
|