聊聊曾经那些很火的单片机
01
说起单片机,肯定避不开51。记得在我上大学的时候,接触的第一款单片机就是AT89C51。
相信很多人,都是从这里入门单片机的吧?
当然,现在已经很少使用AT89C51了。但是,另外一个品牌的51单片机依旧很火,那就是STC,一款宏晶公司的51单片机。
不仅速度上来了,外设也丰富了,更主要的是价格依旧那么便宜!
据了解,最便宜的sop8单片机,连一块钱都不到!这么低的价格,你受得了吗?
不过,这需要一定的起订量。如果你只买几块、几十块玩玩,还是自己去淘宝吧,也贵不了多少钱。
当然,这个51单片机依旧是8位的,再快也快不到哪去,但还是可以干很多的事情、做很多的项目。在这里,各位大神就不要和STM32比了。
这类单片机适合做功能不是很复杂、但是量非常大的产品,主要是成本低。你想想,一块芯片省1毛钱,那么100W片省下来的钱,是不是就能买一块上海市区车牌了
还有就是51的内核,使用广泛到你无法想象,有人甚至在光驱的控制电路中找到51的内核,剩下的你就自己想吧~
02
下面,说说另外一款8位的单片机,是AVR Atmel公司的产品。
其实,我不想直接说AVR,我想说的是Arduino。Arduino绝大部分的产品,都是使用的AVR的单片机作为处理器的,甚至有的产品还会同时出现两块AVR的MCU。
比如UNOR3,使用了一个mega16U2作为USB接口芯片,mega328p作为主控芯片。我们再看看Arduino的年销量,就知道AVR单片机有多火了。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
点击这里找小助理0元领取:嵌入式物联网学习资料(头条)
03
接下来,再说说低功耗的MCU。
当年一提到低功耗,相信大家想到的绝对是MSP430。没有理由,就是省电!
但是,我不熟悉MSP430,所以这里就不多说了。以前看过一些仪表的设计方案,很多都是用MSP430做的。
先给大家上两张图:
其实,MSP432是最近才推出的一款高性能低功耗产品。
现如今,低功耗产品越来越多了,而很多公司的低功耗产品也是做得非常好,例如ST公司的STM32L系列。
实际上,这款产品的功耗已经很低了。
下面,我们再来看看应用方面。
下图是华为的荣耀手环的介绍,使用的是STM32F4。如果像手环这类对功耗要求很高的产品都可以使用,那么足以说明它的功耗确实不高。
还有这段拆解后的介绍:
以及Apple Pencil的主板:
上图是苹果的两款产品,使用的都是STM32L系列的MCU,其功耗低的可想而知。
04
接下来,我们再说说最牛X、使用最多、最广泛的MCU——STM32。
如下图所示,仅仅F1系列就包含了五个产品线:
其实STM32还有很多的系列,种类多到可以满足绝大部分的需求,并且资源丰富,易于上手。
05
除此之外,我还能想到的就是AT91s系列了。目前大多数Jlink调试器,使用的都是AT91系列的芯片。
以上就是我记忆中“曾经那些很火的单片机”了,如果有遗漏的,欢迎大家留言补充。
另外,如文中有错误,还请各位大神多多指教
原文链接:https://mp.weixin.qq.com/s/J2chgyyEqX-gjFUqrHCryw
文章转载自:单片机爱好者
文章来源于:聊聊曾经那些很火的单片机~
原文链接:聊聊曾经那些很火的单片机~
版权声明:本文来源于网络,免费传达知识,版权归原作者所有,如涉及作品版权问题,请联系我进行删除
单片机创意小制作,ARM7音乐播放器
在校学习期间,教我单片机的王老师时常提起ARM处理器。她提醒我说,我们是计算机专业的,应该研究嵌入式系统。起因是,我喜欢单片机,而单片机偏偏在我们学校是电子系的专业。把单片机玩转了,对于计算机专业的我,就显得偏离专业了。那时,我还是头脑一热,在网上买了一个AT91SAM7S64最小系统。但是,一直没有像样地玩它。只是断断续续地写了几个简单的程序,像学习51单片机一样学它。随着时间的推移,它被遗忘在一边了。不过这几天在整理零碎时,我又开始注意到它了。
这次制作的主题是——做一款能够媲美山寨CD机的音乐播放器。随着MP3、MP4、手机、PMP等便携播放器的出现,在市场上很少看到专门卖CD机的柜台了。想想也是,现在马路上很少看到有人拿个硕大的CD机听音乐。最主要的原因,估计是CD光盘尺寸偏大,携带不便,所以现在听MP3的人越来越多了。但是,不管怎样,CD的音质还是相当好的。还记得去年,我制作了一款M8音乐播放器,朋友听了后,直接评价那音质不行。我解释说,那是8位的播放器,还是被他鄙视了。太伤我心了。于是,我又琢磨着做一款新的播放器,希望它超过普通MP3的音质。这回做好后,又特意给那位朋友试听了一下,这次他评价说,这音质的确超过普通MP3了。下面我会和大家分享制作它的过程。
主要芯片介绍
这次制作的音乐播放器使用了TI公司的PCM1770,它是24位低功耗立体声音频DAC。由于它能够直接驱动耳机,所以选择它作为音频解码器。当耳机的阻抗为16Ω时,它的输出功率为13mW。PCM1770使用的电源范围为1.6~3.6V,支持标准的I2S音频接口。对DAC的操作是通过SPI接口实现的。它的音量也由软件控制,音量控制一共分为64个等级。
电路的处理器使用Atmel公司的AT91SAM7S64。它有64KB的FLASH程序存储器,16KB的内部SRAM,是高性能的32位RISC架构的ARM7处理器,最高工作频率可达55MHz。它一共有64个引脚,PIO控制的I/O驱动电流可以达到8mA,PA0~PA3可以达到16mA,但所有I/O电流之和不能超过150mA。这款处理器具有SSC同步串行控制器,支持I2S标准,也有SPI接口,可以设定8到16位的数据长度,每个SPI接口有4个片选线。这样,处理器与DAC解码器的数据传输、控制命令的发送都可以在硬件上连接实现。
可实现功能
这个制作完成后,将CD音质的WAV文件复制到SD卡内,文件必须存放在根目录下。程序通过AT91SAM7S64的SSC串行控制器,把音频的数据流通过SSC接口传输到TI的音频DAC上。这样,耳机就播放出动听的音乐了。播放器使用普通的微动按钮控制,一共用了5个按钮,分别实现音量、选曲、播放、暂停等控制。
工作原理
整个制作,由图11.1所示的AT91SAM7 S64 最小系统(左边)、洞洞板(中间)和转接成DIP封装的PCM1770 DAC(右边)组成。
图11.1 制作所需的各部分实物
这款音乐播放器的工作原理并不复杂。主要由5大部分组成:
(1)AT91SAM7S64最小系统,比51单片机最小系统稍微复杂些。
(2)PCM1770 I2S音频解码器,用于驱动耳机或音响,播放音乐。
(3)SD卡存储卡,存放44.1kHz/16位的WAV格式的音乐文件。
(4)5个普通的微动按钮,功能分别为:控制音量、前后选择音乐和播放/暂停音乐。
(5)简单的用稳压芯片将5V的USB电源转换成3.3V的电路工作电源。
音乐播放器的原理图如图11.2所示,可分为5大部分:左上角为稳压电路,左下角为5个微动按钮,右上角为SD卡,右下角为TI的音乐DAC芯片,中间的就是AT91SAM7S64的最小系统了。
1.稳压电源
图11.2 电路原理图
它使用1117-3.3V的稳压芯片,把USB接口的5V电源转换成3.3V。4个电容起到滤波作用。稳压芯片可以采用SPX1117-3.3V、LM1117-3.3V或AMS1117-3.3V。如果使用有极性的电解电容,不要粗心地把正负极性弄反。
2. 5个微动按钮
这5个微动按钮排列成经典的上下、左右、中间的十字结构,它的控制功能大家很容易理解,分别是上下为音量控制、左右为切换歌曲控制、中间为暂停/继续播放控制。
3. SD 卡
使用了它的SPI接口,直接和ATM7的SPI接口的NPCS0、MOSI、MISO、SPCK连接,在程序中我使用了系统时钟16.9344MHz作为SPCK时钟,这样它的传输速率才可以超过CD音乐格式标准的数据流速度。
4. TI的DAC
这是这个系统最关键的地方,它需要SPI接口控制它,同时又需要I2S接口给它提供数据流。它的SPI控制接口与AT91SAM7S64的NPCS1、MOSI、MISO、SPCK引脚相连,程序通过拉低 NPCS0 与 NPCS1 这两个引脚来片选 SD 卡或 DAC 芯片。在传输数据时,可以拉低不同的片选信号来指定传输的方向。DAC的LRCK、DATA、BCK接口分别与RAM7的TF、TD、TK连接。但由于DAC芯片还需要系统时钟,它可以是128fs、192fs、256fs或384fs(fs为音乐的采样率,如44.1kHz采样率)。所以,我通过ARM7的PCK0引脚输出384fs频率的时钟。最后,还可以通过控制DAC的PD引脚为0,让DAC休眠,减低它的功耗。
5. AT91SAM7S64 最小系统
正确连接好处理器各内部控制器的电源,如VDDFALSH、VDDIO、VDDCORE、VDDPLL等,确认USB的D+上拉电阻到3.3V。在播放44.1kHz音乐时,确认使用的是16.9344MHz晶体(在下载程序时使用18.432MHz)。最后,在AT91SAM7S64的PLL RC引脚上连接 PLL滤波用的电容。这样,ARM7上电后就能运行代码了。
AT91SAM7S64的电源系统比较复杂,但还好仅仅需要单一的3.3V电压,即可解决所有供电问题。电源使用USB的5V电压,经过1117-3.3V稳压芯片稳压,然后给DAC、AT91SAM7S64、SD卡供电。AT91SAM7S64还需要1.8V的电源电压,好在它内部集成的电压调节功能,能输出1.8V电压。
AT91SAM7S64处理器只要正确连接好需要的2种电源电压(3.3V、1.8V),焊接上18.432MHz的外部晶体,并且连接上简单的USB接口电路,在物理上就能够下载程序了。注意,当使用18.432MHz的外部晶体时,烧录文件才能通过USB接口下载。但由于音乐播放器需要16.9344MHz的外部晶体,才能以正常的速率播放CD采样率(44.1kHz)的音乐。因此,下载好程序后,还需要切换晶体。这一步麻烦些。
程序首先初始化AT91SAM7S64的SPI接口和SSC接口,并使能PIOA引脚(连接按钮的引脚)和SSC接口(I2S接口)的中断。等初始化接口完毕后,程序才能通过已经正确配置的接口,初始化音频DAC、SD卡设备。等这些操作完成后,程序会通过读取SD卡的特定扇区,识别文件系统种类,并搜索根目录下的第1个音乐文件。最后,通过按钮控制,实现音乐的播放。
使用方法
先要格式化SD卡,使用FAT(FAT12与FAT16的合集)或FAT32都可以。然后,复制44.1kHz、16位的WAV音乐到SD卡上(注意,请复制到根目录)。插上USB电源后,按中间的播放/暂停按钮播放音乐(音乐播放器在上电时不能自动播放,还需要按下播放/暂停按钮才能播放)。
烧录文件的下载与使用
1. 引导代码简介
AT91SAM7S64内部含有一段叫SAM-BA BOOT的程序,它在出厂时已被固化,不会被擦除,也不会被改变。在特定的条件下,它会被复制到内部Flash中,这个复制的过程叫系统程序恢复。系统程序恢复后,下一次上电或手动复位时,SAM-BA BOOT代码就会运行了,它使用片上集成的USB或DEBUG串口与上位机通信,实现自编程。
2. 恢复启动代码
在PA0、PA1、PA2、TST这4个引脚保持高电平的状态下,上电并等待10s。由于上电时PA0、PA1、PA2默认上拉电阻使能了,所以这3个引脚可以悬空。而TST引脚内部下拉电阻使能,因此需要通过外部电路将TST引脚拉高。
10秒后当芯片再次上电时(记得恢复TST引脚为低电平),就会运行SAM-BA BOOT程序了。这时,把芯片的USB接口连接上电脑,电脑上就会发现新硬件,并自动安装驱动。当然,前提是你在电脑上已经安装了SAM-BA ISP下载软件。
3. 关于 ERASE 引脚
上电时ERASE引脚的上拉可以用来擦除内部Flash的安全位,并且会在50ms的时间内完成。它的作用是使整个内部Flash存储器的内容被清除掉。当完成这些操作后,安全位才会清除。
当你使用SAM-BA对器件编程后,执行了Enable Security Bit操作,即编程了Flash安全位,那么下一次恢复系统程序前必须拉高ERASE引脚。
4. SAM-BA 软件使用
首先,安装SAM-BA ISP软件,它会连同驱动一起安装的。这样,当把已经恢复启动代码的ARM7插入USB接口时,驱动即可自动安装,并在设备管理器里多出如图11.3所示的设备。
然后,双击软件运行,出现图11.4所示的运行画面。选择图11.4所示的连接方式“\usb\ARM0”和开发环境“AT91SAM7S64-EK”后,按“Connect”后连接。接着,烧录软件的主界面就会跳出,如图11.5所示。
图11.3
图11.4
图11.5
然后,点击“Send File”按钮,选择烧录用的BIN文件。最后,点击“Send”发送即可。期间会弹出扇区解锁确认和扇区锁定确认对话框,点击“Yes”即可。
几秒后,程序就烧录完毕了。重新上电后,音乐播放器的代码就能成功运行了。
制作简介
其实,整个制作对刚学习ARM7处理器的人也不难。买一个AT91SAM7S64的最小系统,它的32个PIO口一般都会引出来的,并用插针连接。只需要自己做底板,焊接好插座,就能方便地合并了。
我做的这个底板是用万用板制作的,尺寸大约是10cm×10cm。仔细观察的朋友,还会发现,这个底板的功能不仅仅是特意用来做音乐播放器的,还可以做许多关于ARM7的小实验。
底板的反面我用绝缘导线连接线路,这也是我目前喜欢的做法(见图11.6)。如果觉得难看,大家还可以自制PCB的底板,这样也能轻松焊接。
为了使自己的制作更美观,我又在网上买了片1.8mm厚的有机玻璃板。用小锯切割成10cm×10cm大小后,用砂纸仔细打磨。打磨好后在合适的位置上钻孔,最后用2mm的螺丝和对应的铜座固定,这个制作的外观就完成了(见图11.7)。
大家会发现制作的正面还有一根飞线,这是由于我买的最小系统,3.3V的电源插针没有向下引出,只好拿了条杜邦线连接到底板了。
图11.6 用绝缘导线连接底板背面的线路
图11.7 用有机玻璃制作播放器的外壳
相关问答
单片机 sfr定义?P0~P3、PSW、ACC等这些寄存器在sfr中的地址,是intel设计MCS-51单片机时就定下的。后来许多厂家生产51单片机时都沿用了这定义,以保证程序的兼容性。至于如下的...
有哪些可以接 单片机 嵌入式私活的平台,求大神指教 - 懂得你可以去单片机的一些论坛看看,比如这里:单片机论坛
单片机 串口通信原理我有一个8255的0-99的计时的,不知道对你有没有帮助;164串并转换程序,00~99循环显示;DCLK----PC0,DIN----PC1;FUNCTIONCODEMY_STACKSEGMEN...
单片机 中调整指令:DA A是什么意思?BCD码转换指令;比如说:81D+91D=172D而:81H+91H=112H这里为了将81H+91H结果与81D+91D一致,经过DA有:DA(112H)=112H+60H=172H虽然一个是16...
单片机 按键减一程序[最佳回答]给的程序不够完整,无法回答你的问题。大概是下面这样的。1、gr--;//个位减2、if(gr==0)//判断个位是否减到03、{4、sr--;//如果个位减到0后让...
【求助会keil和51 单片机 的大神,写一段数码管程序板子上选择...[最佳回答]#include"reg51.h"#defineucharunsignedcharuchardisplay_code[]={0xC0,0xF9,0xA4,0xB0,0x9...
基于 单片机 的数字钟 论文设计[最佳回答]ORG0000H;程序入口地址LJMPSTARTORG000BH;定时器0中断入口地址LJMPTIMER_0ORG0300HSTART:SETB48H;使用一个bit位用...
问两个关于 单片机 汇编指令的题!1、若A=78H,R0=34H,(34H)=DCH...[最佳回答]1(1)A=ACH,Cy=0;(2)A=54H,Cy=1;(3)A=23,Cy=1;(4)A=CE,Cy=0;2(1)~~~~~~~~~~太多了没耐心写下去了,挺简单就是按位与然后把结果存放到前面的变...
电气自动化技术是什么?主要在哪方面就业? - 懂得◆◆学生在校期间学习的主要课程有:电路、电机、电力电子技术、计算机软件技术、单片机原理及应用、电力系统、发电厂电气部分、变电站综合自动化、...
电子工程专业有哪些对口的实习可以做? 申请方[回答]电子工程专业的学生在本科期间想要找完全对口的实习还是有一定难度的~但是我们还是可以找到一些相对没那么专业的实习~题主可以试试下面几类实习:1...