跳转到主要内容

技术

MCU产品测试要领

(MCU测试部分)

<strong>一.MCU测试</strong>

1.mcu工作电压及电流,
测试MCU工作电压是否在工作电压范围,电压过高会影响MCU的正常工作甚至烧坏,工作电压过低会影响MCU的外围电路驱动能力,甚至导致外围电路不能正常工作。

2. mcu静态电流
静态电流是衡量MCU性能的主要参数之一,静态电流越小越好,根据MCU规格书测试静态电流是否符合要求,一旦MCU有损坏的话,静态电流就会变大,会增加产品的静耗,致使产品整体功耗增加。

3.mcu的振荡频率
如MCU为外接晶振型的,需要检测其正常工作时MCU的晶振输入脚的振荡频率是否正确,如果晶振振荡频率不符合要求则会影响产品的定时及延时,甚至不能正常工作。

ARM、MCU、DSP、FPGA、SOC选择的区别在哪里?

科技的发展,身边的智能产品越来丰富,扫地机器人、手机、VR、穿戴设备及车载仪表、导航仪等,这些产品都具备个智能的“芯”,今天,主要介绍这些“芯”的特点与联系。

<strong>ARM</strong>

ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。

Cortex-M3工作模式与异常

<strong>一、工作模式</strong>

线程模式和手柄模式。

<center><img src="http://mm32.eetrend.com/files/2016-07/wen_zhang_/100002244-6946-1.png&q…; alt=""></center>

当处理器处在线程状态下时,既可以使用特权级,也可以使用用户级;另一方面, handler模式总是特权级的。在复位后,处理器进入线程模式+特权级。

ARM cortex-M3 异常处理分析

作者:dogsun88

<strong>一、进入异常之前处理器可能的状态有:</strong>

1、 handler

2、 线程,MSP

3、 线程,PSP

<strong>二、产生异常时:</strong>

1、 有一个压栈的过程,产生异常时使用PSP,就压入到PSP中,产生异常时使用MSP,就压入到MSP中

2、 会根据处理器的模式和使用的堆栈,设置LR的值(当然设置完的LR的值再压栈)

<strong>三、异常返回时:</strong>

根据LR的值,判读使用那个堆栈,然后再从相应的堆栈中POP数据到寄存器。

关于单片机上拉电阻、下拉电阻的详解

<strong>一、定义</strong>

1、上拉就是将不确定的信号通过一个电阻嵌位在高电平!“电阻同时起限流作用”!下拉同理!

2、上拉是对器件注入电流,下拉是输出电流。

3、弱强只是上拉电阻的阻值不同,没有什么严格区分。

4、对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。

<strong>二、拉电阻作用</strong>

1、一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

ARM Cortex-M3 MCU 的 I2C DMA操作和中断

在项目开发的过程中,发现程序总是死在判断DMA一次传输是否完成这个标志位上。进一步回退分析,发现是在I2C读的过程中,有使用到DMA去取外部I2C设备的data。

但是data并没有读完,Data为32bits,DMA在读到18bits时,就出现读不到data bit了。导致I2C硬件模块不能进一步动作,SCK一直被拉低,没有clock输出,SDA也是如此。

下面是通过示波器抓到的波形:

单片机中关键字data、idata、xdata、pdata的区别

<strong>data</strong>

固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

<strong>idata</strong>

固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)

<strong>xdata</strong>

ARM的9种寻址方式

本文介绍ARM的9种寻址方式,基础知识,需要牢固掌握,快来看一下吧。

<strong> ARM的9种寻址方式</strong>

<strong> 1)立即寻址</strong>

操作数是立即数,以“#”为前缀,表示 16 进制数值时以“0x”表示。

例:

MOV R0,#0xFF00 ;0xFF00 -> R0

SUBS R0,R0,#1 ;R0 – 1 -> R0

<strong> 2)寄存器寻址</strong>

操作数的值在寄存器中,指令执行时直接取出寄存器值操作。

例:

MOV R1,R2 ;R2 -> R1

汽车电子中MCU技术原理及其需求分析

汽车作为一部大型的机电一体化设备,汽车电子在汽车整体成本中的比例越来越大,其涵盖了从车身控制、动力传动、车身安全,到车内娱乐的各个方面。

微控制器(MCU)作为汽车电子系统内部运算和处理的核心,也遍布悬挂、气囊、门控和音响等几十种次系统(Sub-System)中。由于汽车作为高速交通工具承载了对用户生命安全的保障,同时汽车经常工作在十分恶劣的环境中,其对内部电子设备的可靠性要求要远高于一般性电子产品。因此汽车电子所用的MCU与一般性产品的结构差异虽然并不很大,而一般的MCU产品由于可靠性不能符合厂商的要求而并不能被选用,这也是汽车电子产品同一般性电子产品市场的区别之一。

<strong><font size="5">技术特性需求</font></strong>

中断驱动多任务--- 单片机(MCU) 下的一种软件设计结构

MCU由于内部资源的限制,软件设计有其特殊性,程序一般没有复杂的算法以及数据结构,代码量也不大, 通常不会使用 OS (Operating System), 因为对于一个只有若干K ROM、一百多byte RAM 的MCU来说,一个简单OS 也会吃掉大部分的资源。

对于无OS的系统,流行的设计是主程序(主循环 )+(定时)中断,这种结构虽然符合自然想法,不过却有很多不利之处,首先是中断可以在主程序的任何地方发生,随意打断主程序。其次主程序与中断之间的耦合性(关联度)较大,这种做法 使得主程序与中断缠绕在一起,必须仔细处理以防不测。

