LPC2000系列ARM芯片的电子琴的设计

2019-10-12来源: eefocus关键字:LPC2000系列  ARM芯片  电子琴

1.用LPC2000系列ARM芯片设计电子琴,用proteus软件仿真。
2.按下不同的按键,扬声器能够发出不同的音调。
3.用PWM控制扬声器可以实现音调的条件。

通过编程,利用按键去控制扬声器的发声。


通过小组讨论分析,结合设计电路性能指标、器件的性价比,本设计电路选择方案二。

  • 硬件设计与介绍

嵌入式的定义:

从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。


从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。


3.1 213X系列最小系统板介绍:

LPC2131/2132/2138 是基于一个支持实时仿真和嵌入式跟踪的32/16ARM7TDMI-STM CPU 的微控制器,并带有32kB、64kB、512 kB 的嵌入的高速Flash 存储器。128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 位Thumb模式将代码规模降低超过30%,而性能的损失却很小。


较小的封装和极低的功耗使 LPC2131/2132/2138 可理想地用于小型系统中,如访问控制和POS 机。宽范围的串行通信接口和片内8/16/32kB的SRAM使LPC2131/2132/2138 非常适用于通信网关、协议转换器、软modem、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。多个32位定时器、1个或2 个10 位8 路ADC、10 位DAC、PWM 通道和47个GPIO 以及多达9个边沿或电平触发的外部中断使它们特别适用于工业控制和医疗系统。


主要特性如下:

(1)16/32位ARM7TDMI-S核,超小LQFP64封装。  ??

(2)8/16/32kB的片内静态RAM和32/64/128/256/512kB的片内Flash程序存储器。128位宽度接口/加速器可实现高达60MHz工作频率。  ??

(3)通过片内boot装载程序实现在系统编程/在应用编程(ISP/IAP)。单个Flash扇区或整片擦除时间 为400ms。256字节行编程时间为1ms。  ??

(4)EmbeddedICE RT和嵌入式跟踪接口通过片内RealMonitor软件对代码进行实时调试和高速跟踪。 ??

(5)1个(LPC2131/32)或2个(LPC2134/36/38)8路10位的A/D转换器,共提供16路模拟输入,每个通道的转换时间低至2.44us。  ??

(6)1个10位的D/A转换器,可产生不同的模拟输出。(LPC2132/34/36/38)  ?? (7)2个32位定时器/外部事件计数器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看门狗。  ??

(8)低功耗实时时钟具有独立的电源和特定的32kHz时钟输入。  ??

(9)多个串行接口,包括2个16C550工业标准UART、2个高速I2C总线(400 kbit/s)、SPI和具有缓冲作用和数据长度可变功能的SSP。 ??

(10)向量中断控制器。可配置优先级和向量地址。  ??

(11)小型的LQFP64封装上包含多达47个通用I/O口(可承受5V电压)。 ?? (12)多达9个边沿或电平触发的外部中断管脚。  ??

(13)通过片内PLL(100us的设置时间)可实现最大为60MHz的CPU操作频率。  ??

(14)片内集成振荡器与外部晶体的操作频率范围为1~30 MHz,与外部振荡器的操作频率范围高达 50MHz。  ??

(15)低功耗模式:空闲和掉电。  ??

(16)可通过个别使能/禁止外部功能和外围时钟分频来优化功耗。 ??

(17)通过外部中断或BOD将处理器从掉电模式中唤醒。 ??

(18)单电源,具有上电复位(POR)和掉电检测(BOD)电路。  ??

(19)CPU操作电压范围:3.0V~3.6 V (3.3 V± 10﹪),I/O口可承受5V的电压。


3.2最小系统板结构


LPC2131/2132/2138 包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7 局部总线、与中断控制器接口的AMBA 高性能总线(AHB)和连接片内外设功能的VLSI 外设总线(VPB,ARMAMBA 总线的兼容超集)。LPC2131/2132/2138 将ARM7TDMI-S 配置为小端(little-endian)字节顺序。AHB 外设分配了2M 字节的地址范围,它位于4G 字节ARM 存储器空间的最顶端。每个AHB 外设都分配了16k 字节的地址空间。LPC2131/2132/2138 的外设功能(中断控制器除外)都连接到VPB 总线。AHB到VPB 的桥将VPB 总线与AHB 总线相连。VPB 外设也分配了2M 字节的地址范围,从3.5GB 地址点开始。每个VPB 外设在VPB 地址空间内都分配了16k 字节地址空间。


片内外设与器件管脚的连接由管脚连接模块控制。该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。


3.3 片内FLASH程序储存器


