跳转到主要内容

技术

MCU网络接口方案的自由选择

微控制器不再工作于隔离状态,从工厂楼层到汽车内部,到处都有分布计算驻留。带双以太网或CAN(控制局域网)总线接口的MCU是很有用的,而这还只是冰山一角。

当今,有各种形式和大小的网络。许多嵌入式系统已有多种网络。随着TCA(电信计算架构)的新进展,其开关结构网络(switch-fabric network)引人注意。它可以是以太网,使用了一对I2C(内部集成电路)总线来支持IPM(综合功率管理)控制器(IPMC),这是架构管理支持的一部分。

虽然获得通信软件相当复杂,但是选择一种与网络匹配的MCU是相当容易的。在多节点或多网络中采用分区(或分块)应用,可以解决耐用性方面的问题。与分布处理器相比,联网还能减少电缆需求,并允许系统由廉价的MCU阵列组成,从而代替一对高性能的处理器。

Linux是否能在8位MCU上运行?结果出乎意料

来源:嵌入式资讯精选

我们经常可以看到初学者在单片机论坛中询问他们是否可以在他们微不足道的小的8位微机中运行Linux。这些问题的结果通常是带来笑声。我们也经常看到,在Linux论坛中,询问Linux运行的最低要求是什么。常见的答案是Linux需要一个32位架构和一个MMU(存储器管理单元),并至少1MB的RAM来满足内核的需求。

本项目旨在(并且成功)粉碎这些概念。下图中您所看到的开发板基于ATmega1284P。我(歪果仁)还制作了一块基于ATmega644a的开发板,也同样获得了成功。该开发板没有使用其他处理器,启动Linux 2.6.34内核。事实上,它甚至可以运行一个完整的Ubuntu栈,包括X(如果你有时间等它启动)和gnome。

RMW对 STM32F7xx内核运行速度影响的分析

来源:STM32单片机微信公众号

<strong>前言:</strong>
在客户使用基于Cortex-M7内核的STM32F7xx实际测试中,发现同等主频下基于Cortex-M4内核的STM32F4xx芯片执行同样一段简单程序在时间上还要快于STM32F7xx。这个会影响到客户切换到STM32F7xx的信心,也对ST以及ARM宣传上Cortex-M7内核执行时间远快于Cortex-M4内核的说法提出质疑,本文将针对具体案例分析这一情况的产生以及解决办法。

单片机设计过程中如何处理电磁兼容性问题

对于新手来说,在单片机的电路设计中可能不会很注意电路设计中电磁干扰对设计本身的输入输出的影响,但是对于一个电子工程师来说其中的厉害关系就不言而喻了,它不仅关系了单片机在控制在中的能力和准确度,还关系到企业在行业中的竞争。

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

<strong>一、影响EMC的因数</strong>

1.电压
电源电压越高,意味着电压振幅越大,发射就更多,而低电源电压影响敏感度。

2.频率
高频产生更多的发射,周期性信号产生更多的发射。在高频单片机系统中,当器件开关时产生电流尖峰信号;在模拟系统中,当负载电流变化时产生电流尖峰信号。

简单来说,我们常听到的 22nm、14nm、10nm 究竟是什么意思?

如题,先从大厂说起。目前芯片厂商有三类:IDM、Fabless、Foundry。

IDM(集成器件制造商)指 Intel、IBM、三星这种拥有自己的晶圆厂,集芯片设计、制造、封装、测试、投向消费者市场五个环节的厂商,一般还拥有下游整机生产。

Fabless(无厂半导体公司)则是指有能力设计芯片架构,但本身无厂,需要找代工厂代为生产的厂商。

Foundry(代工厂)则指台积电和 GlobalFoundries,拥有工艺技术代工生产别家设计的芯片的厂商。我们常见到三星有自己研发的猎户座芯片,同时也会代工苹果 A 系列和高通骁龙的芯片系列,而台积电无自家芯片,主要接单替苹果和华为代工生产。

<strong>制程</strong>

应用案例|高性能低功耗32位MCU打造故障指示器

摘要:故障指示器是一种易于实施、少维护或免维护型低成本解决方案。在32位MCU EFM32JG/PG+射频收发器Si4438 C版本的高度集成解决方案中,实测功耗分别仅为15.45uA和12uA。该方案提供了业界领先的超低功耗性能,使得整个系统信号链范围功耗达到历史新低,且大大降低了设计的复杂性。

