news 2026/9/13 9:59:50

单片机裸机复习2/3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单片机裸机复习2/3

接上次有介绍过频率低的好处

1.电机起步用低频,因为低频时感抗小(XL=2πfL),电流容易通过,驱动能力强;而高频时,感抗太大,电流不易通过,启动扭矩不足。

名词:V/f 控制(恒压频比控制):

  • 频率从低开始:利用低频时感抗小、电流容易建立的特点,为产生足够启动扭矩打下基础。

  • 电压也按比例从低开始:根据U/f ≈ 常数的原则,频率低,电压也同步降低。这样就强行把启动电流限制在了安全范围内。

FOC(也叫矢量控制):

FOC矢量控制,核心就是解决交流电机的“老大难”问题:电流既负责产生磁场,又负责产生扭矩,两者“纠缠”在一起,互相干扰,很难精确控制。

FOC的妙招是用数学方法,把缠在一起的电流“解耦”成两个独立变量:

  • Id(励磁电流):专职管磁场,好比控制马匹的“步伐”;

  • Iq(转矩电流):专职管扭矩,好比控制马匹的“力度”。

这样一来,交流电机就变得像直流电机一样好驾驭,可以独立调节“力度”而不影响“步伐”,最终实现平稳、高效、低噪音、响应快的运转。

一些伺服电机,FOC在驱动器内部做好了。比如获取Q轴电流信息:扭矩电流(D轴电流(Id)=励磁电流)本质上是向驱动器索取它内部经过FOC算法计算后的结果。整个复杂的FOC计算过程(如Clarke/Park变换、PID调节、SVPWM生成等),是由驱动器内部的MCU或DSP(数字信号处理器)完成的,你的主控芯片只负责发送“目标位置/速度”和接收“当前状态”这类高层指令

FOC算法流程:①电流采样-三相电;

②Clarke-三个关联变量降维为两个独立的正交变量;

③Park-把两个正弦量,变成两个恒定的直流量(静态坐标系->随转子旋转的旋转坐标系);

④PID调节-根据目标值与实际值的偏差,计算出需要输出的控制量;

⑤逆Park变换-PID调节后得到的目标电压VdVq,需要重新变回两相静止坐标系的电压Vβ;;

SVPWM(空间矢量脉宽调制)-将转换为能直接控制逆变器(三相全桥)MOSFET/IGBT开关的PWM占空比信号,从而产生驱动电机的三相正弦波电压。

2.PWM配置关键点

①模式选择OCMode:模式1-cnt<CCR,输出有效电平;模式2-cnt>CCR,输出有效电平;

②有效电平极性选择OCPolarity:TIM_OCPolarity_Low 低电平;TIM_OCPolarity_High 高电平。

3.电机常见类型:直流电机、交流电机、有刷电机、无刷电机、伺服电机。

对比维度直流电机交流电机
输入电源直流电(如电池、整流后的直流)交流电(如市电220V/50Hz)
工作原理依靠换向器电子换向,使转子在固定磁场中持续旋转。利用旋转磁场(由交流电相位变化产生)带动转子转动。
调速方式调节电压(有刷)或PWM占空比(无刷)调节频率(变频调速)或电压
启动特性启动扭矩大,响应快启动扭矩相对较小,需要辅助启动(如电容启动)
典型应用电动车、无人机、机器人、电动工具工业风机、压缩机、电梯、空调压缩机

伺服电机=电机本体+编码器+智能驱动器

有刷电机:线圈绕组为转子,永磁铁为定子,有换向器和AB电刷。电刷是易损耗品,需要定期更换,寿命1-5年,一般用于低端产品。

无刷电机:线圈绕组为定子,永磁铁为转子。寿命高10-15年(受限于轴承),控制和结构更复杂且几乎免维护,所以价格更贵,但低噪且控制精准。交流伺服电机一般用无刷电机。直流伺服都有可能。