LPC2131/2132/2138 分别含有32kB、64kB 和512kB 的FLASH 存储器系统。该存储器可用作代码和数据的存储。对FLASH 存储器的编程可通过几种方法来实现:通过内置的串行JTAG 接口,通过在系统编程(ISP)和UART0,或通过在应用编程(IAP)。使用在应用编程的应用程序也可以在应用程序运行时对FLAH 进行擦除和/或编程,这样就为数据存储和现场固件的升级都带来了极大的灵活性。如果LPC2131/2132/2138 使用了片内引导装载程序(bootloader),32/64/512kB 的Flash 存储器就可用来存放用户代码。


LPC2131/2132/2138 的Flash 存储器至少可擦除/编程10,000 次,保存数据的时间长达10 年。


3.4 片内静态RAM


片内静态RAM(SRAM)可用作代码和/或数据的存储,支持8 位、16 位和32 位的访问。LPC2131/2132/2138 含有8/16/32kB 的静态RAM。

LPC2131/2132/2138 SRAM 是一个字节寻址的存储器。对存储器进行字和半字访问时将忽略地址对准,访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位0 和1,半字访问时将忽略地址位0)。

因此,有效的读写操作要求半字数据访问的地址线0 为0(地址以0、2、4、6、8、A、C 和E 结尾),字数据访问的地址线0 和1 都为0(地址以0、4、8 和C 结尾)。该原则同样用于片外和片内存储器。


SRAM 控制器包含一个回写缓冲区,它用于防止CPU 在连续的写操作时停止运行。回写缓冲区总是保存着软件发送到SRAM 的最后一个字节。该数据只有在软件请求下一次写操作时才写入SRAM(数据只有在软件执行另外一次写操作时被写入SRAM)。如果发生芯片复位,实际的SRAM 内容将不会反映最近一次的写请求(即:在一次“热”芯片复位后,SRAM 不会反映最后一次写入的内容)。任何在复位后检查SRAM 内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write)操作来保证最后的数据在复位后被真正写入到SRAM。


3.5 存储器映射概念和操作方式


LPC2131/2132/2138 的基本的概念是:每个存储器组在存储器映射中都有一个“物理上的”位置。它是一个地址范围,该范围内可写入程序代码。每一个存储器空间的容量都永久固定在同一个位置,这样就不需要将代码设计成在不同地址范围内运行。

由于ARM7 处理器上的中断向量位置(地址0x0000 0000~0x0000 001C,见表2),Boot Block 和SRAM空间的一小部分需要重新映射来实现在不同操作模式下对中断的使用,见表1。中断的重新映射通过存储器映射控制特性来实现,详见系统控制模块一节。

表1:LPC2131/2132/2138 存储器映射模式

模式

激活

用途

Boot装载程序模式

由任何复位硬件激活

在任何复位后都会执行 Boot 装载程序。Boot Block 中断向量映射到存储器的底部以允许处理异常并在Boot 装载过程中使用中断。

用户Flash模式

由Boot代码软件激活

当在存储器中识别了一个有效的用户程序标识并且Boot 装载操作未被执行时,由Boot 装载程序启动。中断向量没有重新映射,它位于Flash 存储器的底部。

用户RAM模式

由用户程序软件激活

由用户程序激活。中断向量重新映射到静态 RAM 的底部。


3.6 系统控制模块

系统控制模块功能汇总:


系统控制模块包括几个系统特性和控制寄存器,这些寄存器具有众多与特定外设器件无关的功能。

1、晶体振荡器

2、外部中断输入

3、存储器映射控制

4、PLL

5、功率控制

6、复位

7、VPB 分频器

8、唤醒定时器


每种类型的功能都有其自身的寄存器,不需要的位则定义为保留位。为了满足将来扩展的需要,无关/的功能不共用相同的寄存器地址。


表2:系统控制模块功能相关的管脚

管脚名称

管脚方向

管脚描述

X1

输入

晶振输入--振荡器和内部时钟发生器电路的输入

X2

输出

晶振输出--振荡器放大器的输出

EINT0

输入

外部中断输入0--低有效的通用中断输入。该管脚可用于将处理器从空闲或掉电模式中唤醒。

P0.1和P0.16可用作EINT0 功能。

EINT1

输入

外部中断输入1--见上面的EINT0 描述。

P0.3 和P0.14可用作EINT1 功能。

复位后管脚 P0.14上立即出现的低电平被看作是一个启动ISP 命令处理器的外部硬件请求

EINT2

输入

外部中断输入2--见上面的EINT0 描述。

P0.7 和P0.15 可用作EINT2 功能。

EINT3

输入

外部中断输入3--见上面的EINT0 描述。

P0.9,P0.20和P0.30可用作EINT3 功能。

RESET

输入

外部复位输入--该管脚上的低电平将芯片复位,使I/O 口和外设恢复其默认状态,并使处

