单片机项目开发设计 - 器件选型原则根据、常用单片机资源配置要点(GPIO、SPI、IIC、ADC)

单片机的资源配置与调度相对简单,根据详细的官方指导,以及开发设计参考(各类开发板)步骤即可;

一、单片机内核

*不同的内核有不同的性能/功耗表现,按需选择;
*内核即代表某系列的单片机;
1、简单基础单片机内核: 51、STM8、AVR、PIC、S08、430;
2、ARM Cortex系列:Cortex-M0内核是低功耗的内核;
3、ARM全系列详解: http://www.myir-tech.com/resource/448.asp
4(附)、两种逻辑电路集成器件:
    a、FPGA:基于门编程(altera、xilinux);类似:SDAM  掉电不保存;
    b、CPLD:基于块编程;类似:EEPRM FLASH 掉电保存; 
 

二、单片机选型

*市面的产品基本都是围绕这几款单片机:51(低端)、ST(中端)、ARM(高端);
1、单片机的性能;
2、单片机的自身资源是否满足项目需求,长远考虑后续的更新迭代(封装、功能)、系统升级和维护难度;
    a、内存是否足够(储存常量数组、密码等数据);
    b、I/O的数量充足;
    c、外设资源(RTC、IIC(硬件、模拟)、SPI、UART);
3、开发周期:熟悉该类型单片机的硬件与软件,可用高级语言编写和调试;
4、单片机的价格、货源、体积、封装;
 
 

三、单片机的资源配置要点

要点总结:
*单片虽然种类很多,但大同小异,掌握了产品的开发流程以及基本资源的配置方法,可以在任意平台上游刃有余;
1、涉及到多数据线、地址线的应用,尽量选择连续IO资源,这样效率会高点;
2、能够使用硬件资源的尽量使用硬件资源,提高工作效率;
3、共用中断服务函数;
4、优化等级可以提高单片机运行速度?
5、VCAP引脚为了保证内部主调压器的电压稳定;
6、时钟的重要性-保证信号的同步进行(在信号上升沿或下降沿采样);
7、mVpp   噪声波形幅度单位;
8、Vpp=Vpeak to peak 一个信号或电压源其最高和最低的电压波幅(差值);
9、JTAG功能的GPIO引脚默认是第一功能是JTAG,想使用普通IO使用,必须先关闭JTAG接口功能;
10、程序字节对齐的作用:提高运行效率,在一些内存池操作时需要采用;  (面对一些旧式CPU,要求字节对齐);
11、底层驱动尽量参考官方,切勿随意更改,产生很多隐患;
 

四、GPIO

*GPIO看似简单,但很多使用细节,注意掌握;
1、使用GPIO模式:
输入:弱上拉输入,浮空输入,消极(高阻态)输入;
输出:推挽输出,开漏输出;
 
2、真正的开漏脚:输出高电平相当于开关断开,需要外接上拉(优点:1)灌电流承受能力强;2)可以多个开漏脚连接实现线与);适合做电流型驱动(20ma);
 
3、准双向口:可输出输入高低电平;
 
4、GPIO必须开启时钟,才可以配置;
 
5、上下拉电阻
    a、单片机GPIO接上拉电阻的作用:与内部电阻并联,减少总电阻的阻值,从而使端口的电平升高,整体抬高端口的电位;
    b、单片机GPIO接下拉电阻的作用:与内部电阻串联,增加总电阻的阻值,从而使端口的电平降低,整体拉低端口的电位;
 
6、GPIO的低功耗处理:
    a、空闲IO处理(悬空处理);
    b、占用IO处理(上电开启、睡眠关闭);
    c、中断唤醒IO处理(睡眠前开启/使能中断、唤醒前禁止中断(输入模式));
    d、使用睡眠设置函数(例程);
 
7、IO口的高阻态问题
    a、数字电路概念,常用于总线的分时复用功能上(作断开作用);
    b、设置高阻态时相当于电阻无限大,该门电路放弃对输出端电路的控制;
    c、设置高阻态输入,可降低功耗,以及对前级影响;
    d、高阻态与准双向口的区别
        1)可作模拟信号输出输入,悬空时电平随外界;
            *(配置因单片机的不用而不同,AVR无高阻态;NXP可直接读端口电平;先置1后配置)
        2)准双向口只能做数字IO口输入输出,悬空时电平为1;
 
8、中断配置
    *设置优先级之前必须关闭中断,否则会导致hard fault;
    a、外部低电平有效:配置下降沿触发,上拉模式;
    b、外部高电平有效: 配置上升沿触发,消极模式;
 
 

五、ADC

1、AD满量程可能性:
      a、输入电压超过基准电压;
      b、基准电压无输入或过低;
2、AD的满量程是参考电压;
3、采样率的选择(时钟分频、采用保持时间);
4、DMA通道时可采用高速,中断采用低速;
5、IO的选择(内部有上下拉)与配置模式(消极模式);
6、电路设计(尽量以最短的距离连接);
 
 

六、IIC(半双工)

1、地址硬件移位,软件移位;
2、时序准确;
3、EEPROM发送256字节以上需要重新发送设备地址;
4、注意地址位数;
5、常用的一对多(寻地址);
6、如果SCL/SDA是开漏脚,需要给加上拉电阻;
7、先配置GPIO,再使能时钟;(BUSY位的置位问题);
8、硬件IIC开漏输出脚;
9、总线速率:有些支持100KHZ,有些支持400KHZ(10KHZ/1MHZ/3.4MH Z);
10、ST系列的IIC网上评论:
***大家都在聊IIC,我也来说说我的认为,硬件IIC在ST的设计中并无使用问题,但是存在使用便捷性问题,不知道大家是否研究过硬件IIC和模拟IIC,若从速率上比较,硬件肯定有优势,若从程序复杂度上分析,ST片子上反而是模拟的IIC比较简单,这是因为ST在IIC资源设计上有意规避了一些问题保证知识产权,引入了相当多功能位设定和事件配置,好处是通信很透明,不好的是和我们一般使用的习惯有出入,有的工程师弄了半天发现复杂度没有降低太多,索性还是用起了模拟方法,所以有的人就说ST有缺陷,实际不是缺陷,是你是否用得惯的问题。

七、SPI(全双工器件的多样性)

1、三线(MOSI=MISO或无CS)与四线(标准);
2、CPOL/CPHA模式,主与从相反的时钟信号(调试重点,不同设备必须操作在相同的模式下);
3、片选信号(低或高有效)
4、支持不同的字长;
5、只能收或发;
6、是否支持命令;
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值