单片机设计过程中如何摆脱电磁干扰?

对电磁干扰的设计我们主要从硬件和软件方面进行设计处理,下面就是从单片机的PCB设计到软件处理方面来介绍对电磁兼容性的处理。

如何提高单片机系统的抗干扰能力?!

随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,开关操作等引起的电磁振荡会波及很多电气设备。

随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,开关操作等引起的电磁振荡会波及很多电气设备。这对我们单片机系统的可靠性与安全性构成了极大的威胁。单片机测控系统必须长期稳定、可靠运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大损失。因此单片机的抗干扰问题已经成为不容忽视的问题。

Cortex-M3的异常和中断

作者:sunheshan

<strong><font size="5">1、 异常</font></strong>

M3支持15个系统异常,240个外部异常IRQ,其中NMI,复位,hardfault三个异常的优先级固定不可更改且是负数,其余的都可编程。

M3的异常分为抢占优先级和子优先级。

<strong><font size="5">2 、关于中断优先级</font></strong>

MCU实战经验:多种的按键处理

按键通常有:IO口按键(BUTTON),AD按键(通过AD采样电压),IR(遥控器)

按按键功能分:有短按键,长按键,连续按键。打个比方,遥控电视机,按一下音量键,音量增加1,这个就是短按键。按住音量键不放,音量连续加,这个就是连续按键。按住一个按键5s,系统会复位,这个是长按键。

<strong>1、IO口按键,</strong>就是我们比较常见的一个IO接一个按键,或者是一个矩阵键盘。很多新人的处理方法可能是采样延时的方法,当年我也是这样的,如下:

if(GETIO==low)
{
delay_10ms()
if(GETIO==low)
{
//得到按键值
}
}

单片机远程控制步进电机、LED灯和蜂鸣器

作者:NK_test

通过采用C#语言实现的上位机控制单片机的步进电机模块、LED灯和蜂鸣器模块,使步进电机进行正、反转和停止并控制转速;LED灯模块进行有选择的呼吸式表达;蜂鸣器模块的开始和终止。

上位机通过串口和自定义的通信协议(8字节)控制单片机的步进电机、LED灯和蜂鸣器模块。其中在控制步进电机的过程中,为了使操作能够及时响应,使用了INT0中断来进行及时性速度响应;LED灯使用位运算控制灯的闪烁位置,合理利用了单片机的模块和操作。

注意:由于定时器个数的限制,没能控制更多的模块。

#include<reg52.h>

sbit WEI=P2^7;
sbit DUAN=P2^6;
#define DataPort P0

电动自行车应用中的MCU

可编程SOC器件不但可作为电机控制、模拟测量以及直接驱动LCD显示屏的统一电路板系统用于电动自行车应用,而且还能支持电容式感应技术以取代键盘上的机械按键。此外,SOC器件还能利用内部PWM、MUX和比较器来驱动和控制三相电机,利用内部ADC和PGA来支持传感器输入电池监控,以及利用热敏电阻或RTD等温度感应器件来实现温度感应。该器件不但能直接驱动继电器,以支持刹车灯、车头灯和转向灯,而且能直接驱动LCD显示屏,以显示温度、电池状态、速度、骑行距离及各种错误/警告消息等。

加速Cortex-M MCU调试的五个技巧

调试嵌入式软件是我最不喜欢的行为,不幸地是,它却是必要的。值得庆幸地是,技术和工具链创新的进步衍生出大量的新技术,从而大大地加快了调试过程。下面让我们来看看其中一些方法,从传统的断点调试出发到更先进的仪器跟踪技术。

<strong><font size="5">技巧1# - 传统的断点调试</font></strong>

每个开发人员都熟悉传统的调试技术,设置断点、执行代码,然后单步调试代码进行监视,同时监视寄存器和变量值。断点调试是我看到的使用最多的技术。然而,结果却不甚乐观,因为断点调试的效率较低,通常会产生次优的结果。

关于单片机RAM的作用

<strong> 一、内部RAM</strong>

共256个单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。

前128单元具体分为:

1、工作寄存器区:共4个组,每组为8个存储单元,即00H-07H,08H-0FH,10H-17H,18H-1FH,具体选择哪一个由程序状态字(PSW)中的RS1和RS0的组合决定(在此我就不展开了,呵呵……)

2、位寻址区:20H-2FH,共16个单元,每一位可以进行位寻址(16*8=128个位地址),就是每一个触发位,就是bit可以寻址

3、便笺区:从30H-7FH,共80个单元,用于存放用户数据或作堆栈区使用。

4、从80H-FFH为专用寄存器占用,其中还离散的分布SFR(21个特殊功能寄存器)

单片机C语言入门教程

学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(?Vision)将这些部份组合在一起。

学习之前请先安装KEILC51软件,在学会使用汇编语言后,学习C语言编程是一件比较容易的事,我们将通过一系列的实例介绍C语言编程的方法。图1-1所示电路图使用89c51单片机作为主芯片,这种单片机性属于80C51系列,其内部有8K的FLASH ROM,可以反复擦写,非常适于做实验。89c51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的任务是让接在P1引脚上的发光二极管按要求发光。

话说单片机应用系统硬件电路设计

<br>一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。</br>

<strong><font color="#0000C6"><font size="5">系统的扩展和配置应遵循以下原则:</font> <strong>

1、尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。