在环网配电系统中,特别是大量使用环网负荷开关的系统,如果下一级配电网络系统中发生了短路故障或接地故障,上一级的供电系统必须在规定的时间内进行分断,以防止发生重大事故。因此,越来越多的线路故障指示器被用于配电系统中,用来标出发生故障的部分。

故障指示器是一种易于实施、少维护或免维护型低成本解决方案,因此对于该设备在配电网中的应用需求日益增长。图1是故障指示器及监测系统示意图。

RMW对 STM32F7xx内核运行速度影响的分析

<strong>前言</strong>

在客户使用基于Cortex-M7内核的STM32F7xx实际测试中,发现同等主频下基于Cortex-M4内核的STM32F4xx芯片执行同样一段简单程序在时间上还要快于STM32F7xx。这个会影响到客户切换到STM32F7xx的信心,也对ST以及ARM宣传上Cortex-M7内核执行时间远快于Cortex-M4内核的说法提出质疑,本文将针对具体案例分析这一情况的产生以及解决办法。

<strong>问题描述</strong>

状态机思路在单片机程序设计中的应用

<strong>状态机的概念</strong>

状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。

比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不影响我们对状态机的认识。

进一步看,击键动作本身也可以看做一个状态机。一个细小的击键动作包含了:释放、抖动、闭合、抖动和重新释放等状态。

同样,一个串行通信的时序(不管它是遵循何种协议,标准串口也好、I2C也好;也不管它是有线的、还是红外的、无线的)也都可以看做由一系列有限的状态构成。

MCU引脚输出模式中推挽输出与开漏输出电路原理区别

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.

我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。

超高灵敏度+超低功耗,这是您想要的电容触摸设计吗?

通常而言,电容式触控面板有时会比较难以处理,尤其是在下雨的时候,落下的雨滴与指尖的触感十分相似,而当用干毛巾擦拭面板时,还可能导致少部分微控制器(MCU)失控。

对于开启和关闭公寓大门的电子锁(e-lock)或户外安防面板等应用来说,这个问题往往会造成很多麻烦。除了下雨,此类应用还会受到高温和潮湿等其它恶劣天气环境的影响。而且在某些地区,诸如壁虎等昆虫和动物也会引发错误触碰,甚至有时某些特定装置还会受到由附近电机所发出的电噪声的干扰……
这些难题该如何破了?

在大约一年前,一款全新的电容式触控前端被集成到MSP430™FRAM MCU中,从而创造出了一个针对广泛电容式触控应用的单芯片解决方案。两张动图,先来简单膜拜一下它出色的灵敏性与防误触碰功能吧~

单片机控制板设计,这四点值得注意

设计电路板最基本的过程可以分为三大步骤:电路原理图的设计,产生网络表,印制电路板的设计。不管是板上的器件布局还是走线等等都有着具体的要求。

例如,输入输出走线应尽量避免平行,以免产生干扰。两信号线平行走线必要是应加地线隔离,两相邻层布线要尽量互相垂直,平行容易产生寄生耦合。电源与地线应尽量分在两层互相垂直。线宽方面,对数字电路PCB可用宽的地线做一回路,即构成一地网(模拟电路不能这样使用),用大面积铺铜。

下面这篇文章就单片机控制板设计需要注意的原则和一些细节问题进行了说明。

<strong>1.元器件布局</strong>

物联网创客指南:EFM32 MCU设计的最佳实践和除错技巧(三)

在前一节中,你了解了一些帮助你进行硬件原型设计的重要原则。在本节中,我们将分享在软件开发方面的经验教训。关键词extern,static和volatile都是什么?你应该在你的代码中使用递归还是malloc()?

根据下列重点步骤写好代码,一切都会更好!

<strong>一 查找硬件设备的现有软件示例</strong>

开发任何嵌入式解决方案的第一步是找到可以使您的任务更简单的示例。您在自定义解决方案中找到的特定部分的软件示例将帮助您以另一种方式“查看”设备,并帮助您重新解释设备规格,即使这些示例是针对其他计算机架构或软件语言的。

<strong>二 编译器的代码</strong>

一种高性能小尺寸低成本超低功耗的M3单片机解决方案

<strong>1方案说明</strong>

