技术
<strong>一、STM32中断分组:</strong>
STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:
一些医疗检测仪器在检测时需要模拟人体温度环境以确保检测的精确性,本文以STM32为主控制器,电机驱动芯片DRV8834 为驱动器,驱动半导体致冷器(帕尔贴)给散热片加热或者制冷。但由于常规的温度控制存在惯性温度误差的问题,无法兼顾高精度和高速性的严格要求,所以采用模糊自适应PID控制方法在线实时调整PID参数,计算PID参数Kp、Ki、Kd调整控制脉冲来控制驱动器的使能。从simulink仿真的和实验结果来看模糊PID控制系统精度高、响应速度快,能达到预期效果。
在MCU中(M16),定时器是独立的一个模块,M16有三个独立的定时器模块,即T/C0、T/C1和T/C2;其中T/C0和T/C2都是8位的定时器,而T/C1是一个16位的定时器。定时器的工作是独立于CPU之外自行运行的硬件模块。
<strong>1、定时器何时开始工作(或说计数)的?</strong>
当TCCR0!=0x00任何模式下,只要MCU一上电,T/C就开始计时工作。其实TCCR0主要是定时器的预分频和波形模式、比较匹配模式的设置,说到预分频,不得不提一下这个模块,这个模块是T/C0、T/C1共用的一个模块,但可以有不同的分频设置。
<strong>2、定时器是如何进行工作的?</strong>
考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:
<strong>1 对密集的乘法运算的支持</strong>
低功耗、高速度、高集成度的LSI电路是成众多电子产品的首要考虑,这也就导致装置比以往任何时候更容易受到电磁干扰的威胁。此外,大功率家电及办公自动化设备的增多,以及移动通信、无线网络的广泛应用等,又大大增加了电磁骚扰源。这些变化迫使人们把电磁兼容作为重要的技术问题加以关注。
<font size="3"><strong>电磁兼容</strong></font>
采用一定的技术手段,使同一电磁环境中的各种电子、电气设备都能正常工作,并且不干扰其他设备的正常工作,这就是电磁兼容(ElectromagneticCompatibility,缩写为EMC)。
写在最前面,本文对于志在研究MCU防护的同学,能给很多参考思路,但对于想当黑客的人,发烧友对后果概不负责...
<strong>首先明白MCU是什么——即结构与组成</strong>
Ⅰ:中央处理器CPU,包括运算器、控制器和寄存器组。是MCU内部的核心部件,由运算部件和控制部件两大部分组成。前者能完成数据的算术逻辑运算、位变量处理和数据传送操作,后者是按一定时序协调工作,是分析和执行指令的部件。
Ⅱ:存储器,包括ROM和RAM。ROM程序存储器,MCU的工作是按事先编制好的程序一条条循序执行的,ROM程序存储器即用来存放已编的程序(系统程序由制造厂家编制和写入)。存储数据掉电后不消失。ROM又分为片内存储器和片外(扩展)存储器两种。
脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。只要带宽足够,任何模拟值都可以使用PWM进行编码。本文提出AVR单片机ATmega128的PWM的设计方法。
<strong>1.定时/计数器PWM设计要点</strong>
根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:
<strong>(一)普通二极管的检测</strong>
(包括检波二极管、整流二极管、阻尼二极管、开关二极管、续流二极管)是由一个PN结构成的半导体器件,具有单向导电特性。通过用万用表检测其正、反向电阻值,可以判别出二极管的电极,还可估测出二极管是否损坏。
1.极性的判别 将万用表置于R×100档或R×1k档,两表笔分别接二极管的两个电极,测出一个结果后,对调两表笔,再测出一个结果。两次测量的结果中,有一次测量出的阻值较大(为反向电阻),一次测量出的阻值较小(为正向电阻)。在阻值较小的一次测量中,黑表笔接的是二极管的正极,红表笔接的是二极管的负极。
MCU的安全等级正在逐步提升,一些公司甚至推出了安全主控,这是很好的现象,说明大家越来越重视嵌入式领域的信息安全和程序安全了。但对于很多特殊行业,比如消费类电子产品,低成本的通讯模块、电源控制模块等等,迫于成本压力以及更新换代速度问题,都无法使用更安全的主控MCU,有很大一部分产品甚至还在使用51单片机。
大家可能都知道破解51单片机是很容易的,但为什么容易,又是如何来破解的,可能很多人就不大清楚了,我在这里结合网上一些前辈整理的资料,和自己的经验,对MCU破解技术做个简单分析。
大家不要把解密想的很复杂,他不像研发一款产品那样,先确定客户需求或者新产品主要功能,然后立项确定技术指标,分配软硬件开发任务,基于硬件调试程序,然后验证功能,测试bug,还要做环境试验。行业里解密的方法有很多,每个人破解的思路也不一样。但是大致分为几种。
电源电路是一个电子产品的重要组成部分,电源电路设计的好坏,直接牵连产品性能的好坏。我们电子产品的电源电路主要有线性电源和高频开关电源。从理论上讲,线性电源是用户需要多少电流,输入端就要提供多少电流;开关电源是用户需要多少功率,输入端就提供多少功率。
<font size="3"><strong>线性电源</strong></font>
线性电源功率器件工作在线性状态,如我们常用的稳压芯片LM7805、LM317、SPX1117等。下图一是LM7805稳压电源电路原理图。
<strong>一、基本知识</strong>
<strong>1.按键分类与输入原理</strong>
按键按照结构原理科分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关灯;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入时与软件结构密切相关的过程。
物联网市场的高速发展,无疑也在搅动半导体行业原有的格局,为了在物联网时代不掉队,各个芯片厂商都在努力发展适应市场需求的新产品品类。因为联网是物联网终端设备的基本需求,所以在原有的MCU中集成RF无线收发器、能够跑各种无线协议,让物联网产品的架构和开发过程更为简洁,是最自然不过的产品演化逻辑。因此,无线MCU就应运而生了。
而面对市面上林林总总的无线MCU产品,如何能够选择一个和你的应用场景“对路”的产品,这其中还是有一些套路可寻的。
<strong>套路一,看硬件平台</strong>
通常无线MCU都是脱胎于厂商原有的一个MCU平台,比如NXP的KW无线MCU是基于ARM Cortex-M架构的Kinetis系列MCU中的一个子类,TI的SimpleLink无线MCU平台背后则是MSP430 MCU的基因。
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。
一、stm32的pwm输出引脚是使用的IO口的复用功能。
二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。
三、我们以tim3的CH1路pwm输出为例来进行图文讲解(其它类似),并在最后给出tim3的ch1和ch2两路pwm输出的c代码(已在STM32F103RBT6上测试成功,大家放心使用!)。
四、给出了PWM频率和占空比的计算公式。
步骤如下:
<font color="blue"><strong>前言</strong></font>
一般芯片开发过程中,存在 Bin 文件的拼接过程,比如在做 IAP 程序+用户程序过程中,最终烧写 bin 文件或 hex 文件需要将两个或者三个单独编译通过的程序拼接在一起作为最终烧录文件,本文就如何操作做详细说明。
<font color="blue"><strong>示例案例</strong></font>
<strong>1 引言</strong>
当今社会,随着经济的发展,人们生活水平的提高,肥胖的人越来越多,也就导致了越来越多的疾病产生,因此,人们越来越关注健康问题,而锻炼身体是让自己健康的最有效的方法。因此计步器应运而生,就成了时下流行的趋势。步行时,通过伸缩肌肉,血液在流动时的抵抗值下降,血压下降且稳定。经常步行的人很少患高血压或低血压病。坚持步行能减少血管内附着的脂肪性物质,使体重减轻,也逐渐减少心脏的负荷。而基于单片机为核心控制的计步器有着精确,可靠,稳定,方便等优点,已被大多数人所接受。通过计步器人们可以知道自己跑了多少步,实时掌握自己的锻炼情况。
<strong>2 总体设计方案</strong>
<font size="3"><strong> 一、五大内存分区:</strong></font>
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
2、堆区(heap):就是那些由new分配的内存块,它们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
3、自由存储区:就是那些由malloc等分配的内存块,它和堆是十分相似的,不过它是用free来结束自己的生命。