跳转到主要内容

技术

如何编写高效率稳定的单片机代码

能同电脑的性能是天渊之别的,无论从空间资源上、内存资源、工作频率,都是无法与之比较的。PC 机编程基本上不用考虑空间的占用、内存的占用的问题,最终目的就是实现功能就可以了。对于单片机来说就截然不同了,一般的单片机的Flash 和Ram 的资源是以KB 来衡量的,可想而知,单片机的资源是少得可怜,为此我们必须想法设法榨尽其所有资源,将它的性能发挥到最佳,程序设计时必须遵循以下几点进行优化:

1.使用尽量小的数据类型

能用unsiged就不用signed;
能用char就不用int;
能不用floating就不用。
能用位操作不用算数。

2.使用自加、自减指令

单片机中三极管的应用

三极管在数字电路里的开关特性,最常见的应用有 2 个:一个是控制应用,一个是驱动应用。所谓的控制就是如图 3-7 里边介绍的,我们可以通过单片机控制三极管的基极来间接控制后边的小灯的亮灭,用法大家基本熟悉了。还有一个控制就是进行不同电压之间的转换控制,比如我们的单片机是 5V 系统,它现在要跟一个 12V 的系统对接,如果 IO 直接接 12V电压就会烧坏单片机,所以我们加一个三极管,三极管的工作电压高于单片机的 IO 口电压,用 5V 的 IO 口来控制 12V 的电路,如图 3-8 所示。

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

本系列设计指南的第五篇文章将教您如何像Pro一样构建源代码。在Simplicity Studio中构建代码是很简便的,因为安装程序会为您设置所有内容,您可以在安装程序完成后几分钟内开始调试项目。但不要过分依赖构建工具。这些工具不能代替你完成所有工作,而且您可能对这些工具感到失望。把C语言转换为二进制,然后写到你的MCU这一过程背后有许多步骤。

<strong>1 不要忘记复制或连接emlib文件</strong>

MCU制造商必需掌握的7种攻防技术,原来黑客是这样使坏的···

来源:芯师爷

今天跟大家分享一篇高科技含量的文章,主要讲解各种MCU的攻防技术,相信能给志在研究MCU防护的同学,很多参考思路。这篇文章来自俄国人Sergei P.Skorobogatov就读英吉利剑桥大学之博士论文,真可以称为一部小百科全书。

<font size="4" ><strong>■ 什么是非侵入式攻击? </strong></font>

32位嵌入式处理器与8位处理器应用开发有什么不同?

ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经成为嵌入式应用和设计的主流。与国内大量应用的8位单片机相比,32位的嵌入式CPU有着非常大的优势,它为嵌入式设计带来丰富的硬件功能和额外的性能,使得整个嵌入式系统的升级只需通过软件的升级即可实现。而8位处理器通常受到的64K软件限制也不存在了,设计者几乎可以任意选择多任务操作系统,并将应用软件设计得复杂庞大,真正体现“硬件软件化”的设计思想。

8位或32位?看完这篇你就知道该怎样选MCU了

本文比较了8位元MCU和32位元MCU的使用案例,可作为如何选择这两种MCU架构的指南使用。

本文大部分32位元范例将关注于ARM Cortex-M装置,Cortex-M在不同MCU供应商产品组合中表现非常相似。由于8位元MCU有很多种架构,所以很难对8位元供应商之间进行类似的产品比较。为了进行比较,本文将使用广泛应用、易于理解的8051 8位元架构。

事实上,「ARM Cortex和8051哪个比较好」不是个逻辑问题,反而像是在问「吉他和钢琴哪个好」?真正要解决的问题是「哪种MCU最能帮助解决目前面临的问题?」。

不同的任务须使用不同的工具,使用者目的是要了解「如何才能善用所拥有的工具」,包括8位元和32位元装置。

开关电源PCB设计要点

PCB设计是开关电源设计非常重要的一步,对电源的电性能、EMC、可靠性、可生产性都有关联。当前开关电源的功率密度越来越高,对PCB布局、布线的要求也越发严格,合理科学的PCB设计让电源开发事半功倍,以下细节供您参考。

<strong><font size="4" color="blue"> 一、布局要求</font></strong>

PCB布局是比较讲究的,不是说随便放上去,挤得下就完事的。一般PCB布局要遵循几点:

1、布局的首要原则是保证布线的布通率,移动器件时注意飞线的连接,把有连线关系的器件放在一起。

Keil常见错误/警告及解决方法

keil 是使用比较广泛的单片机开发环境,在使用的过程中,工程编译完毕后可能会出现错误或者警告。对于错误必须要改,但是对于警告而言,你可以忽略。但值得一提的是,搞技术的人多多少少都有点强迫症,如果把警告在那里放着,你看着肯定不舒服,对于经常出现的警告和错误我大体总结了一下,希望对大家能有所帮助。

1. Warning 280:’i’:unreferenced local variable
说明 局部变量 i 在函数中未作任何的存取操作;
解决方法 消除函数中 i变量的声明;

高效率、低功率转换 IC 提高可穿戴设备性能并改善生活工作条件

<strong>背景信息</strong>

可穿戴设备不再仅是在炫酷的科幻电影中才能看到的东西 (感谢《007》、《少数派报告》、《至尊神探》这些电影!),使用可穿戴设备也不再只是梦想,可穿戴设备已经蔚然成风。

最初,可穿戴设备很简单,例如走路或跑步计步器。不过,经过短时间后,可穿戴设备就变得比较先进了,或者说更加智能了,包括更加重视外观设计而不是只重视功能,因此增大了这类设备的总体吸引力。

从智能服装、谷歌眼镜、先进的健身活动跟踪器、虚拟现实设备、夜视设备到平视显示器,可穿戴设备已经成为主流消费、军用和工业市场的组成部分。“可穿戴设备”可定义为用户可以长时间穿戴的产品,而且由于穿戴了这种产品,用户体验以某种方式得到了提升。“智能的”可穿戴设备增加了连接功能和独立的数据处理功能。

单片机程序跑飞 如何是好

单片机程序死机,跑飞了可以从以下几个方面查找原因:

<strong>1</strong>
意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;

<strong>2</strong>
中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。

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

来源:SiliconLabs微信公众号

在上一节中,您了解了一些软件开发的基本实践和提示。我们在本节继续讨论这些主题,包括内联函数,读取和写入闪存(包括用户页面闪存),以及如何避免缓冲区溢出。我们将讨论类型转换的潜在问题,以及如何在出现问题时用配置锁解决问题。

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

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

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

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

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

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

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

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

来源:嵌入式资讯精选

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

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

如何在车库门应用中使用单相交流感应电机和8位单片机完成低成本设计和分析

对用于开启车库门等应用的小型交流感应电机而言,使用三相逆变器电路可以极低的成本实现速度控制和软启动。这些固定分相电容式(PSC)电机在所有电机类型中可谓是最简单的,也是上述应用领域使用最广泛的电机类型。它们的启动转矩和启动电流都小,但可能会因为采用无极性电容而效率低下,这些电容往往在电机中最先损坏。

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

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

对电磁干扰的设计我们主要从硬件和软件方面进行设计处理,下面就是从单片机的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>