通过使用兆易创新(Gigadevice)型号为GD32F130G8U6的高性能32位单片机(MCU)和AmbiqMicro的超低功耗RTCAM1815来代替单颗低功耗MCU的方案。待机状态下,MCU完全shutdown,只有RTC工作,保持计时以及保存重要备份数据;工作状态下,MCU被RTC唤醒,执行程序,工作执行完毕给RTC发sleep指令,控制RTC关闭MCU电源。

RTC唤醒MCU的方式可以是IO口电平变化边沿触发,也可以是定时触发。该方案相对于单芯片方案的主要优势有以下几点。

在超低功耗MCU上实现楼宇自动化系统与KNX软件的互操作性

在规模和复杂程度不一的建筑物中,自动化系统正在变得越来越常见,其重要性也越来越高。便利性、安全和能效是推动住宅和楼宇产品智能监视和控制的关键因素。从照明到窗户百叶窗控制,到复杂的供热、通风和空调 (HVAC) 部件,以及电表计量/管理系统,住宅和商用楼宇配备了更加智能的自动化解决方案。每年,这一趋势都在促使全球范围内的厂商们在这个市场发布成千上万的产品。

一个典型的楼宇自动化系统由三个只要组件组成:传感器、一条通信通道和致动器。

单片机数字滤波的算法

单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。

在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。

<strong>采用数字滤波算法克服随机干扰的误差具有以下优点:</strong>

MCU低功耗再也不是难题,因为有这5个绝招!

低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。

平时我们在做产品的时候,基本的功能实现很简单,但只要涉及低功耗的问题就比较棘手了,比如某些可以低到微安级的MCU,而自己设计的低功耗怎么测都是毫安级的,电流竟然能够高出标准几百到上千倍,遇到这种情况千万不要怕,只要认真你就赢了。下边咱们仔细分析一下这其中的原因。

<strong>第一条:掐断外设命脉——关闭外设时钟</strong>

使用Microchip的dsPIC33EP‘GS’系列器件提升数字电源的环路增益性能

<font color="#FD8900">Microchip Technology Inc. Alex Dumais</font>

由于人们不断要求电源具有更高性能和更高功率密度,开关频率也变得越来越高, 这要求数字控制器产品顺应市场趋势的变化。Microchip 专为电源应用而设计的dsPIC33EP ‘GS’ 系列数字信号控制器就是一种典型的示例。该系列器件引入了新的性能,可缩短线性差分方程(LDE)的执行时间并减少系统的总延时。

这些性能有助于提高控制环路(1 个或多个)的采样率和减少相位损耗,从而实现环路增益性能的提升。

一文了解无人机飞行感知模块

无人机的飞行感知技术主要用作两个用途,其一是提供给飞行控制系统,由于飞行控制系统的主要功能是控制飞机达到期望姿态和空间位置,所以这部分的感知技术主要测量飞机运动状态相关的物理量,涉及的模块包括陀螺仪、加速度计、磁罗盘、气压计、GNSS模块以及光流模块等。

另一个用途是提供给无人机的自主导航系统,也就是路径和避障规划系统,所以需要感知周围环境状态,比如障碍物的位置,相关的模块包括测距模块以及物体检测、追踪模块等。

<strong>机体运动状态感知</strong>

<strong>● 陀螺仪</strong></strong>

你知道单片机的“心脏”是怎么工作的吗?

看过标题,可能很多朋友都会冒出很多疑问:单片机?单片机不是电子设计的心脏吗?它的心脏又是什么?

<center><img src="http://mcu.eetrend.com/files/2017-03/wen_zhang_/100005300-16798-0.png&q…; alt="你知道单片机的“心脏”是怎么工作的吗?"></center>

物联网创客指南:EFM32 MCU设计的最佳实践和除错技巧(二)

在本系列的第一部分中,我们介绍了修订控制系统,以及它如何安全地保存您的设计文件,并帮助您找到设计文件之间的差异。在本节的第二部分教学中,您将了解如何构建自己的硬件。

<strong>这个系列文章有六个部分:</strong>

1. 使用版本控制系统
2. 在面包板上开始开发
3. 原型构建
4. 写好代码,一切都会更好
5. 像专业人士那样构建源代码
像天才一样调试问题

<strong>开始使用面包板进行开发</strong>