跳转到主要内容

技术

单片机的译码方式

单片机的片选方法有线选法和译码器。线选法就是用其中剩余一条地址线做为单片机选择其它芯片的片选信号线,连接简单,但当单片机外围芯片较多时,由于单片机剩余地址线数量有限,有可能不够用。这时可以使用译码方式,对单片机剩余的高位地址线进行译码,用译码器的输出线做为单片机芯片的片选。

全译码方式是将片内寻址的地址线以外的高位地址线,全部输人到译码器进行译码,利用译码器的输出端作为各存储器芯片的片选信号。常用的译码器有74LS138、 74LS139、74LS154等。这里介绍74LS138、74LS139译码器。

堆栈在C语言中的定义(单片机的中堆栈相当于栈)

在计机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教,这对于大家学习会有很大帮助。

单片机开发人员的几个常疏忽的问题点

我的工作主要是主导新产品试产,在实际的工作中,经常出现因为RD人员的设计“疏忽”导致试产失败。这个疏忽要加上引号,是因为这并不是真正的粗心造成的,而是对生产工艺的不熟悉而导致的。为了避免各位做RD的朋友出现同样的错误,或为了更好的完成试产我对一些常见的问题点做一些总结,希望能对大家有所帮助。

1、IC封装的选择。现在电子产品都在向环保的无铅发展,欧洲2006年7月1日就要实现全部无铅化,,现在正处于有铅向无铅的过渡期。因此,元器件厂商提供的元器件也出现无铅与有铅两种规格,有的厂商甚至已经停止了有铅元器件的生产。

为什么PCB上的单端阻抗控制50欧姆

很多刚接触阻抗的人都会有这个疑问,为什么常见的板内单端走线都是默认要求按照50欧姆来管控而不是40欧姆或者60欧姆?这是一个看似简单但又不好回答的问题。在写这篇文章前我们也查找了很多资料,其中最有知名度的是Howard Johnson, PhD关于此问题的答复,原文可以详见如下链接:http://www.edadoc.com/cn/jswz/show_815.html,相信很多人都有看过。

详细解读电路中的7个常用接口类型

我们知道,在电路系统的各个子模块进行数据交换时可能会存在一些问题导致信号无法正常、高质量地“流通”,例如有时电路子模块各自的工作时序有偏差(如 CPU与外设)或者各自的信号类型不一致(如传感器检测光信号)等,这时我们应该考虑通过相应的接口方式来很好地处理这个问题。

下面就电路设计中7个常用的接口类型的关键点进行说明一下:

<strong>TTL电平接口</strong>

单片机掉电检测与保存

单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM中。为此,通常做法是在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。

test:被骗好久,手机电池应该这样充电才能延寿数年

被骗好久:手机电池应该这样充电才能延寿数年

借力多核MCU/编码器 PMSM助工业机器人精准位移

永磁同步马达(PMSM)通常用于高效能、低功耗的马达驱动。高效能马达控制的特征为可在整个速度范围内平稳旋转,零速度时有完全的扭矩(Torque)控制,且能达到快速加速和减速。为了达到上述要求,PMSM采用向量控制技术,该技术通常还被称为磁场定向控制(FOC)技术。向量控制算法的基本思路是将一个定子电流分解为磁场生成的分量和扭矩生成的分量,分解后,这两个分量能单独进行控制;而马达控制器(亦即向量控制控制器)的结构几乎与一个他励直流马达(DC Motor)相同,这样便简化了PMSM的控制程序。

<strong>扭矩生成定理 </strong>

嵌入式系统之WATCHDOG(看门狗)概述

<strong>1、概述:</strong>

WATCHDOG对于没有底层开发经验的开发人员来说,可能比较陌生,但是它在系统起到非常重要的作用,相当于系统警察,当系统发生严重错误(如程序进入死循环等)不能恢复的时候,WATCHDOG能够让系统重启。WATCHDOG的应用主要是在嵌入式操作系统中,避免了系统在无人干预时长时间挂起的情况。

<strong> 2、WATCHDOG模块</strong>

在比较高档的嵌入式硬件芯片中,都有一个WATCHDOG模块,如果在MCU/MPU中没有集成WATCHDOG,一般会在此嵌入式系统中加一个专门的WATCHDOG芯片来实现WATCHDOG机制。此模块主要的功能包括:

设计可穿戴产品需要避免的几个大坑

在当今群雄逐鹿、竞争激烈的可穿戴市场中,获得成功的关键在于差异化的产品特性和服务。制造商和服务提供商竞相争夺同样的可穿戴“市场大饼”。成功设计可穿戴式产品是一项复杂的工程。成功的产品需要成本、性能、功能、电池使用寿命的完美组合,必须具备引人注目的外观、感受和表现以吸引消费者。我们需要通过关注最终用户体验和探索使用情形,以便在可穿戴产品中集成各种不同元素并完成复杂的权衡。

典型的嵌入式系统通常开始于功能和能力定义,它们可说是项目的首要驱动关键。同样,成功的可穿戴产品设计需求要关注于“用户体验”。这些需求包括可穿戴产品的外观、感觉和与最终用户的交互,以及它所引起的印象、感受和情绪。