[1] [2] [3] [4]
关键字:LPC2000系列  ARM芯片  电子琴 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic476948.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:LPC2148像往U盘拷贝文件一样更新用户程序
下一篇:基于protues arm2124仿真贪吃蛇程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

LPC2000系列Proteus仿真+代码 菜鸟的ARM学习笔记
。2. 寄存器R0-R7、R15和CPSR是所有模式共享的。R8-R12出快中断模式有RX-fiq外所有模式共享。R13、R14和SPSR只有用户模式和系统模式共享,其它都有似有SPSR。R15(PC)程序计数器R16(CPSR)程序转台寄存器R13(SP)堆栈指针P14(LR)链接寄存器ARM指令集 汇编程序设计略了,我看了,但是做Proteus仿真实验没用上,两天就忘了。LPC2000我买的3本ARM入门书籍中有两本都是以LPC2000系列为例的,其实从网上可以下载到具体LPC2XXX处理器的datasheet,上面的资料是最权威和详尽的。引脚选择PINSEL0、PINSEL1设置各个引脚的功能。中断中断的寄存器太多了,没记
发表于 2019-10-12
LPC2000系列Proteus仿真+代码 菜鸟的ARM学习笔记
LPC2200系列bootloader实现过程:
地址去,然后跳转到0x00010000地址,执行应用程序。基本原理都是这样,明白了原理,可以轻易的改为从网口,从SD卡,启动应用程序,整个移植的过程还算顺利,意想不到的顺利,我把 串门底层收发函数移植过之后,很快就能用了,不过我不满意的是“官方BOOT”的串口收发是一种阻塞方式,好象很落后了,我在 LPC1788上使用的是非阻塞的收发方式。不过官方的BOOT功能比较完善,还有几个命令,用着不错。用了半个月之后,突然发现了一个很隐蔽的问题,当我在LPC2294上加第二个网口的时候,不定时死机,单位跟踪也跟了,但是依然找 不到问题所在。在网上搜索了一下,发现有几个人遇到了类似的问题,“通过自定义的BOOTLOADER启动应用程序之后,不定时
发表于 2019-01-16
ARM7系列LPC2214芯片的调试报告
的大小等带来一个概念;基本结构下面是关于启动文件一个说明,模仿于UV3软件提供PHILIP 的LPC2000系列芯片的startup文件;在说明之前你有必要先熟悉ARM指令集,注意他的模块化的结构;VPBDIV、PLL、MAM、EMC、BCG0-3等的设置比较模式化,熟悉下datasheet说明后,比较容易设置好,要留意的就是PINSEL0-2的设置,根据自己的外部接口配置PINSEL。LPC2114启动代码的编写主要包括:    1.异常向量表的建立      2.MCU各种模式堆栈的初始化    3.系统基本的初始化工作    下面
发表于 2018-12-17
keil MDK启动文件分析---基于LPC2100系列
;;/*****************************************************************************/;/* STARTUP.S: Startup file for Philips LPC2000                              
发表于 2018-12-12
keil MDK启动文件分析---基于LPC2100系列
基于ARM7的高性能低功耗LPC2000系列微控制器应对嵌入式需求
突出特点      由于采用了ARM7TDMI-S内核,LPC2000系列MCU工作频率达60MHz,与其他8-bit产品相比具有更强的功能延展性。同时它借助片上存储器加  模块实现了“零等待访问”高速闪存功能,提高了指令执行的效率。此外,LPC2000的外设接口非常丰富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。LPC2000系列MCU应用领域非常广泛,从网络通信、  马达控制,到汽车和消费电子都适合于涉足。      嵌入式系统是面向用户、面向产品、面向应用的,它是将先进计算机技术、半导体技术和电子技术以及各
发表于 2018-04-02
基于ARM7的高性能低功耗LPC2000系列微控制器应对嵌入式需求
格罗方德:已研发12nm FinFET封装的3D Arm芯片
8月10日消息 根据外媒Tom's Hardware的报道, GlobalFoundries (格罗方德)本周宣布,已经使用其12nm FinFET工艺成功制成了高性能的3D Arm芯片。格罗方德表示:“这些高密度的3D芯片将为计算应用,如AI/ML(人工智能和机器学习)以及高端消费级移动和无线解决方案,带来新的性能和能源效率。”据报道,格罗方德和Arm这两家公司已经验证了3D设计测试(DFT)方法,使用的是格罗方德的混合晶圆对晶圆键合。这项技术每平方毫米可支持多达100万个3D连接,使其具有高度可扩展性,并有望为12nm 3D芯片提供更长的使用寿命。对于3D封装技术,英特尔去年宣布了其对3D芯片堆叠的研究,AMD也谈到
发表于 2019-08-13
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved