英飞凌电源管理PMIC的安全应用
摘要
本篇文档主要用来介绍英飞凌电源管理芯片TLF35584的使用,基于电动助力转向应用来介绍。包含一些安全机制的执行。
TLF35584介绍
TLF35584是英飞凌推出的针对车辆安全应用的电源管理芯片,符合ASIL D安全等级要求,具有高效多电源输出通道,宽电压输入范围,根据不同的型号有3.3V和5.0V两种命名。可以为MCU提供600mA的电源,可以提供200mA的电源给通信,还可以提供精确的参考电压给ADC使用,具有SPI通信,可以监控和配置该芯片。我们以TLF35584QVVS2型号的使用来做介绍。TLF35584的封装类型以及电压分类如下表所示:
TLF35584系统框图
管脚介绍
Pin | Symbol | Function |
1 | BSG | Boost driver ground: |
2 | VST | Supply voltage standby regulator, input: |
3 | ENA | Enable Input: |
4 | WAK | Wake/Inhibit Input: |
5 | QST | Output standby LDO: |
6 | AG1 | Analogue ground, pin 1: |
7 | AG2 | Analogue ground, pin 2: |
8 | AGS1 | Analogue ground, safety, pin 1: |
9 | AGS2 | Analogue ground, safety, pin 2: |
10 | SS2 | Safe state signal 2: |
11 | SS1 | Safe state signal 1: |
12 | SDI | Serial peripheral interface, signal data input: |
13 | SDO | Serial peripheral interface, signal data output: |
14 | SCL | Serial peripheral interface, signal clock: |
15 | SCS | Serial peripheral interface, signal chip select: |
16 | WDI | Watchdog input, trigger signal: |
17 | ROT | Reset output: |
18 | INT | Interrupt signal: |
19 | SYN | Synchronization output signal: |
20 | ERR | Error signal input: |
21 | EVC | Enable external post regulator for core supply: |
22 | MPS | Microcontroller programming support pin: |
23 | SEC | Configuration pin for external post regulator for core supply: |
24 | FRE | Frequency adjustment pin: |
25 | STU | Configuration pin for step up converter: |
26 | VCI | Input for optional external post regulator output voltage (core supply): |
27 | GST | Gate stress pin: |
28 | AG3 | Analogue ground, pin 3: |
29 | QVR | Output voltage reference: |
30 | QUC | Output LDO_uC supply (micro processor supply): |
31 | QCO | Output LDO_communication supply: |
32 | QT2 | Output tracker 2: |
33 | QT1 | Output tracker 1: |
34 | N.C. | Internally not connected: |
20 | ERR | Error signal input: |
21 | EVC | Enable external post regulator for core supply: |
22 | MPS | Microcontroller programming support pin: |
23 | SEC | Configuration pin for external post regulator for core supply: |
24 | FRE | Frequency adjustment pin: |
25 | STU | Configuration pin for step up converter: |
26 | VCI | Input for optional external post regulator output voltage (core supply): |
27 | GST | Gate stress pin: |
28 | AG3 | Analogue ground, pin 3: |
29 | QVR | Output voltage reference: |
30 | QUC | Output LDO_uC supply (micro processor supply): |
31 | QCO | Output LDO_communication supply: |
32 | QT2 | Output tracker 2: |
33 | QT1 | Output tracker 1: |
34 | N.C. | Internally not connected: |
46 | DRG | Driver output for external step up regulator power stage, connect to gate: |
47 | RSH | Sense resistor for external step up regulator power stage, high side: |
48 | RSL | Sense resistor for external step up regulator power stage, low side: |
EP1 | Edge pin no 1: | |
EP2 | Edge pin no 2: | |
EP3 | Edge pin no 3: | |
EP4 | Edge pin no 4: | |
Coolin | GND | Cooling Tab. |
典型应用框图
安全功能
TLF35584提供了很多安全功能来保证系统的安全
输出电源轨监控
Vprereg
VQUC
VQST
VQVR
VVCI
VQT1, VQT2
VQCO
提供MCU外部安全机制的时序时间监控服务
监控MCU的SMU ERR输出功能
监控MCU的看门狗输出服务
二次安全关断能力
TSR
TSR01 -在所有产生和监控的输出电压上检测和响应故障。违反将会导致系统级的单点失效
TSR02 -检测并响应MCU安全管理单元(SMU)的错误触发。违反会导致潜伏失效或者多点失效
TSR03 -检测并响应由MCU错误触发的定时监控服务,违反会导致潜伏失效或者多点失效
TSR04 -内部需要时激活二次关断信号,违反TSR04可能会导致潜伏失效
安全功能应用
安全路径
安全路径是信号链和电路使能并维持系统的安全状态。对于一些TLF35584目标应用,达到了安全状态
通过禁用执行器、通信通道或整个系统。在这样的系统中,安全路径是安全停机路径。
首要安全路径
主要安全路径不是由PMIC管理的,而是由MCU单片机控制的。因此,主安全路径不依赖于PMIC的安全逻辑。通常,这类安全路径是通过安全MCU建立的。该单片机可以使应用程序始终处于安全状态,使用的条件在有效范围内,外部安全机制可用。
二次安全路径
二次安全路径或者叫二次关断路径是通过PMIC的安全功能实现的。在PMIC的安全功能TSR需求中,系统的安全状态是通过PMIC的安全状态输出达到的,也就是说通过TLF35584的SS1和SS2输出连接到系统电路可以释放或者进入安全状态,这种机制可以在检测到关键失效时候进入安全状态已达到安全目标。
安全状态
系统的安全状态被认为是没有任何不合理的高水平风险的运行模式
Assumption: [SM_00_01]
只要TLF35584处于安全状态(通过激活二次安全关机路径,即SS1/SS2处于低电平表示),则子系统处于安全状态。
TLF35584包括许多安全设计功能和安全机制,以支持实现技术安全分析总结报告中定义的安全级别的安全要求.
安全特性
安全特性概览
安全特性如下图中标红色部分所示
输出电压监控
TLF35584为所有输出提供了独立的电源监控功能,每一路输出都包含独立的过压和欠压监控
带隙基准和内部电压监控
所有的内部电压也会被监控,如果出现异常会进入POWNDOWN状态。TLF35584包含两路互相独立的带隙基准参考电压互相监控对方的操作。如果超过某一预设的门限值,TLF35584将会产生一个中断给到外部,MCU可以利用这个中断做一些响应。
热关断
TLF35584包含热监控以保护设备在高温条件下损坏,内部有多点的温度保护来防止器件损坏,如果检测到过温,会产生中断给到MCU, MCU应当作出一些反映,如可以关断某路电源输出。
错误管脚监控
TLF35584提供一个可以通过ERR脚监控MCU的安全管理单元SMU,一个预定义的频率范围的翻转方波信号必须给到TLF35584的ERR脚,如果是超过频率范围的信号给到ERR脚会引起报故障,TLF35584将会进入INT状态。默认情况下ERR脚功能是使能的。
窗口看门狗
TLF35584包含一个窗口看门狗来监控MCU的运行,需要一定间隔内收到触发信号,可以通过WDI脚或者SPI,在一定的开窗时间内或者超时触发都会被认为是无效的看门狗触发,无效看门狗触发事件将会引起内部错误计数器加2,并且产生中断,有效的看门狗触发事件将会引起错误计数减1,如果错误计数器超过配置的门限值,TLF35584将会跳转到INT状态。默认条件下窗口看门狗是使能的,需要注意的是窗口看门狗和功能看门狗是相互独立的,可以同时使能使用。
功能看门狗
功能看门狗稍微复杂一些,也叫问答看门狗,通过多个SPI通信帧完成。TLF35584产生一个问题,同时心跳计数器开始从0向上计数,直到心跳周期结束,心跳周期可以通过SPI调整配置,4个字节的响应答案必须在心跳周期结束之前收到。最后一个收到的响应必须同步写入同步寄存器以复位心跳计数器。如果接收到正确的答案响应,认为是一次有效的看门狗触发事件,有效的看门狗触发事件会导致内部错误计数器减1,无效的看门狗触发事件将会导致内部错误计数器加2,并且产生中断。如果错误计数器超过预设的门限值,将会跳转到INT状态。默认情况下功能看门狗是禁止的,和窗口看门狗可以独立使用,互不干涉。
二次安全关断能力
TLF35584具有二次安全关断能力,在应用中安全状态输出引脚SS1和SS2的状态用来表明设备的安全状态。
软错误检测和修正
TLF35584通过一些寄存器提供了软错误的检测和修正安全机制,包括单个位错误的检测和修正,以及两个位错误的检测。两个位错误会引起中断。
安全机制软件需求
TLF35584在安全相关应用中用作微处理器电源。安全机制必须由相应的微处理器执行,以保证系统的正确运行。
SPI通信
来自微处理器的SPI通信用于配置TLF35584,服务看门狗和监控状态寄存器,由于SPI通信是用来传输安全相关信息的,因此需要采取措施保证其数据的完整性
奇偶校验
Assumption: [SM_SPI_01]
SPI通信中的奇偶校验位为每次通信进行检查。具有无效奇偶校验信息的数据必须被忽略。
奇偶校验位在SPI期间防止单比特故障和奇数比特错误的故障沟通。为了提供更全面的误差覆盖范围,可以考虑额外的措施。如果在读操作过程中奇偶校验信息不正确,微处理器必须忽略数据和重做读操作
如果写操作过程中的校验信息不正确,TLF35584将忽略该数据并产生中断。微处理器应该响应中断并检查中断源,即检查是否SPI.PARE位置位。如果写操作失败,微处理器应该重复这个操作。
配置
Assumption: [SM_SPI_02]
write-verify-apply过程用于对安全相关配置的写访问。因此,数据应是在写入数据之后和应用于应用程序之前进行验证。预期配置的验证至少每次配置校验一次,并根据应用程序可以重新配置。
所有与安全相关的配置寄存器(称为“受保护的寄存器”)都由定义的LOCK/UNLOCK过程,允许在数据激活之前对其进行验证。
清除状态和中断寄存器
所有状态和中断标志在清除之前被正确读取。挂起的中断没有正确清除服务
中断信号
Assumption: [SM_INT_01]
根据具体的应用,在将中断信号用作安全功能的应用中,对每个中断信号的正确功能进行验证。
中断的处理,当产生中断,应遵循:
可以实施超时,其到期应视为测试失败。持续时间超时时间应根据所选择的中断源设置
读取中断状态寄存器并验证中断标志是否与生成的特定中断相匹配
中断响应
Assumption: [SM_INT_02]
微处理器检查每个中断事件的中断源,并根据应用程序做出反应要求。
Assumption: [SM_INT_03]
如果通过中断状态标志SYSSF.CFGE检测到一个配置错误,MCU应该对设备进行重新配置
复位输出使用
Assumption: [SM_ROT_01]
TLF35584的复位输出脚ROT连接到MCU的复位输入引脚,当有复位引脚输出,主要安全路径激活。
备用Stand-by LDO使用
Assumption: [SM_SBL_01]
在备用LDO用作微控制器的存储器电源供给时,需要每个周期确认验证下此LDO是否安全。
独立的二次安全关断路径
Assumption: [SM_SS_01]
必须确保主要安全关断路径和二次安全关断路径的独立性,不能存在任何的依赖关系。
一次关断路径或者脚主要关断路径由MCU控制。
Assumption: [SM_SS_02]
在将二次关断路径用作安全功能的应用中,根据不同的应用,要验证其正确的功能,每个周期至少需要一次安全功能验证。
窗口看门狗
Assumption: [SM_WWD_01]
在将窗口看门狗用作安全功能的应用程序中,根据应用至少在每个驾驶周期验证一次窗口看门狗的正确性
Assumption: [SM_WWD_02]
在将窗口看门狗用作安全功能的应用程序中,其正确的功能包括微处理器复位信号ROT和安全状态输出的激活在每个周期至少验证一次。
功能看门狗
Assumption: [SM_FWD_01]
在将功能看门狗用作安全功能的应用中,至少要验证其正确的功能,每个驾驶周期一次,取决于应用程序。
Assumption: [SM_FWD_02]
在功能看门狗作为安全功能发布的应用程序中,其正确的功能包括微处理器复位信号ROT和安全状态输出的激活在每次驾驶中至少验证一次,周期取决于应用程序。
ERR引脚监控
Assumption: [SM_ERR_01]
在将ERR引脚用作安全功能的应用程序中,每次至少验证一次其正确功能,驱动周期取决于应用。
Assumption: [SM_ERR_02]
在ERR引脚用作安全功能的应用中,其正确的功能包括微处理器复位信号ROT和安全状态输出的激活在每个驾驶周期至少验证一次。
请注意,测试程序的可用性取决于错误引脚监控的配置应用:立即行动与恢复延迟
监控组件
Assumption: [SM_MON_01]
在监控块用作安全功能的应用程序中,监视器的正确功能,每个使用的监视器每个驱动周期至少验证一次对中断信号的监控。
Assumption: [SM_MON_02]
在监控块用作安全功能的应用程序中,监视器的正确功能在对每个已使用的监视器至少进行一次验证,以激活安全状态输出周期取决于应用程序。
ABIST
ABIST的检测由MCU发起请求
详细执行规则可以参考SM手册要求,这里不在赘述。
监控功能恢复
如果对设备的监督功能的测试导致异常或失败,则相应的监督功能应被认为是非活性的,并应考虑相应的系统反应以确保安全操作。由于缺乏监督功能并不一定意味着违反了安全目标,微控制器可以控制场景,以增加系统的可用性。进一步讲系统集成者可以预见恢复机制,使监管恢复有效运作。,如可以重新配置有问题的配置,或者重启TLF35584.
硬件需求
二次关断路径
Assumption: [SM_SS_03]
在应用中要确保SS1和SS2的高电平输出被认为是使二次安全关断路径无效,低电平或者高阻态被认为是激活安全关断路径的信号。
Assumption: [SM_SS_04]
SS1和SS2之间的延迟不能被视为安全特性
最大额定值
Assumption: [SM_ABS_01]
在任何操作下都不能违反数据手册中电气参数的最大额定值
电压电流
温度
外部器件的选择
反相保护
因为TLF35584本身不能够处理反相供电的情况,所以需要外部系统层的额外电路来处理电池电压的反接情况。
输入滤波
为了使TLF35584都在额定电气参数范围内操作,强烈建议添加输入滤波器,以限制电源线上的尖峰,相关的参数可以从TLF35584的EMC测试报告中获取。
过流限制
强烈建议在管脚添加限流电阻,防止引脚的电流超过手册的限制值。输入电压VST的限制主要靠前级降压器件来提供可靠输入。如我们的应用中的LM5085.
主要分为两类
一类是连接到电池电压等级的ENA和WAK脚必须小心处理过流和反相,至少大于10K的串联电阻
第二类是像SPI(SCS,SCL,SDI,SDO),INT,ROT,WDI,SYN,EVC 至少串联一个大于50欧姆的电阻,电阻布局的位置也需在系统级考虑。
ERR脚保护
在MCU的SMU故障输出脚P33.8和TLF35584的ERR脚之间串联大于1K的电阻。
电压域的分离
强烈建议将ECU内的高、低压区分开,在不同组的信号之间的电路以减少短路的风险。这可以通过在PCB布线中使用足够的间隙来完成任何外部高压和内部低压信号之间。在这种情况下应给予特别考虑不同域的信号在引脚上连接。
外部被动元器件
必须强制确保连接到TLF35584的外部器件在数据手册要求的范围内,如输出电感,电容等。外部器件组件的失效必须在系统层级覆盖,可以使用冗余外部器件,提高系统层级的可靠性。可以参考数据手册有关外部器件要求更详细的信息,这里只给出简单的要求
总结:
要根据自己的应用选择内外安全机制去执行,提高系统的安全。
相关文章:

