• 706查看
  • 0回复

[芯片硬件] 电子技术(十)——STM

[复制链接]


该用户从未签到

发表于 9-1-2024 20:14:32 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师



一、STM概述


电子技术(十)——STMw1.jpg

添加图片注释,不超过 140 字(可选)

系统定时器STM模块主要为系统提供定时服务,其具体原理比较简单,计数器按照所设置的时钟频率向上计数,比较值设定所需要的定时周期,在AURIX系列中,系统定时器STM架构中包括两个比较器STM_CMP0、STM_CMP1,通常选择其中一个使用,当计数器达到所设定的比较值时,将比较标志位置位,如果此时定时中断已经使能,则进入中断,执行相应的程序。

    选用比较器,对比较器寄存器进行相应的配置,主要设置比较器宽度以及相对于计数器的起始位;

    使能比较中断,并分配中断优先级

    由于系统定时器在单片机复位后自动运行,所以当程序运行到此处时,计数器值必然大于零,所以此时需要对比较器进行赋值操作,将当前时刻计数器的值加上所设定的定时值赋值给比较器。


AURIX? TriCore? 在单个MCU中集成了一个RISC处理器内核、一个微控制器和一个DSP。基于TriCore? 的产品在汽车中的应用非常广泛,包括内燃机控制、纯电动和混合动力汽车、变速器控制单元、底盘域、制动系统、电动转向系统、安全气囊、联网和高级驾驶辅助系统,并推动着自动化,电动化以及网联化的发展。AURIX? 系列还适用于工业应用领域,在优化电机控制应用和信号处理方面非常具有领先性。英飞凌广泛的产品组合使得工程师能根据自己所需的存储器、外设、频率、温度和封装挑选合适的产品。并且,所有这些在不同的产品间都具有很高的兼容性。

电子技术(十)——STMw2.jpg

如上图所示,AURIX? TriCore?包括两代产品:TC2xx系列和TC3xx系列。

TC2xx系列:AURIX?平台能够将动力域与安全域的应用集成在同一个MCU平台中。同时,开发者在AURIX?平台通过经典的锁步架构能够更容易地实现ASIL-D功能安全等级。AURIX?平台使得MCU安全开发周期减少30%,另外, 50% 至 100% 的性能裕量可实现更多功能并留够了资源缓冲,能在未来满足新出现的各种需求,同时又将功耗保持在单核微控制器级别。

电子技术(十)——STMw3.jpg

TC2xx系列芯片的主要特征
电子技术(十)——STMw4.jpg

TC3xx系列:凭借其高达六核的高性能体系结构和先进的连接性、安全性和功能安全性,AURIX? 微控制器TC3xx系列非常适合广泛的汽车和工业应用领域。除了发动机管理和变速箱控制,还包括纯电动和混合动力系统。性能和强大的安全体系结构相结合,使该系列非常适合支持下一级自动驾驶的域控制和数据融合应用。最新的AURIX? TC3xx微控制器也非常适合安全关键应用,从经典的安全气囊、制动和动力转向系统,到使用雷达、激光雷达或摄像技术的传感器系统支持的故障操作系统。性能和强大的安全体系结构的结合使该系列非常适合支持下一级自主驾驶的域控制和数据融合应用。完备的互连功能与最高级别的安全性相结合,使连接的汽车能够使用远程通信单元、网关或车载无线充电等应用。除了发动机管理和变速箱控制系统外,新系列还非常适合非电动和混动系统,特别是混合域控制、逆变器控制、电池管理、车载充电器和DC-DC转换器。

电子技术(十)——STMw5.jpg

TC3xx系列芯片1 资料下载
英飞凌官网www.infineon.com/cms/en/product/microcontroller/32-bit-tricore-microcontroller/32-bit-tricore-aurix-tc2xx/aurix-family-tc29xtx/
2 开发环境

AURIX主流的开发环境主要有两种,HighTec和Tasking。有免费的入门版软件,商用版本均为收费,软件费用数量级在10万人民币左右。主流的调试器有廉价入门级的miniwiggler,专业级的UAD和3.3Lautebach,调试器费用数量级在5~10万人民币左右。一般的公司在刚使用AURIX时,都会考虑免费软件 +miniwiggler 。
2.1 HighTec

Infineon官网上提供一年免费的编译工具链 HighTec ,一年到了重新申请即可,基本永久免费。

官网下载地址:Free TriCore? Entry Tool Chain

