尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

单片机裸机复习1/3

单片机裸机复习1/3 本章主要以常用的STM32F407ZGT6为例。1、型号stc89c52rcstc89-标号c-工作电压 5.5-3.3V52-flash 8k5x代表x乘以4就是空间大小除了53是13krc-RAM大小 512stm32f407zgt6stm32-标号F-主系列:通用型(L-低功耗H-高性能)407-子系列 主频168MhzZ-引脚数 144(V-100 R-64 C-48 T-36)G-flash 1M(B-128k C-256k E-512k)T-封装 LQFP四方扁平(H-BGA球栅封装 U-VFQFPN小封装(四周贴壁引脚大概这形状))6-工业温度-40℃~85℃(7--40℃~105℃)2、FLASH-硬盘-放程序RAM-内存-管过程EEPROM-参数-放配置。以上图为例实际项目编译后计算所用的FLASH与RAM大小SizeFlash Code RO-data RW-data 37932149728640156 39.2kSizeRAM RW-data ZI-data Stack_Size Heap_Size 22k3、输出模式(推挽/开漏)、复用功能(推挽/开漏)、模拟模式、输入模式(浮空/上拉/下拉)推挽输出驱动能力强高速。开漏输出需要高电平-外部上拉才行IIC这种从设备线与关系的需要开漏输出上拉电阻的大小决定了驱动能力强弱电阻小-驱动强但漏电流大电阻大-漏电流小但驱动弱。复用模式通信接口高级控制接口存储与总线接口。模拟模式ADC、DAC。输入模式按键、检测外部中断。4、定时器基本定时器、通用定时器、高级定时器(挂载APB2时钟线上)。基本(TIM6\7)通过中断触发事件通用(TIM2~5\9-14)①输入捕获(红外解码 计算脉宽)、②输出比较(LED亮暗(20ms,好点1k-10khz 1000步)\电机调速(10k-20khz 500·100步)\舵机(20ms 低分辨率))、③编码器模式(增量式正交编码器、低速抖动(低通滤波(0.8与0.2开局)、滑动平均(10~20个)))高级(TIM1\8)PWM互补输出、死区时间、刹车功能。备注①编码器模式TIM2~ 5支持TIM9~ 14只支持向上计数也是通用定时器但是不支持编码器模式②长延时需求只有TIM2和TIM532位4个通道③APB2定时器总线上168Mhz高速除了挂载高级定时器TIM1和TIM8还有通用定时器TIM9~ 11。其他定时器挂载在APB1定时器总线84Mhz低速5、PSC-预分频器、ARR-自动重装载值。PWM频率*(PSC1)*(ARR1)时钟频率PWM分辨率ARR16、PWM频率低的好处功耗低、CPU占用少、驱动能力强感抗XL2πfL电机起步用低频、对线路要求低(高频信号高频方波的边沿谐波容易产生EMI)。EMI影响干扰别人过不了认证干扰自己ADC\CAN\编码器乱跳被别人干扰环境抗扰度差EMI解决方案屏蔽、隔离、滤波、布线、优化屏蔽电机线用屏蔽线双绞接地、CAN\RS485用双绞屏蔽线、加屏蔽罩成本高隔离加磁环套在电机线上滤波编码器信号RC滤波增加延迟容抗XC1/2πfC布线信号线与功率先分开走、PCB铺地优化驱动器配置为S曲线加减速7、感抗效应阻碍电流快速变化阻挡高频交流分量允许直流、低频通过储能、平滑电流、容抗效应阻碍电压快速变化旁路泄放高频交流干扰隔断直流导通高频交流。例如有源与无源例如有源蜂鸣器就是做好的只需要高或低电平控制响与灭无源蜂鸣器需要控制PWM控制器响不响。有源晶振就是内部做好的无源晶振相当于一个大电感需要两端负载电容依靠容抗与晶振谐振稳定震荡频率。自己可以看相应STM32开发板原理图。8、内存布局代码段、数据段已初始化的全局/静态变量初始化为0不算、BSS段为初始化的全局/静态变量或初始化为0的全局/静态变量、堆malloc、free、栈局部变量、函数返回值等。此处内存说的是逻辑概念的地址空间视图非第2部分的物理内存RAM。9.基本关键字volatile不要优化、const只读作为全局只读变量存储在flash节省ram、static不想写自己搜、extern声明函数\变量在其他文件中定义10、基本通信方式UARTTX\RX 异步全双工 调试打印、蓝牙模块、gps模块IICSCL\SDA 同步半双工 温湿度传感器、eeprom、小容量存储SPISCK\MISO\MOSI\CS 同步全双工 显示屏、flash存储、高速ADCCAN对内:CAN‑O(TX)\CAN‑I(RX)\对外:CAN‑H\CAN‑L 异步半双工 汽车、航空、医疗设备RS485对内:UART_TX \UART_RX\对外:A\B\DERE(通常短接) 异步半双工 工业设备PLC、变频器分类点对点UART、RS232、RS422一主多从IIC、SPI、RS485多主CAN、IIC很少用网络以太网、WiFi、蓝牙Mesh问汽车选择CAN而不选择SPIorRS485CAN与SPI、RS485的区别答实时性方面-SPI、RS485都属于一主多从需要点名如spi的cs片选从机才能与从机通信CAN属于多主机模式不需要点名各设备都可实时上报其硬件内部的位仲裁通过比较ID的优先级确定同时发生报警优先接收优先级高的ID信号同时不会毁坏其他的ID信息所以ABS制动、门未关紧都能及时上报。稳定可靠性方面-CAN是硬件级保护CRC、帧错误检测、自动重发、节点故障自动隔离同时使用差分信号传输可以抗共模干扰同时具有更成熟的高层协议CANOpen\J1939、诊断协议(UDS on CAN)。RS485也是使用差分信号传输也能CRC校验等但是这样的保护措施是依赖上层协议Modbus也只是提供电气层标准。SPI基本没啥抗干扰也弱(所以通信距离一般1米)。延伸RS485-①RS485与CAN都是双线差分信号传输-通过比较两根线的电压差大小确定逻辑电平如Va-Vb阈值 记为1否则记为0所以两根线在一起可以抗共模干扰。②做过实际项目的大家都知道软件层中我们常常是通过UART驱动RS-485为什么两者一个是全双工一个是半双工——这是因为UART协议本身确实是全双工的因为它有独立的TX和RX线。但RS-485是物理层标准它使用一对差分线A/B来传输信号。我们通过RS-485收发器芯片将UART信号转换为差分信号而这个芯片是半双工的—它通过一个方向控制引脚DE/RE来切换‘发送’和‘接收’模式同一时刻只能处于其中一种状态。因此当我们用UART驱动RS-485时必须在软件中控制DE/RE引脚发送数据前拉高它进入发送模式发送完成后立即拉低它回到接收模式从而实现总线的分时复用。这就是为什么程序里需要额外配置一个GPIO来控制DE/RE。③RS485部署方式1双绞方式(加屏蔽(有金属一端接地))2采用手拉手的连接方式相邻两台设备首尾连接禁止星型连接(所有从设备都通过主设备连接这种在连接处有很大的信号干扰)3两头设备加电阻中间设备不用4一条线最多接32台多了就分多条线下节内容预告STM32的IIC通常情况也是使用软件模拟IIC①STM32虽然有硬件IIC功能但是使用起来也是有些鸡肋。原因是飞利浦有IIC设计的专利因此STM只能将IIC的电路设计的很复杂其硬件IIC的稳定性也不太好。②软件模拟IIC更容易移植省的不同类型的单片机单独配置。
返回列表