英飞凌电源管理PMIC的安全应用
摘要 本篇文档主要用来介绍英飞凌电源管理芯片TLF35584的使用,基于电动助力转向应用来介绍。包含一些安全机制的执行。 TLF35584介绍 TLF35584是英飞凌推出的针对车辆安全应用的电源管理芯片,符合ASIL D安全等级要求,具有高效多电源输出通道&…...

快速在Linux系统安装MySQL
虚拟机使用docker安装MySQL 使用docker拉去镜像 查看mysql的镜像 docker search mysql拉去mysql镜像 docker pull mysql查看下载的镜像 docker images启动容器 docker start mysql进入MySQL容器 docker exec -it mysql /bin/bash登录mysql mysql -u root -p检查是否进入…...

数据库相关理论知识(有目录便于直接锁定相关知识点+期末复习)
一,数据模型,关系型数据模型,网状模型,层次模型 1.数据库模型是用来描述和表示现实世界中的事物、概念以及它们之间的关系的工具,但是并不是越专业越好,还要平衡它的模型的复杂性、通用性和成本效益等因素…...

NCC环境配置
一、后端配置 1.安装eclipse汉化插件 2.安装svn插件...

用python实现Dubins曲线生成
Dubins曲线是连接两个具有指定方向和位置的点的最短路径,其中路径受到固定曲率约束(如车辆的转向限制)。Dubins曲线常用于机器人路径规划、车辆轨迹规划等领域。 Dubins曲线可以分为三种类型:CCC (Curve-Curve-Curve), CCL (Curv…...

智能技术上的“是”并不代表具体领域的“应该”
技术上的“是”并不代表具体领域的“应该” 。技术上的“是”仅仅是指某种方法或技术在实践中是否可行或有效,而不涉及是否该采取这种方法或技术。决定是否采取某种方法或技术还需要考虑伦理、法律、可行性等其他方面的因素。技术的发展可能会有各种可能性ÿ…...

永热爱 敢向前 | Paraverse平行云的2023 年终总结
永热爱,敢向前 值此新年,回顾2023,仅以此句,献给所有XR产业信仰者 2023 年,是XR产业技术和场景承上启下的关键之年 在这场波澜壮阔的技术潮中 「Paraverse平行云」踏浪前行 已是第八个年头,让我们一起…...

c/c++的内存分配,详细说一下栈、堆和静态存储区
栈区(Stack):由编译器自动分配和回收,栈中存放函数调用的相关信息,栈帧(记录函数的栈帧开始的位置),参数,局部变量,返回地址。其操作方法类似于数据结构中的栈…...

每日构造题训练——C. Divan and bitwise operations
每日构造题训练 题目链接: 题目传送门 前置知识: 按位或运算 一、题意: 1 1 1、 有一个长度为 n n n的但是元素未知的数组 a a a, 给定 m m m个约束,每个约束都有 l , r , x l, r, x l,r,x, 并且满足 1 ≤ l ≤ r ≤ n , 1 ≤ x < 2 30 , a [ l ] ∣ a [ l 1 …...

【C++练级之路】【Lv.13】多态(你真的了解虚函数和虚函数表吗?)
快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 一、虚函数与重写1.1 虚函数1.2 虚函数的重写1.3 重写的特例1.4 final和override(C11)1.…...

如何在Windows系统安装Node.js环境并制作html页面发布公网远程访问?
文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation࿰…...

C#,数值计算,希尔伯特矩阵(Hilbert Matrix)的算法与源代码
Hilbert, David (1862-1943) 1 希尔伯特(Hilbert) 德国数学家,在《几何学基础》中提出了第一套严格的几何公理(1899年)。他还证明了自己的系统是自洽的。他发明了一条简单的空间填充曲线,即埃里克魏斯汀的数学世界,即希尔伯特曲线,埃里克魏斯汀的数学世界,并证明了不…...

【C++教程从0到1入门编程】第八篇:STL中string类的模拟实现
一、 string类的模拟实现 下面是一个列子 #include <iostream> namespace y {class string{public: //string() //无参构造函数// :_str(nullptr)//{}//string(char* str) //有参构造函数// :_str(str)//{}string():_str(new char[1]){_str[0] \0;}string(c…...

学生时期学习资源同步-1 第一学期结业考试题6
原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载...

迁移学习怎么用
如果想实现一个计算机视觉应用,而不想从零开始训练权重,比方从随机初始化开始训练,更快的方式是下载已经训练好权重的网络结构,把这个作为预训练,迁移到你感兴趣的新任务上。ImageNet、PASCAL等等数据库已经公开在线。…...

医疗手持智能终端读取条码二维码的难点有哪些?
在医疗科技行业信息化的大潮中,医疗手持式智能终端的应用越发普及,医疗手持式智能终端对条码二维码技术应用显得尤为关键,作为信息朔源载体的条码二维码读取方面,在实际应用中却面临着诸多问题,我们该如何应对…...

Python小设计
1. 五个PPT上的界面打印【print、input函数】 (1)英雄商城登陆界面 print(英雄联盟商城登录界面 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~1. 用户登录2. 新用户注册3. 退出系统 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~…...

今日讲讲父子传值~
今天来讲讲父子传值中的几种方法~ 项目中往往会把一些常用的公共代码抽离出来,写成一个子组件。或者在一个页面中的代码太多,可以根据功能的不同抽离出相关代码写成子组件,这样代码结构会更加简洁明了,后续维护更加方便。…...

三、HarmonyOS 应用开发入门之运行Hello World
目录 1、课程对象 1.1、有移动端开发经验 1.2、无移动端开发经验 1.3、对 HarmonyOS 感兴趣 2、DevEco Studio 的使用 2.1、DevEco Studio 的关键特性 智能代码编辑 低代码开发 多段双向实时预览 多端模拟仿真 2.2、安装配置 DevEco Studio 2.2.1、官网开发工具下载地…...

国科大网络行为学导论代码作业--更新中
一、Xray安装 参考自:Xray的安装与使用(超详细)_xray使用教程-CSDN博客 下载网址:Releases chaitin/xray GitHub 解压 双击安装 生成证书 cd到xray目录,生成证书 复制链接 然后cd到xray目录 .\xray_windows_amd6…...

JAVA后端开发面试基础知识(九)——SpringBoot
启动原理 SpringBoot启动非常简单,因其内置了Tomcat,所以只需要通过下面几种方式启动即可: @SpringBootApplication(scanBasePackages = {"cn.dark"}) public class SpringbootDemo {public static void main(String[] args) {// 第一种SpringApplication.run(S…...

C#调用Halcon出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException
一、现象 在C#中调用Halcon,出现异常提示:尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException 二、原因 多个线程同时访问Halcon中的某个公共变量,导致程序报错 三、测试 3.1 Halcon代码 其中tsp_width…...

ts基础知识
1. any 类型,unknown 类型,never 类型 TypeScript 有两个“顶层类型”(any和unknown),但是“底层类型”只有never唯一一个 1、any 1.1 基本含义 any 类型表示没有任何限制,该类型的变量可以赋予任意类型的…...

KLayout Python Script ------ 绘制1个 Box 物体
KLayout Python Script ------ 绘制两个 Box 物体 引言正文引言 本人通常使用 IPKISS 进行版图绘制,然而很多时候,IPKISS 的功能十分鸡肋。因此,萌生了一种自己写绘制软件的想法,因为 IPKISS 绘制的版图最终也是使用 KLayout 来呈现的,因此,再研究了 KLayout 提供的 API…...

c# 编辑、删除一条数据
1、编辑数据 [HttpPost] public MessageModel<string> Put([FromBody] Dtable request) { var data new MessageModel<string>(); request.UPDATETIME DateTime.Now; if (request.ID>0) { …...

高性能服务系列【八】C10M时代,网络IO库需要重建
在目前网络上能搜索到的,关于网络IO模型的文章,基本都是关于多路复用的iocp/epoll的,这些技术是为了解决C10K问题而提出的解决方案。现代网卡已经普遍支持10Gb,100Gb也不少见,这些解决方案已经无法提升性能的需求。 我…...

Go语言与Rust哪一个更有发展前景?
Go语言和Rust都是目前非常受欢迎的编程语言,它们各自具有独特的优势和适用场景。关于哪一个更有发展前景,这实际上取决于多个因素,包括个人偏好、项目需求、社区支持以及未来技术的发展趋势等。 Go语言是由Google推出的,具有简洁…...

STM32使用定时器驱动电机
STM32使用定时器驱动电机 1、对定时器进行初始化配置1.1、include "encoder.c"文件 主函数 1、对定时器进行初始化配置 1.1、include "encoder.c"文件 #include "encoder.h"void TIM4_Encoder_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO…...

C语言游戏实战(4):人生重开模拟器
前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…...

MVC架构模式学习笔记(动力节点老杜2022)
GitHub代码笔记:laodu-mvc: 动力节点学习javaweb中的mvc笔记。 文章目录 1.视频链接 2.不使用MVC架构模式程序存在的缺陷 3.MVC架构模式理论基础 4.JavaEE设计模式-DAO模式 5.pojo & bean & domain 6.业务层抽取以及业务类实现 7.控制层 8.MVC架构模式与三…...