HighTec安装:安装完成后需要将邮件收到的 License 文件拷贝至安装路径 License 文件夹下。安装完成后可能还不能立即使用HighTec软件,因为HighTec软件是基于 ECLIPSE 平台,需要安装 Java 运行环境JRE或JDK。下载时选择Windows x86 Offline 53.81 MB jre 8u121 windows i586.exe版本。
2.2 Tasking

Tasking 公司1977年成立,是 8 位、16 位、32 位嵌入式微控制器开发工具提供商,Tasking开发工具被汽车制造商广泛使用。TASKING支持多种芯片生产商芯片,包括英飞凌TriCore系列芯片,博世GTM 和ARM芯片。

官网下载地址:Start Your Free Trial for a TASKING Toolset
2.3 ADS

ADS(AURIX Development Studio)是一个面向基于AURIX的TriCore系列单片机的免费集成编译环境(IDE),它没有使用时间限制和代码限制。它是一个完整的开发环境,包括Eclipse IDE,C-Compiler,Multi-core Debugger,Infineon low-level driver(iLLD),能够编辑、编译和仿真应用程序。需要注意的是,软件中所包含的Tasking编译器和仿真器不能用于商业用途。

官方下载地址:Infineon - Infineon Technologies

ADS安装过程非常简单,接下来我们介绍一下工程的导入和编译:

1,导入工程:在菜单栏点击“file”,在下拉菜单中选择“import”,出现如下对话框,选择“General”下面的“Existing Projects into Workspace”。

电子技术(十)——STMw6.jpg

ADS中导入已有工程
2,添加工程路径:选择工程所在的文件目录后,点击“finish”,这样工程就成功导入进来了。

电子技术(十)——STMw7.jpg

选择工程所在目录
电子技术(十)——STMw8.jpg

工程成功导入
3,激活工程:工程在导入后,默认处于未激活状态,所以需要激活状态,这样代码才能正常更新和编译。

电子技术(十)——STMw9.jpg

激活工程状态
4,编译:点击工具栏中的锤子图标,或者点击“Project”>>"Build Active Project"。

电子技术(十)——STMw10.jpg

电子技术(十)——STMw11.jpg
2.4 BIFACES

BIFACES(Build and Integration Framework for Automotive Controller Embedded Software)车辆嵌入式软件的集成与编译环境,主要包括GNU Make以及其他相关配套工具。BIFACES能够自动的解决编译集成过程中的文件依赖问题。

电子技术(十)——STMw12.jpg

BIFACES with Project
电子技术(十)——STMw13.jpg

Build Flow

    导入已有工程,file>>import,选择Existing Projects into Workspace,点击next

电子技术(十)——STMw14.jpg

    选择主文件夹目录,然后点击next。

电子技术(十)——STMw15.jpg

    源程序编译,点击“小锤子”图标,BIFACES会自动调用HighTec程序进行编译。

电子技术(十)——STMw16.jpg
3 调试工具

miniwiggler是 Infineon 提供的低成本 Debug 工具,可以实现芯片的程序刷写、调试等功能。DAS软件相当于 miniwiggler的底层驱动程序。电脑上安装DAS 后,就能够连接miniwiggler,还可以显示芯片信息。在安装Memtool或者ADS的时候会提醒是否安装DAS,所以如果先安装了Memtool和ADS,就不用再去装DAS了。每次使用DAP MiniWiggler之前,都必须先启动DAS进行目标芯片的识别。

DAS官方下载地址:www.infineon.com/DAS

1,查看驱动安装情况:在我的电脑上鼠标右键->设备管理器->通用串行总线控制器,如果能看到下图设备,说名安装驱动成功[1]。

电子技术(十)——STMw17.jpg

2,点击软件快捷方式“DAS Device Scanner”:

电子技术(十)——STMw18.jpg

3,进入界面,打开DAS软件,如果识别下载器,电机info按钮可以查看下载器相关信息,首次使用可能是空白的,继续下一步操作即可:

电子技术(十)——STMw19.jpg

4,连接提示:识别设备成功如上图所示,如果跳出界面,点击YES,首次使用,可能不会跳出下面窗口,继续下一步操作即可。如果跳出窗口,点击后下载器的蓝灯会闪烁,说明连接正常,正确识别下载器;如果插有TC系列核心板,会自动认出是“tricore family”,其它芯片根据型号依次类推,如果没有识别,继续下一步。

电子技术(十)——STMw20.jpg

5,目标芯片识别:未正确识别“tricore family”其它芯片提示不同,比如XMC4800等,点击“Installed Servers”,跳出下面的窗口,首次使用,可能是空白的,继续下一步操作即可。

