demi的博客

单片机开发中应掌握的基本技巧

demi的头像

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,现根据论坛中的讨论归纳出单片机开发中应掌握的几个基本技巧。

一、如何提高C语言编程代码的效率

邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”21ic基础知识

他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。“对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。

虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。”

二、如何减少程序中的bug?

PCB中常见错误大全!

demi的头像

原理图常见错误

1)ERC报告管脚没有接入信号:
a. 创建封装时给管脚定义了I/O属性;
b. 创建元件或放置元件时修改了不一致的grid属性,管脚与线没有连上;
c. 创建元件时pin方向反向,必须非pin name端连线;
d. 而最常见的原因,是没有建立工程文件,这是初学者最容易犯的错误。

2)元件跑到图纸界外:没有在元件库图表纸中心创建元件。

3)创建的工程文件网络表只能部分调入pcb:生成netlist时没有选择为global。

4)当使用自己创建的多部分组成的元件时,千万不要使用annotate.

PCB中常见错误

1)网络载入时报告NODE没有找到:

a. 原理图中的元件使用了pcb库中没有的封装;
b. 原理图中的元件使用了pcb库中名称不一致的封装;
c. 原理图中的元件使用了pcb库中pin number不一致的封装。如三极管:sch中pin number 为e,b,c, 而pcb中为1,2,3。

续流二极管的相关知识

demi的头像

概述

我们通常所说的“续流二极管”由于在电路中起到续流的作用而得名,一般选择快速恢复二极管或者肖特基二极管来作为“续流二极管”,它在电路中一般用来保护元件不被感应电压击穿或烧坏,以并联的方式接到产生感应电动势的元件两端,并与其形成回路,使其产生的高电动势在回路以续电流方式消耗,从而起到保护电路中的元件不被损坏的作用。

续流二极管(flyback diode),有时也称为飞轮二极管或是snubber二极管,是一种配合电感性负载使用的二极管,当电感性负载的电流有突然的变化或减少时,电感二端会产生突变电压,可能会破坏其他元件。配合续流二极管时,其电流可以较平缓的变化,避免突波电压的发生。

作用

精辟!ARM内核和架构是什么关系?

demi的头像

ARM产品越来越丰富,命名也越来越多。很多朋友提问: ARM内核和架构都是什么意思?内核和架构的关系是什么?比如ARMv7架构,这个架构指的是什么?小编选给大家整理了几个专业的概念!希望对嵌友们在选择设计电路时有所帮助~

1. ARM内核:从ARM7、ARM9到Cortex-A7、A8、A9、A12、A15再到Cortex-A53、A57等,总之不同版本 ARM 有不同的想法。比如为高速度设计的Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是内核,后者是指令集的架构。

2. ARM的架构都是基于RISC指令集而架构的,而其内核只是实现这一指令集的硬件架构的基础,Thumb-2指令集架构(ISA)的子集,包含所有基本的16位 和32位Thumb-2指令、 哈佛处理器架构,在加载/存储数据的同时能够执行指令取指,带分支预测的三级流水线等。

3. 好比你盖房子,刚开始因为水平低流行盖平房,这就是一种架构(V5T),然后这种平房架构你可以设计出一款独立卫生间的款式, 这叫ARM7内核。 然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖,接着过一段时间,有人觉得光独立卫生间还不够啊, 我还想有个小院子! 好吧,那ARM就满足你们的要求,出个带小院子的款式(ARM9)。

电源适配器能够实现的五大核心功能

demi的头像

电源适配器在居民生活中使用非常广泛,从80年代的稳压器到现在笔记本电脑的充电器都可以称得上是电源适配器,随着科技的发达,现在的电源适配器逐渐越来越小,其能提供的功能却没有改变,在此为大家介绍电源适配器能够实现的五大核心功能。

在介绍前需要明确电源适配器的原理,其和开关电源并无多大区别,主要是调整输入输出电压和滤波去杂质而适用的设备,我在这里也会通过笔记本的电源适配器为大家做一个简要的功能说明:

1. 就是调整输入输出电压,笔记本电脑的电源适配器可以应对于100V—240V的电压区间,也就是无论您身在何处,笔记本电脑都是可以即插即用的,不需要电源转换器;

2. 其输出的电压是按照笔记本大小及电容量的要求的,一般会选择数安到数十安不等,但是规格还是按照屏幕越大其电量耗费越多;

3. 就是保护电脑元件,如果没有电源适配器,笔记本直接插到插口中使用将会烧坏原件和电池,其主要原因是负载等问题,而电源设配器也就是将电流控制在笔记本要求的电量负荷内,保证其在正常使用的过程中不因为电量负载带来安全隐患;

WIFI与无线局域网到底有什么不同?

demi的头像

WLAN max(加天线)可以达到5KM ,不能比较WIFI。IEEE8021B和8021B是两个不同的标准。IEEE802.11a标准是IEEE802.11b的后续标准,其原始设计是取代802.11b标准。 但是,它不需要许可证即可在2.4 GHz频段工作,但它需要许可才能在5.15-8.825 GHz频段工作。