ARM64的启动过程之(三):为打开MMU而进行的CPU初始化

作者:linuxer

<strong>一、前言</strong>

上一节主要描述了为了打开MMU而进行的Translation table的建立,本文延续之前的话题,主要是进行CPU的初始化(注:该初始化仅仅为是为了turn on MMU)。

本文主要分析ARM64初始化过程中的__cpu_setup函数,代码位于arch/arm64/mm/proc.S中。主要的内容包括:

1、cache和TLB的处理

2、Memory attributes lookup table的构建

3、SCTLR_EL1、TCR_EL1的设定

<strong>二、cache和TLB的处理</strong>

一颗ARM架构芯片的软硬件构成

作者:suipingsp

硬件和软件是一颗芯片系统互相依存的两大部分,本文总结了一颗芯片的软硬件组成,作为对芯片的入门级概括吧。

<strong>(一)硬件</strong>

主控CPU:运算和控制核心。基带芯片基本构架采用微处理器+数字信号处理器(DSP)的结构,微处理器是整颗芯片的控制中心,会运行一个实时嵌入式操作系统(如Nucleus PLUS),DSP子系统负责基带处理。应用处理器则可能包括多颗微处理器,还有GPU。微处理器是ARM的不同系列的产品(也可以是x86架构),可以是64位或者32位。处理器内部通过“内部总线”将CPU所有单元相连,其位宽可以是8-64位。

详解PWM调速原理

学过单片机的同学,对PWM应该不陌生,一般学习单片机的第二个例程就是用PWM技术调节占空比来控制LED亮度。然而PWM控制技术在逆变电路中应用最广,正是有赖于其在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。因此,本文将详细阐述pwm的原理:PWM(PulseWidthModulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。

PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。

<strong> 1、PWM控制的基本原理</strong>

理论基础:

单片机系统硬件抗干扰常用方法

影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。

<strong>形成干扰的基本要素有三个:</strong>

<strong>(1)干扰源。</strong>指产生干扰的元件、设备或信号, 用数学语言描述如下:du/dt, di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。

<strong>(2)传播路径。</strong>指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。

MCU全功能按键接口

在单片机开发中,由于资源受限而没有平台的支持,每次开发都要重写很多代码,应用的千奇百怪的需求更是加剧了这种困难。解决问题的办法是,总结常见的需求,分析它,得出即高效有通用的解决方案。

今天我就来为大家提供一种按键的解决方案,它易用,高效,节省资源!

先给出这个按键模块解决方案的全部代码,稍后再来分析。

<strong> keyif.h内容:</strong>

教你如何调试新电路板?!

对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。对于刚拿回来的新PCB板,我们首先要大概观察一下,板上是否存在问题,例如是否有明显的裂痕,有无短路、开路等现象。如果有必要的话,可以检查一下电源跟地线之间的电阻是否足够大。

有效执行算法 Cortex-M4 MCU简化马达控制架构

Cortex-M4微控制器(MCU)将可加速马达控制设计。精准的马达控制须仰赖精密且复杂的算法才能达到,而Cortex-M4微控制器运算能力达100MHz,并具备DSP及硬件浮点运算单元,可有效执行马达控制所需的高阶计算,有助减轻开发负担。

透过内建Cortex-M4核心的微控制器(MCU),再搭配智能型连接的接口设备,将可轻松执行复杂的马达控制算法。本文将以永磁同步马达(PMSM)磁场定向控制(FOC)之中的方程式为例进行探讨,并显示如何利用CMSIS数字信号处理器(DSP)链接库进行处理。本范例使用的相同原则,可应用至其他控制算法及马达类型。此外,也将探讨智能型接口设备为何不需要第二个核心,并说明使用单一业界标准核心搭配CMSIS DSP链接库的众多优点。

编译器的工作过程

作者:阮一峰

源码要运行,必须先转成二进制的机器码。这是编译器的任务。

比如,下面这段源码(假定文件名叫做test.c)。

#include <stdio.h>int main(void){
fputs("Hello, world!\n", stdout);
return 0;}

要先用编译器处理一下,才能运行。

$ gcc test.c
$ ./a.out
Hello, world!

对于复杂的项目,编译过程还必须分成三步。

$ ./configure
$ make
$ make install

C语言编程程序的内存如何布局 ?

 <strong>一:C语言程序的存储区域</strong>

  由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。

  C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域:

  1、代码段(Code或Text)

  代码段由程序中执行的机器代码组成。在C语言中,程序语句进行编译后,形成机器代码。在执行程序的过程中,CPU的程序计数器指向代码段的每一条机器代码,并由处理器依次运行。

  2、只读数据段(RO data)

ARM64的启动过程之(二):创建启动阶段的页表

作者:linuxer

<strong>一、前言</strong>

本文主要描述了ARM64启动过程中,如何建立初始化阶段页表的过程。我们知道,从bootloader到kernel的时候,MMU是off的(顺带的负作用是无法打开data cache),为了提高性能,加快初始化速度,我们必须某个阶段(越早越好)打开MMU和cache,而在此之前,我们必须要设定好页表。