关键点:①直流电机电流方向切换产生连续旋转(有刷靠机械换向,无刷靠电子换向);交流电机交流电本身的正弦变化在定子中产生旋转磁场,带动转子。②直流电机与交流电机的应用场景也不绝对,电池供电的机器人也可以使用交流电机,一般伺服交流电机(无刷),电池输出直流电 → 驱动器(逆变)→ 三相交流电 → 伺服电机(旋转)→ 减速机 → 机器人行走。

4.IIC:通过SCL与SDA的组合->起始条件、停止条件、应答位等协议标志->同步串行数据通信。

①SCL高电平,SDA下降沿:起始条件;②SCL高电平,SDA上升沿:停止条件;③SCL低电平,SDA变化为传输数据,但SCL高电平时,SDA需要稳定在当前自身电平。

注:STM32也要使用软件模拟IIC,①STM32虽然有硬件IIC功能,但是使用起来也是有些鸡肋。原因是飞利浦有IIC设计的专利,因此STM只能将IIC的电路设计的很复杂,其硬件IIC的稳定性也不太好。②软件模拟IIC更容易移植,省的不同类型的单片机单独配置。

5.SPI:①CS片选,低电平有效,且同一时刻只能一个CS为低电平(CS任意GPIO指定,需要多少配置多少个)。②CS模式选择:硬件模式与软件模式(SPI_NSS_SOFT):1对1时,CS的控制方式可选硬件控制(自动);多个从设备选择软件控制(手动)。③CPOL、CPHA:CLK的极性与相位,决定SCK空闲时高/低电平,数据采样是下降/上升沿采样。需要与从机匹配,一般模式0:均为0,低电平上升沿采样。

6.CAN:差分信号、位仲裁(同时发送时,自动ID仲裁,优先级高先发,低的退出)、多主架构、短帧结构、CRC+硬件错误管理、波特率可调(波特率=CAN_CLK/[(BS1+BS2+1)*PSC])、双线制。①模式选择:正常模式(正常通信)、回环模式(内部测试)、静默模式(只收不发)。②它是异步通信,计算波特率时的CAN_CLK指的是挂载总线APB1的低速总线=42Mhz。

7.APB1外设时钟总线挂载(42M)——UART2~5\IIC1~3\SPI2~3\CAN1~2\DAC。

APB2外设时钟总线挂载(84M)——UART1和6\SPI1\ADC\GPIO

APB1定时器时钟总线挂载——TIM2~5(通用)、TIM6和7(基本)、TIM12~14(通用)

APB2定时器时钟总线挂载——TIM1和8(高级)、TIM9~11(通用)

8.输入捕获用TIM2或TIM5(32位),PSC=84-1,ARR=0xFFFFFFFF,溢出需要很久,基本不用担心溢出的问题了。

9.RTC:外部晶振(32.768Khz)->分频->1Hz。

  • APB1 总线时钟:CPU 通过 APB1 总线来读写 RTC 的寄存器。

  • 影子寄存器:为了保证数据一致性,当你读取时间时,实际上读取的是一个“备份副本”,而不是正在被硬件实时更新的主寄存器。

  • BCD 格式:用二进制数来表示十进制,比如 0x35 表示数字 35,这样处理日历更直接。

  • 备份域:RTC 的寄存器、后备寄存器都位于备份域(Backup Domain),由V_BAT引脚供电,主电源掉电后数据不丢失。

10.RNG随机数发生器:噪声-采集、放大、处理-得到32位随机数。

相比软件rand(),它不可预测,但速度相对较慢。

配置时非常简单:挂载相应的APB1or2后直接使能RNG,之后等待数据就绪,读取 32 位随机数即可。

如生成[1,10]范围内的随机数——>y=x % (max - min +1) + min,min=1,max=10。

11.低功耗模式:

  • 睡眠模式:只关CPU,外设全开。唤醒最快(无延迟),功耗最高(mA级)。适合需要快速响应的场合。

  • 停止模式:关CPU,大部分外设时钟也停了,但SRAM数据保留。唤醒需要一点时间,功耗在μA级。

  • 待机模式:几乎关掉所有电路,SRAM数据也不保了。唤醒时间最长(相当于复位),功耗最低(nA级)。

  • 唤醒方式:RTC周期唤醒,WKUP(PA0)上升沿按键唤醒,外部中断唤醒(WAUP映射到EXTI上)

  • 附:STM32使用SRAM,手机/电脑使用DRAM/SDRAM