WLAN定义及特点

WLAN是无线局域网的缩写,它指的是无线通信技术应用于互连计算机设备,形成可以相互通信并实现资源共享的网络系统。 WLAN的本质特征是,它不是使用通信电缆将计算机连接到网络,而是通过无线方式连接它们,这使得网络的构建和终端的移动更加灵活。

WLAN通信系统作为有线LAN以外的另一种选择一般用在同一座建筑内。WLAN使用ISM(Industrial、Scientific、Medical)无线电广播频段通信。WLAN的802.11a标准使用5GHz频段,支持的最大速度为54Mbps,而802.11b和802.11g标准使用2.4GHz频段,分别支持最大11Mbps和54Mbps的速度。

单片机学习四步走:不要让你的优势变为劣势

demi的头像

如何学习单片机的问题,我设计的这四个步骤,并不是拍拍脑袋想出来的,而是根据很多的学习经验以及教学经验总结出来的一套非常科学的学习方法,下面我就简单谈谈为什么要按照四步走学习。

单片机难不难学?编程难不难?

2017年参加单片机编程大赛的编程组最小年龄14岁,初级组装组最小年龄8岁。诸位单片机学习者,自问一下自己几岁了,不管从学习能力还是理解能力,我想同学们都是超过这些参赛的孩子了吧。可是为什么他们能学会,我们反而学起来困难呢?

问题就是在于你的优势,就是你的劣势。

一、鹦鹉学舌

一个10岁的孩子,刚开始学习语文,数学的时候,通常就是学习背诵,学习乘法口诀,反反复复不断的练习。我上小学的时候,三年级这一年开始学习复杂的汉字,学习数学四则混合运算,一个学习不知道要反复背诵多少遍诗词,不知道练习多少道数学题。尤其是学数学的时候,考试都会有一张演算纸,允许数学进行验算,最终在考卷上写答案。

因此第一步:鹦鹉学舌,其实说白了就是背诵。因为单片机对你来讲,完全是全新世界,和一个10岁的小孩上三年级学语文数学没有太大区别。

关于PCB拼板的十点注意事项

demi的头像

下面罗列出10条PCB拼板需要注意的事项,欢迎大家指正:

1、PCB拼板的外框(夹持边)应采用闭环设计,确保PCB拼板固定在夹具上以后不会变形;

2、PCB拼板宽度≤260mm(SIEMENS线)或≤300mm(FUJI线);如果需要自动点胶,PCB拼板宽度×长度≤125 mm×180 mm;

3、PCB拼板外形尽量接近正方形,推荐采用2×2、3×3、……拼板;但不要拼成阴阳板;

4、小板之间的中心距控制在75 mm~145 mm之间;

5、设置基准定位点时,通常在定位点的周围留出比其大1.5 mm的无阻焊区;

6、拼板外框与内部小板、小板与小板之间的连接点附近不能有大的器件或伸出的器件,且元器件与PCB板的边缘应留有大于0.5mm的空间,以保证切割刀具正常运行;

7、在拼板外框的四角开出四个定位孔,孔径4mm±0.01mm;孔的强度要适中,保证在上下板过程中不会断裂;孔径及位置精度要高,孔壁光滑无毛刺;

8、PCB拼板内的每块小板至少要有三个定位孔,3≤孔径≤6 mm,边缘定位孔1mm内不允许布线或者贴片;

单片机与PLC有什么区别?

demi的头像

要搞清楚单片机与PLC的异同,首先得明确什幺是单片机,什幺是PLC。对此,我们简要回顾一下计算机的发展历程也许有帮助,按计算机专家的原始定义,计算机系统由五大部分--即控制单元(CU)、算术运算单元(ALU)、存储器(Memory)、输入设备(Input)、输出设备(Output)组成。

早期计算机(晶体管的或集成电路的,不包括电子管的)的CU或ALU由一块甚至多块电路板组成,CU和ALU是分离的,随着集成度的提高,CU和ALU合在一块就组成了中央处理单元(CPU),接着将CPU集成到单块集成电路中就产生MPU或MCU,出现了如Intel4004、8008、8080,8085、8086、8088、Z80等MPU。

此后,MPU的发展产生了两条分支,一支往高性能、高速度、大容量方向发展,典型芯片如:Intel80186、286、386、486、586、P2、P3、P4等,速度从4.7MHz到现在的3.2GHz。另一支则往多功能方向发展,将存储器(ROM、PROM、EPROM、EEPROM、FLASH ROM、SRAM等)、输入/出接口(Timer/Counter、PWM、ADC/DAC、UART、IIC、SPI、RTC、PCA、FPGA等)全部集成在一块集成电路中而成为SOC(System On a Chip)。

嵌入式开发八大入门的知识点

demi的头像

1、C语言

嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。

2、Linux基础

Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。

3、Linux系统编程

重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。

页面

订阅 RSS - demi的博客