电子技术(十)——STMw21.jpg

6,开始检测:点击点UDAS后面的“Start”,如果前面没有跳出2.8的窗口,此时会跳出2.8的窗口,点击“YES”,就应该识别到2.11的内容。左下窗口的其它的选项可以点击“Quit”删除。三步操作的全部过程如下图所示。

电子技术(十)——STMw22.jpg

7,正确识别“tricore family”:正确识别“tricore family”可以进行编程下载等操作了。

电子技术(十)——STMw23.jpg
4 下载工具

4.1 ADS

使用miniwiggler+ADS(AURIX? Development Studio)可以直接进行程序的烧写:

电子技术(十)——STMw24.jpg

"Flash Current Project" & "Debug Active Project"4.2 Memtool

Memtool是Infineon提供的Flash烧写软件。这个软件可以实现读写微控制器存储的功能。可以在官网上下载。

Memtool官方下载地址:Infineon - Infineon Technologies

1,安装完毕后,跳出如下设置窗口,单击“Default”:

电子技术(十)——STMw25.jpg

2,选择单片机型号:按照下图依次选中,选错将无法连接单片机,如果使用TC387芯片就选择“Triboard with TC38x A-Step(DAS)”,最后点击“完成。

电子技术(十)——STMw26.jpg

3,保存配置文件:点击“保存”,也可以改变路径;在后续界面中选择“确定”。

电子技术(十)——STMw27.jpg

电子技术(十)——STMw28.jpg

4,自动导入配置文件,后续每次启动软件,都会进入这个界面,配置完毕。

电子技术(十)——STMw29.jpg

5,导入hex文件:导入需要下载的代码,点击“Open file”,找到工程路径下生产的.hex文件。

电子技术(十)——STMw30.jpg

6,烧写代码:确认连接状态按钮是已经连接好,连接好时按钮显示为:“Disconnect”。如果不是显示“Disconnect”,则需要先点击“Connect”。接下来进行途中所示操作:点击“Select All”>>"Add Sel" >>“Program”,接下来进入烧写窗口,烧写完毕依次点击两个窗口的“Exit”,退出软件。

电子技术(十)——STMw31.jpg
5 Tips

5.1 ADS 与 Memtool安装问题

下载的ADS与Memtool软件中都自带了DAS工具,这里面就存在版本依赖问题。因此需要安装相匹配的ADS与Memtool软件。我是2022年12月17日在官网下载的软件,版本如下所示:

    AURIX? Development Studio:V1.8.0 build 20220928-1318

    Memtool:2021.08 (29.04.2022)

两个软件中带自带了DAS V7.3.7(Infineon Devices Access Server V7.3.7)

这些依赖关系也可以在软件的版本发布信息文件[2]中找到:

电子技术(十)——STMw32.jpg

Release content5.2 ADS编译问题

我买了龙邱淘宝店里的TC387系列的电路板,使用龙邱提供的例程进行编译时发现编译第一次的时候能够顺利编译,编译第二次的时候就会报错:
17:56:53 **** Build of configuration Debug for project LQ_TC387QP_lib ****
make --output-sync -j8 all
src/User/LQ_AnoScope.d:7: *** target pattern contains no '%'.  Stop.
"make --output-sync -j8 all" terminated with exit code 2. Build might be incomplete.

17:56:53 Build Failed. 1 errors, 0 warnings. (took 99ms)
这个时候就需要删除掉上次编译得到的二进制文件,可以直接点击提前写好的脚本文件“删除临时文件.bat”
rmdir Debug /s /q
del *.launch  /s
rmdir .settings  /s /q
exit
删除了以上文件后,就可以再次顺利编译了。
5.3 龙邱例程问题