12.ADC STM32的ADC使用12位(0~4095),所以V=adc_value/4095 *参考电压。F4的ADC不超过36Mhz,APB2, 一般84M/4 =21Mhz。配置为模拟输入。

右对齐直接用,独立通道,单次,软触发

DAC也配置为模拟输入

13.光敏电阻:光越强,D越小。

14.参数配置保存:①EEPROM(AT24C02)②后备寄存器(VBAT供电)。报文或实时保存数据量大才选择FLASH或外挂SPI FLASH(W25Q128)【若少量动态——磨损均衡算法】。

15.外挂SRAM:AHB3->FMC时钟->外挂SRAM。STM32F407ZGT6的SRAM-192k,对于图像数据、GUI显存、大数据缓冲(FFT运算)等来说自身的SRAM太小。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 9:58:35

携程Java后端三面面经:从HashMap到系统设计的核心考点与复盘

携程这个 offer 拿得真是有点意外&#xff0c;又有点意料之中。投的是 Java 后端岗位&#xff0c;从简历筛选到走完三面流程差不多小两周&#xff0c;每一轮中间隔了两三天&#xff0c;节奏不快不慢。整个面试过程给我最大的感觉是&#xff1a;携程的面试官非常看重基础知识的深…

作者头像 李华
网站建设 2026/9/1 15:24:54

基于Spark Structured Streaming的新闻日志实时分析系统架构与实现

简介&#xff1a;本资源是一套面向高校大数据方向毕业设计的完整实战项目源码与配套文档&#xff0c;聚焦新闻浏览日志的实时分析与可视化场景&#xff0c;适用于具备Java/Scala基础、正在学习Spark流式计算与大数据平台集成的学生。项目覆盖数据采集&#xff08;Flume→HBase/…

作者头像 李华
网站建设 2026/9/1 18:22:29

WorkBuddy实战指南:从零搭建AI自动化工作流与Skill开发

大家好&#xff0c;我是你们的老朋友。之前分享过不少 AI 工具的使用心得&#xff0c;后台收到大量关于 WorkBuddy 的私信。说实话&#xff0c;我一开始也以为这只是一个普通的效率工具&#xff0c;结果在连续高强度折腾了一周之后&#xff0c;我发现网上绝大多数的教程都停留在…

作者头像 李华
网站建设 2026/9/2 1:33:16

2026数据分析工具怎么选?7款主流工具实测体验

2026数据分析工具怎么选&#xff1f;7款主流工具实测体验前两年大家还在讨论普通用户到底能不能用好 AI 数据分析工具&#xff0c;到 2026 年&#xff0c;这个讨论已经有了清晰方向&#xff1a;不是能不能做数据分析&#xff0c;而是不同工具到底适配哪一类用户群体。结合近几个…

作者头像 李华
网站建设 2026/9/5 17:47:14

AI slop鉴别指南:从抵制AI到建立内容质量标准

当你在 CSDN 刷到一篇技术文章&#xff0c;标题很吸引人&#xff0c;点进去却发现逻辑松散、结论模糊&#xff0c;甚至核心术语都用错时&#xff0c;你的第一反应是什么&#xff1f;大概率是瞄一眼文末有没有“本文由 AI 生成”的标注&#xff0c;然后在评论区留下一句“水文”…

作者头像 李华
网站建设 2026/9/2 8:21:20

Vue核心考点全攻略:响应式、diff与组件通信实战解析

“铜九铁十”这个词一出来&#xff0c;经历过秋招的朋友应该都会心一笑。金九银十是给大厂HR冲KPI用的&#xff0c;到了九月下旬、十月这个节点&#xff0c;面试机会虽然还有&#xff0c;但bar明显抬高了不少&#xff0c;问的问题也更刁钻。尤其是Vue&#xff0c;作为国内前端岗…

作者头像 李华