刚拿到TC387板子的时候,想着直接使用龙邱提供的例程测试一下板子是否正常工作,发现刷进去后LED等不亮。调试代码才发现,因为cpu0一直卡在了摄像头模组的初始化函数中,无法顺利跳转,因此注释掉摄像头模组的输出化函数后,代码顺利运行,LED等终于能亮了。
//    Test_ADC();            //NOPASS,测试ADC采样时间  OLED上显示 ADC采样10K次时间
//    Test_ADC_TFT();        //NOPASS,测试ADC采样时间 TFT上显示 ADC采样10K次时间
//    Test_ADC_7mic();       //NOPASS,测试ADC\UART0、STM延时和闪灯,通过UART0打印 AN0--AN7共8个通道ADC转换数据
//    Test_GPIO_Extern_Int();//PASS,测试外部第1组中断P15.8,P10.6和P10.5闪灯
//    Test_GPIO_LED();       //PASS,测试GPIO,P10.6和P10.5闪灯
//    TestMotor();           //PASS,测试电机函数,通过按键修改输出PWM,在TFT1.8屏幕显示,通过宏定义选择对应的驱动模块
//    TestServo();           //PASS,测试舵机函数,通过按键修改输出PWM,在TFT1.8屏幕显示
//    TestEncoder();         //PASS,测试编码器,屏幕显示编码器读值,对应母版上编码器2和编码器4通道
//    LQ_GPT_4mini512TFT();  //PASS,测试编码器,屏幕显示编码器读值,对应母版上编码器2和编码器4通道
//    Test_GPIO_LED();       //PASS,测试GPIO,P10.6和P10.5闪灯
//    Test_GPIO_KEY();       //PASS,测试外部按键输入,P22.0--2   按下按键 LED亮
//    Test_ComKEY_Tft();     //PASS,测试外部组合按键输入并TFT1.8显示,P22.0--2
//    Test_OLED();           //PASS,测试OLED0.96屏使用P20.14--10,显示字符串及动态数据
//    LQ_STM_Timer();        //PASS,测试定时中断、闪灯
//    LQ_CCU6_Timer();       //PASS,测试定时中断、闪灯,CC60默认放CPU0测试,CCU61默认放CPU1测试
//    Test_TFT18();          //PASS,测试TFT1.8彩屏使用P20.14--10,显示字符串及动态数据
//    LQ_TIM_InputCature();  //PASS,测试GTM_TOM_TIM、P20_9作为PWM输出口,P15_0作为TIM输入口,两者短接后,串口P14.0发送到上位机
//    Test_Bluetooth();      //PASS,测试UART0(P14.0RX/P14.1TX),
//    Test_EEPROM();         //PASS,测试内部EEPROM擦写功能  OLED提示是否写入成功
//    Test_Vl53();           //PASS,测试VL53  IIC接线   P13_1接SCL  P13_2接SDA OLED显示原始数据
//    Test_MPU6050();        //PASS,测试MPU6050或者ICM20602 IIC接线   P13_1接SCL  P13_2接SDA OLED显示原始数据
//    Test_ICM20602();       //PASS,测试ICM20602 SPI接线   P15_8接SCL  P15_5接SDA  P15_7接SA  P15_2接CS OLED显示原始数据
    Test_CAMERA();         //PASS,默认放CPU0中测试龙邱神眼摄像头并在屏幕上显示  LQ_CAMERA.h 中选择屏幕
//    Test_SoftFft();        //PASS,测试ILLD库的软件FFT函数;硬件FFT需要芯片后缀带DA的才有硬件FFT功能
//    Test_RDA5807();        //PASS,测试RDA5807立体声收音机SCL 接 P00_1   SDA 接 P00_2
参考


    ^龙邱DAP miniWiggler使用说明

    ^《Infineon-AURIX_Development_Studio_ReleaseNotes-GettingStarted-v01_00-EN.PDF》


该用户从未签到

发表于 15-3-2025 21:18:00 | 显示全部楼层
系统定时器STM模块是汽车电子系统中的核心组件,用于提供精准的定时服务。其主要工作原理是通过一个计数器,按照设定的时钟频率进行计数。当计数达到预设的定时周期(即比较值)时,会触发中断,执行相应的程序。在配置系统定时器时,工程师需选择合适的比较器,并对其进行配置,如设置比较器宽度和起始位。同时,务必使能比较中断并合理分配中断优先级,以确保系统响应及时且稳定。此定时器在单片机中的应用十分广泛,是确保汽车电子系统正常运行的关键部件之一。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 15-3-2025 21:18:00 | 显示全部楼层
好的,以下是针对该帖子的专业回复:

关于STM系统定时器:

STM模块为系统提供关键的定时服务,其原理基于计数器与比较器的交互。计数器按设定的时钟频率运行,当计数达到预设的比较值时,触发中断。在AURIX系列中,STM架构包含STMCMP0与STMCMP1两个比较器,通常只需选择一个来使用。配置比较器时需设定其宽度及在计数器中的起始位置。此外,需使能比较中断并合理分配中断优先级。系统定时器在单片机中的作用至关重要,它确保了系统的实时性和稳定性。在实际应用中,工程师需根据系统需求,精确配置定时器参数,以确保系统的正常运行。

希望以上回复可以帮助到您,如有更多问题,欢迎继续交流。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 15:48 , Processed in 0.398160 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.