LPC1114_1MHz功耗测试报告
- 格式:pdf
- 大小:508.87 KB
- 文档页数:8
第二部分新建工程与下载程序LPC1114的开发环境有很多种如keil4、IAR、NXP公司的LPCXpresso,也包括周立功公司的TKStudio。
本教程就以最常用的Keil4.11开发环境的使用、新建工程、仿真设置及程序下载作介绍。
八、安装Keil4.11软件1.打开keil4.11的安装程序,点击"Next",出现如下图所示:十一、选择同意打勾,点击"Next"如下图所示3.点击"Next"后出现如下图所示,选择需要的安装路径4.点击"Next"直到安装结束5.使用MDK411注册机破解Keil4,破解方法请参考网络二、设置keil与仿真器的连接在安装完keil4后,下面就介绍怎样新建工程,方法其实大家都很熟悉的,和51单片机一样。
四、打开keil4,选择"project->CreateNewproject",并输入文件名,选择保存路径。
五、我们这里使用的是LPC1114芯片,在这里选择NXP的芯片"LPC1114x301",选择正确的芯片后,点击确定。
如下图所示:2 3.在确认后出现如下提示框,是否加载LPC11xx的启动文件,在这里我们点击“是”。
1 4.在Target1->SourceGroup中添加main.c文件,右击Source,点击"AddFilestoGroup",也可以添加Group进行代码分组管理,使代码结构更有条理。
2 5.对keil文件输出及仿真设置,点击来对keil进行设置,通过设置,keil在编译后可以输出hex文件,用于下载到MCU。
在LPC1343芯片中,可以需要通过设置输出bin文件用于USBISP下载,在此不作介绍。
6.Jlink 在keil4中的设置,首先需要在电脑上安装Jlink的驱动软件V4.14版本,安装方法,在这里省略。
PC1114 实验教程来自NXP的ARMCortex-M0内核MCU;贞明电子实验板和ZLG教程全程助学;主频50MHz的32位微处理器让你更好的完成应用;32KFlash8KRAM以及全方位的片上外设让你的系统更简洁;良好的下载和调试方式和堪比8位MCU的价格让你使用更方便;电子让生活更美好!天下的人&&贞明电子2011年1月16日写在前面自从LPC1768教程推出以来,受到不少网友的鼓励和支持。
因此,本人再次决定参照我设计的ARMCortex-M0实验板写一个教程,实验板采用底板+小板的方式,使得系统支持LPC1100系列,新塘M051系列和LPC1300系列的MCU。
由于支持型号众多,在此统一以LPC1114为基础撰写,有不同的地方随时指出来,以便区分。
虽然本教程是配套实验板写的,但是在本教程以及其他地方都会公布原理图,这样不但让大家知其然还要知其所以然。
因此不拥有开发板自己搭建系统同样能够好好的学习!这样方便了一些囊中羞涩的学生朋友。
如果你有足够的精力和时间完全可以自制一套LPC1114系统板,我在这里先鼓励辛苦的你了!下面介绍一下我们的主角吧,请我们的LPC1114隆重登场,LPC1114拥有领先的ARMCortex-M0内核,以及NXP公司先进的制造工艺和强悍的外设,当然也少不了一条超低的价格哟(小声的说----目前的价格貌似在12RMB哟)!LPC1100系列Cortex-M0微控制器是为嵌入式系统应用而设计的高性能、低功耗的32位微处理器。
它是市场上定价最低的32位微控制器解决方案。
主频高达50MHz,支持睡眠、深度睡眠和深度掉电3种低功耗模式。
同样还拥有丰富的外设,高达32KB片内flash,8KB片内ram,一路IIC、一路RS485、8通道10位ADC、两路SSP、4个通用定时器、多达42个IO口。
好了、LPC1114就介绍这么多,下面介绍一下开发板支持的LPC1343,其实LPC1343和LPC1114的封装和管脚以及片内的外设都兼容,所以说如果会了LPC1114几乎也就会了LPC1343,LPC1343是ARMCortex-M3内核,主频72MHz,除了拥有LPC1114有的所有片内外设以外,LPC1343还拥有USB接口,而且这个USB接口内置固化驱动,号称是业界最简单的MCU内置USB。
LPC1114/LPC11U14和LPC1343对比学习(三)
SysTick
从Cortex 开始ARM 公司在内核中添加SysTick,为系统运行提供了便捷。
通过学习这三种处理器的结构和寄存器可知,这三种SysTick 的结构和寄存器都是一样的完全兼容,SysTick 的结构如下:SysTick 寄存器如下:对于SysTick 的控制有两种方法,由于SysTick 是内核的一部分,所以在ARM 公司推出的Cmsis 文件中已经提供了对SysTick 控制的API 函数。
为了方便可以直接调用此函数;当然我们也可以直接控制寄存器,两种控制的代码如下:
通过上面的初始化SysTickInit()函数后,24 位的SysTick 定时时间到后,就会跳转到SysTick 中断服务函数。
我们只有通过计数器判断次数就可以实现精确延时了。
实现精确延时:
tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
LPC1114/LPC11U14和LPC1343对比学习(四)定时器
这三种芯片都有2 个16 位的定时器和2 个32 位的定时器。
这4 个定时器的功能都非常强大,不在是像8051 一样,只有定时与计数功能。
除了这两个
强大的功能外,还添加了匹配输出,捕获输入,PWM 输出等。
在这里我们只
学习它们最基本的定时功能,对于其他功能就不作介绍。
在PWM 模式下,2
个32 位可编程定时器/计数器均有3 个匹配寄存器用于提供单边沿的PWM 输出,剩下的那个匹配寄存器则用于控制PWM 周期长度。
在PWM 模式下,16 位定时器0(CT16B0)与32 位定时器相同,而16 位定时器1(CT16B1)只有其中的两个匹配可用于向匹配输出管脚提供单边沿的PWM 输出。
在这4 个定时器中,基本操作是一模一样的,所以在下面我们只拿一个定时
器作为实例进行说明,对于其他定时器,只需要把寄存器名称改成相应的寄存
器就可以了。
1.32 位定时器/计数器特性两个32 位的定时器/计数器,各带有一个可编程的32 位预分频器;
计数器或定时器操作;
一个32 位的捕获通道可在输入信号跳变时捕捉定时器的瞬时值。
捕获事件
也可以产生中断;
4 个32 位匹配寄存器,允许执行以下操作:
-匹配时连续工作,在匹配时可选择产生中断;
-在匹配时停止定时器运行,可选择产生中断;
-在匹配时复位定时器,可选择产生中断。
有4 个与匹配寄存器相对应的外部输出,这些输出具有以下功能:
-匹配时设为低电平;。
LPC1114 IAP在线升级IAP(In Application Program),即在应用中可编程。
顾名思义,就是在系统运行的过程中动态编程,这种编程是对程序执行代码的动态修改,而且毋须借助于任何外部力量,也毋须进行任何机械操作。
这一点有别于ISP(In System Programming),即在系统可编程。
一般来说,ISP 在进行加载程序以前,需要设置某些功能引脚,而IAP则不需要作硬件上的任何动作,只要有合法的数据来源。
LPC11XX支持ISP和IAP升级程序,当采用RS485通信时候的,由于ISP升级程序受条件限制,只能采用IAP升级程序。
IAP原理以及如何调用IAP函数是固化在微处理器内部flash上的一些函数代码,最终的用户程序可以直接通过调用这些函数来对内部flash进行擦除和编程操作。
对于在应用编程来说,应当通过寄存器r0 中的字指针指向存储器(RAM)包含的命令代码和参数来调用IAP 程序。
IAP 命令的结果返回到寄存器r1 所指向的返回表。
用户可通过传递寄存器r0 和r1 中的相同指针重用命令表来得到结果。
参数表应当大到足够保存所有的结果以防结果的数目大于参数的数目。
参数传递见图2-1。
参数和结果的数目根据IAP命令而有所不同。
参数的最大数目为5,由“将RAM 内容复制到Flash”命令传递。
结果的最大数目为2,由“扇区查空”命令返回。
命令处理程序在接收到一个未定义的命令时发送状态代码INVALID_COMMAND。
IAP 程序是thumb 代码,位于地址0x7FFFFFF0。
图2-1 IAP的参数传递表2-1描述了IAP的命令。
表2-1 IAP 命令汇总2.3 IAP 编程函数接口IAP 功能可用下面的C 代码来调用。
定义IAP 程序的入口地址。
由于IAP 地址的第0 位是1,因此,当程序计数器转移到该地址时会引起Thumb 指令集的变化。
#define IAP_LOCATION 0x7ffffff1定义数据结构或指针,将IAP 命令表和结果表传递给IAP 函数unsigned long command[5];unsigned long result[2];定义函数类型指针,函数包含2 个参数,无返回值。
LPC1114系统板入门手册作者:风子芯日期:2011.07.02一、LPC1114系统板简介1、2.5mm电源插座电源极性:内芯为正极,外圆为地线输入电压:DC,范围4.5V~7V注意事项:一定不要超过7V,否则会损坏板子2、串口引脚定义:RXD、GND、TXD(从上往下)电平标准:RS-232电平,可以直连PC机串口的2、5、3引脚3、复位按钮按下按钮2秒以上,LPC1114复位;释放按钮,LPC1114运行程序4、ISP模式选择跳线插上跳线帽,将两个引脚短路,LPC1114进入ISP模式;拔掉跳线帽,然后按下复位按钮2秒后释放,LPC1114进入正常模式5、SWD调试接口引脚定义:+3.3V、nRST、SWDIO、SWCLK、GND(从上往下)二、使用FlashMagic下载LPC1114固件即使没有硬件仿真器,LPC1114也可以使用一款免费软件FlashMagic通过简易串口下载程序。
您可以在/网站上下载到FlashMagic的最新版本。
1、制作串口下载线如上图所示,将PC机串口的2、5、3分别与LPC1114系统板串口的1、2、3连接起来。
如果您的电脑没有串口,买一个现成的USB转串口的转接头,即可。
LPC1114系统板已经提供了MAX3232电平转换芯片,将RS-232电平转换为3.3V电平。
2、安装FlashMagic双击图标,按照提示,选择默认方式,即可。
风子芯电脑上安装的FlashMagic版本是V5.84.2259。
3、进入ISP模式A、连接好串口线和电源线,使LPC1114系统板上电;B、插上ISP跳线帽C、按下复位按钮2秒以上,释放按钮,即可4、配置FlashMagicA、双击桌面上的快捷方式,打开FlashMagic软件(如下图所示)B、如上图所示,选择下载程序使用的串口及其波特率,建议选择57600bps。
波特率越高,下载程序速度越快。
C、单击“Select Device”按钮,在弹出的对话框中选择LPC1114/301D、单击“Browse”按钮,选择需要下载的HEX固件程序(如下图所示)D、单击“Start”按钮,开始给LPC1114系统板下载固件程序FlashMagic界面的下方会提示下载程序的进度,下载完成后,会提示“Finished”。
一、总体描述:LPC11C12 / C14的基础,是一只臂Cortex-M0 32位MCU的家庭,低成本的设计8/16-bit单片机应用,为提供性能、低功率、简单指令集和内存寻址一起代码大小相比,减少了现有的8/16-bit体系结构的实现。
LPC11C12 / C14的运转在CPU频率达到50赫兹。
周边补充C14的LPC11C12包括16/32 kB的/快闪记忆体,8 kB的数据存储器,一个C_CAN控制器,一个界面,再加上我C-bus而RS-485 UART / EIA-485 SPI 接口与SSP,两个特点,四个通用的计数器/定时器,数位ADC,40通用I / O大头针。
二、特点和优点系统:手臂Cortex-M0处理器,运行在频率达到50赫兹。
手臂Cortex-M0内置嵌套NVIC中断控制器(矢量)。
串行线调试。
系统嘀哒计数器。
记忆:32溯因LPC11C14)或16溯因LPC11C12)样品的闪光程序内存存储器数据存储器。
8(kB)。
In-System编程(ISP)和In-Application编程(IAP)通过单片引导加载程序软件。
闪光的ISP的命令可以通过UART发行或C_CAN。
数码外设:40通用I / O(GPIO)别针与配置拉/拉电阻器。
GPIO大头针可作为边缘和水平敏感中断源。
支大电流输出驱动(20个硕士),在一根大头针上。
2支大电流沉驱动(20个硕士),在两个我C-bus针而言优先。
四个通用计数器/定时器,共四个捕获输入和13岁比赛的产出。
可编程的看门狗定时器(WDT)。
ADC与数位模拟外设:输入复用中8大头针。
串行接口:UART波特率代,以分数,并RS-485内部“先进先出”的支持。
两个SPI控制和SSP特点及与FIFO 和多协议能力。
2我C-bus接口支持满时,我C-bus加上与规格、而言数据速率Mbit / s与1多址识别和监控模式。
C_CAN控制器。
片上可以和CANopen司机包括在内。
电气工程与自动化学院课程设计报告(嵌入式技术实践)题目:基于LPC1114和铂电阻水温闭环控制系统专业班级:学号:学生姓名:指导老师:2012年7 月 4 日摘要随着现代化技术的逐渐发展,在很多行业如医疗、电机、工业、温度计算、阻值计算等高精温度设备应用时,都会涉及到高温,高精度等特性,而一般的温度计无法满足。
为了满足现代行业的发展,实现高精度的水温控制,本文重点介绍了一种以LPC1114为控制核心、铂热电阻pt1000为测温原件、以PID为算法控制以及PID 参数整定相结合的控制方法来实现的水温控制系统。
文章着重介绍核心器件的选择、控制算法的确定、各部份电路及软件的设计。
LPC1114拥有完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统:电路结构简单、程序简短、系统可靠性高等特点。
该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。
本设计实现了水温的智能化控制以及提供完善的人机交互界面及多机通讯接口,系统由前向通道模块(即温度采样模块)、后向控制模块、系统主模块及键盘显示摸块等四大模块组成。
设计采样使用的是M0特有的AD采样功能,显示模块以TinyHMI为核心,固态继电器控制电加热,超级恒温器为对象的控制。
关键词:LPC1114;Pt1000;PID;水温闭环控制;滤波器摘要 (2)第一章绪论 (2)1.1 课题背景及方向 (2)1.2 课题的分析 (3)1.3 课题概述 (4)1.4 设计要求与技术指标 (4)1.5 基本功能与扩展功能 (5)第二章方案的选取 (5)2.1 方案设计思路 (5)2.2 MCU的选择 (6)2.3 温度自控的方法 (6)第三章系统软硬件总体设计 (9)3.1 总体设计及框图 (9)3.2 外部电路设计 (10)3.2.1 温度传感器采集转换电路 (10)3.2.2 低通滤波电路 (14)3.2.3 水箱控制电路 (15)3.2.4 键盘设和显示电路 (16)3.3 LPC1114介绍 (17)3.4 电源原理图 (20)3.5 A/D转换 (21)3.6 设计软件介绍 (22)3.6.1 Altium Designer 09 (22)3.6.2 PCB的绘制过程 (22)3.7 软件环境 (23)第四章系统实现 (24)4.1 各硬件模块功能 (24)4.2 硬件实现 (24)4.2.1 PCB板的设计规则 (24)4.2.2硬件调试 (24)4.3 软件实现 (26)4.3.1 软件框图 (26)4.3.2 系统代码 (26)致谢 (35)附录 (36)参考文献 (37)第一章绪论1.1 课题背景及方向自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。
lpc1114课程设计一、教学目标本课程的教学目标是使学生掌握LPC1114微控制器的原理和应用,培养学生具备基本的嵌入式系统设计和开发能力。
具体包括以下三个方面:1.知识目标:学生需要了解LPC1114微控制器的内部结构、工作原理和外设接口,掌握C语言编程和嵌入式系统开发的基本方法。
2.技能目标:学生能够使用LPC1114微控制器进行简单的嵌入式系统设计和开发,包括硬件连接、程序编写、系统调试等。
3.情感态度价值观目标:培养学生对嵌入式系统技术的兴趣和热情,提高学生解决实际问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.LPC1114微控制器的基本原理和内部结构,包括CPU、内存、外设接口等。
2.C语言编程基础,包括数据类型、运算符、控制语句、函数等。
3.嵌入式系统开发的基本方法,包括硬件连接、程序下载、系统调试等。
4.LPC1114微控制器的外设接口编程,包括GPIO、UART、SPI、ADC等。
5.实际项目案例分析,让学生通过实际项目锻炼嵌入式系统设计和开发的能力。
三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解LPC1114微控制器的基本原理和内部结构,让学生掌握相关知识。
2.讨论法:学生进行小组讨论,分享学习心得和实际项目经验,提高学生的动手能力和团队合作意识。
3.案例分析法:通过分析实际项目案例,让学生了解嵌入式系统设计和开发的全过程。
4.实验法:安排学生进行实验操作,让学生亲手实践,提高学生的动手能力和解决问题的能力。
四、教学资源为了保证本课程的顺利进行,我们将准备以下教学资源:1.教材:选用合适的LPC1114微控制器教程,为学生提供理论学习的参考。
2.参考书:提供相关的嵌入式系统技术书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、视频等多媒体资料,生动形象地展示教学内容。
4.实验设备:准备LPC1114微控制器开发板和相关实验器材,让学生进行实际操作。
表111. LPC111x 引脚配置引脚配置--图8–10引脚描述表8–114引脚配置--图8–10引脚描述表8–114引脚配置图8–8-图8–10引脚描述表8–112表8–114图8–10表8–112表8–113表8–1143. LPC111x 引脚描述表 112. LPC1113/14 引脚描述表 (LQFP48 封装)RESET — 外部复位输入:此引脚上的低电平会使设备复位,I/O 端口和外设复位成初始的默认状态,并使处理器从0地址开始执行。
I/O PIO0_0 — 通用数字输入/输出引脚。
PIO0_1/CLKOUT/ CT32B0_MAT2PIO0_2/SSEL0/ CT16B0_CAP04[1]I/O PIO0_1 —通用数字输入/输出引脚。
复位时低电平启动在线系统编程命令处 理程序。
O CLKOUT — 时钟输出脚。
OCT32B0_MAT2 —32位定时器0匹配输出2。
10[1]I/O PIO0_2 —通用数字输入/输出引脚。
O SSEL0 —SPI0从机选择。
ICT16B0_CAP0 —16位定时器0捕获输入0。
PIO0_314[1] I/OPIO0_3 —通用数字输入/输出引脚。
.I/O SCK0 —SPI0串行时钟。
PIO0_7/CTS 23[1] I/O PIO0_7 —通用数字输入/输出引脚(大电流输出驱动器)。
I CTS —UART清除发送。
PIO0_8/MISO0/CT16B0_MAT0PIO0_9/MOSI0/CT16B0_MAT1 SWCLK/PIO0_10/ SCK0/CT16B0_MAT2TDI/PIO0_11/AD0/CT32B0_MAT3 TMS/PIO1_0/AD1/CT32B1_CAP0 TDO/PIO1_1/AD2/CT32B1_MAT0TRST/PIO1_2/AD3/CT32B1_MAT1 27[1] I/O PIO0_8 —通用数字输入/输出引脚。
LPC1114是一款ARM Cortex-M0微控制器,可以与许多传感器一起使用,包括湿度传感器。
湿度传感器用于测量周围空气中的湿度。
在这里,我们将讨论如何使用LPC1114与湿度传感器进行通信,以及一些常见的湿度传感器。
1.湿度传感器类型湿度传感器有很多种类型,其中包括电容式、电阻式、电化学、共振式等。
这些传感器的原理不同,因此它们的输出也不同。
在这里,我们将重点讨论电容式湿度传感器。
2.电容式湿度传感器电容式湿度传感器的工作原理是利用了空气中的水分改变了两个电极之间的电容值。
电容式湿度传感器的输出通常是一个模拟电压信号。
为了将其与LPC1114连接,我们需要使用一个ADC(模拟数字转换器),将模拟信号转换为数字信号。
3.使用LPC1114与湿度传感器进行通信要使用LPC1114与湿度传感器进行通信,我们需要将传感器的输出连接到LPC1114的ADC引脚。
然后,我们需要编写一些代码来读取ADC的值,并将其转换为湿度值。
在此之前,我们需要了解ADC的工作原理以及如何将其配置为正确的输入范围和采样速率。
4.常见的湿度传感器常见的湿度传感器包括DHT11、DHT22、SHT11、SHT15等。
这些传感器通常使用数字信号输出,并且可以通过一些简单的库函数来读取它们的值。
在使用这些传感器时,我们需要将它们的输出引脚连接到LPC1114的GPIO引脚,并使用库函数来读取其值。
总之,与LPC1114一起使用湿度传感器是一项有趣的任务,它可以帮助我们了解传感器的工作原理,并将其应用于实际项目中。
要了解更多有关LPC1114和湿度传感器的信息,可以参考相关的文档和教程。
LPC1114/LPC11U14和LPC1343对比学习(七)SSPLPC1114 和LPC11U14 有两路SSP 总线,而LPC1343 只有一路SSP 总线,其他没有太大的区别,不过LPC11U14 的SSP1 总线都有两路管脚可以设置,进一步增加了芯片的灵活性。
三种芯片的SSP 总线初始化基本一致:但是需要注意,LPC1114 和LPC1343 的SSP0 总线,再设置好时钟后,还必须选择时钟的输出引脚,LPC_IOCON->SCK_LOC = SSP0_SCK_SELECT;而LPC1114 的SSP1 总线和LPC11U14 的两路SSP 总线则不需要这样设置。
对于LPC1114 的SSP1 总线可以理解,因为没有管脚映射。
但是LPC11U14 却有管脚映射功能,如果没有此寄存器,如果多个管脚都设置成同一的功能,真不知道会出现什么样的效果。
就是能正常工作,感觉程序没有以前那样严谨了,不知道NXP 为什么会这样设计对于SSP 总线,需要知道主从设置的主要区别,在主模式下器件的片选管脚可以随意设定而不一定要总线的NSS 管脚,而且就算使用此管脚也要设置成普通GPIO 端口,通过程序控制器件片选。
但是在从模式下从机管脚必须使用总线的NSS。
在使用SSP 总线来控制SD 卡时,SD 卡的初始化必须要尽量降低SSP 总线速度,一般在400K 以下比较安全,如果不想降低SSP 总线速度,那就必须在初始化函数中添加延时来降低速度,保证SD 卡初始化成功。
之后就可以加快SSP 总线速度,提高SD 卡读写速度。
tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
1 方案概述该项目采用Qi1.1.2标准中的A11架构,输入电压为5V,发射线圈为空心电感,由全桥控制LC谐振实现;用NXP 的LPC1114编程实现通讯协议,发射模块负责接收协议并解码,再做出相对应控制(增减功率等);发射线圈接收到的载波信号通过LM324硬件解调电路检出通讯信号,由LPC1114判断和处理。
电压和电流采样由LPC1114的ADC实现,异物检测是通过比较发射模块的输入功率和接收模块“接收到的功率”来判断。
本项目研制的发射模块能兼容绝大部分市面上使用的接收模块。
2 硬件设计2.1 系统电源本项目采用A11架构,输入电压为5V;5V通过LDO CS7133降到3.3V给LPC1114供电(LPC1114工作电压为1.8V-3.6V),工作电流设计值为100mA,实际MCU系统电流约40mA。
LC谐振功率回路直接由5V供电。
2.2 A11电路如图1所示,A11电路通过全桥电路控制LC谐振,Lp=6.3uH,Cp=400nF。
A11电路是通过调整工作频率和占空比来控制功率输出,频率范围为110-205KHz(50%占空比),频率为205KHz 时的占空比变化范围为10-50% ,上电初始工作点频率为175KHz(50%占空比)。
A11要求通过PID算法控制功率传输,控制变量为工作频率或占空比。
为了保证功率控制准确性,A11定义了一个等效于线圈电流的cell电流,其变化最小分辨率为7mA,或更小。
本项目中A11的实现电路如下图1,PWM驱动器采用TI的CDS97376Q4M,内置MOS管,可耐20A的持续电流,转化速率可达2MHz,兼容5V和3.3V输入,支持三态PWM信号。
电压放大器用TI的INA199A1,放大增益为50V/ V,该放大器用于检测线圈电流。
图1 A11简图2.3 关于LPC1114LPC1114是基于ARM Cortex-M0的微控制器,应用于高集成度和低功耗的嵌入式产品,最高工作频率50MHz、内置嵌套中断向量控制器、32KB片内Flash、8KB SRAM、4个通用定时器(4个捕获输入和13个比较输出)和多达42个通用IO 引脚。
Ration ARM Cortex-M0 LPC1114开发板 V3.0使用指南亲!感谢您使用 ARM Cortex-M0 LPC1114开发板!谷歌公司在 2013年一举收购 8家机器人公司,2014年初又用 32亿美元现金收购一家创办 2年 , 且只有 2款产品的智能家居公司,这家公司名字叫做 nest。
这意味着智能家居、物联网、可穿戴电子设备已经进入实质性阶段了。
首先,我要告诉您,您的选择是明智的,Cortex 内核开发板是这些电子产品的主流控制器,因为 Cortex 内核单片机是 ARM 公司的目前主打的产品,你以前所听到的ARM9\ARM11都已经是浮云了。
Cortex 内核单片机从低端到高端, 遍布于各个领域,它是最大特点就是功耗低、性价比高。
未来的电子产品,一定是智能的。
(你知道“点名时间”网吗?不知道的话赶快去看看吧:/赶快去看看别人怎么赚钱未来的电子产品,一定是低功耗的。
(地球资源保护商人做产品,一定是选择成本最低且可以满足需求的材料。
(性价比您现在拿到手的开发板,内核是 Cortex-M0,属于 Cortex 系列低端的单片机。
(千万不要把“低端”与你的“收入”画等号。
低端与高端,指的是它的性能,性能决定了它的应用领域,如果你在你的领域做精做强,那么想象一下结果……一、开发板检测:1. 把附带的 USB 数据线拿出来,一端插到电脑,一端插到开发板。
2. 按下电源(POWER开关, 开发板上会运行 GUI 演示例程, 这个例程是《应用篇例程》例程 5.3。
开发板在发货以前,我会用例程程序检测所有的硬件运行良好,所以,你拿到手的开发板,一般是不会有问题的。
有任何疑问,请随时联系我:QQ:253057617电话:152********(山西省太原市QQ 群:160610211博客:http://www.rationmcu .com二、学习前的准备工作1. 需要安装 USB 转串口驱动(用于 ISP 下载程序打开这个文件夹双击这个安装程序, 根据提示安装完, 一般都是点击下一步。
一步一步在Keil4 MDK里面学习LPC1114===============2015/11/09 18:57有什么办法知道编写的每一个函数,对于CPU的占有率Keil 有这个功能你不知道用==============2015/08/24 10:12车辆侧翻碰撞检测.pdf将加速度计量程改为8g后,板子放在桌面上静止不动,测量的结果。
下面是撞击时产生的加速度。
==========================2015/08/22 16:15拿PCB板撞击桌子,得到的加速度各个方向的最大值为2g。
这可能是由于我没有设置加速度的量程Range的缘故,MMA8452的默认量程(Range)是2g。
量程设置大了以后,精度就差了。
2015/07/03 17:34zhixin=============== 2015/07/03 11:09 xcjCRP加密更改加密定义,定义为CRP1。
从程序空间看,确实变为CRP1====================== 2015/07/03 10:47LPC1114的异常向量表=================33: {34: struct st1 stru1;0x00006B24 B50E PUSH {r1-r3,lr}35: stru1.a=1;0x00006B26 2101 MOVS r1,#0x010x00006B28 466A MOV r2,sp0x00006B2A 7011 STRB r1,[r2,#0x00] 36: stru1.b=2;0x00006B2C 2102 MOVS r1,#0x020x00006B2E 9101 STR r1,[sp,#0x04]37: stru1.c=3;0x00006B30 2103 MOVS r1,#0x030x00006B32 9102 STR r1,[sp,#0x08]38: return stru1;0x00006B34 4669 MOV r1,sp0x00006B36 C90E LDM r1,{r1-r3}0x00006B38 C00E STM r0!,{r1-r3}0x00006B3A 380C SUBS r0,r0,#0x0C39: }40:41: int main (void)0x00006B3C BD0E POP {r1-r3,pc}42: {43: struct st1 stru2;0x00006B3E B50E PUSH {r1-r3,lr}44: stru2 = ex_proceure ();45: stru2 = stru2;46:47:0x00006B40 4668 MOV r0,sp0x00006B42 F7FFFFEF BL.W ex_proceure (0x00006B24)========================总是生不成axf文件=====================================LPC11U 启动流程LPC11U14正常启动用户程序的流程:1. CPU复位后,从0x1FFF 0000开始执行,该地址出厂时固化了bootloader2. bootloader进行芯片初始化动作,并检测PIO0_1, 如果为高电平则搜索有效用户程序3. 有效代码的查找是有一个校验过程,前8个向量表的和为0,芯片初始化后中断向量指向flash 0x0000 0000地址4. 校验通过后将0x0000 0000内容给SP,0x0000 0004内容给PC,然后跳到用户程序执行arm-none-eabi-gcc编译器产生的Bin文件在的第八个中断向量地方放的是0x0000 0000,在烧写flash的时候,烧写软件会自动计算校验和并填充到该位置(FlashMagic等等)=========== ROMTableAddr = 0xE00FF003 2015/05/20 15:33myxiaonia显示-1那是正常的Var_Start在stdarg.h文件中定义,发现stdarg.h头文件的地址为“d:\Program Files\ARM\ADSv1_2\INCLUDE\stdarg.h”下面是在网上找的相关的解决方法------------------------[楼主位] 这不是刀 2013/07/15 22:32原子哥和各位大神帮忙看下是什么原因吧,错误如下:..\FATFS\src\ff.c(3995): error: #928: incorrect use of va_start..\FATFS\src\ff.c(3995): error: #253: expected a ","..\FATFS\src\ff.c(3995): error: #29: expected an expression..\FATFS\src\ff.c(4026): error: #929: incorrect use of va_arg..\FATFS\src\ff.c(4037): error: #929: incorrect use of va_arg..\FATFS\src\ff.c(4052): error: #929: incorrect use of va_arg..\FATFS\src\ff.c(4052): error: #929: incorrect use of va_arg..\FATFS\src\ff.c(4052): error: #929: incorrect use of va_arg-------------------[13楼] yhcbjnjx2013/08/17 09:40这个主要是因为keil与其他编译环境冲突造成;你可以看一下stdarg.h的路径是否是在keil的安装目录下;我的系统就是在安装了ADS1.2后才出现的这个问题;查看系统环境变量就可以看到ARMINC变量被注册到ADS的安装目录下;卸载ADS与KEIL后,重启计算机,安装软件,问题解决;-----------[15楼] DDXMDK 2014/12/13 19:3313楼正解,更改环境变量----------------薛超杰,查看自己电脑上的环境变量,还真是“d:\Program Files\ARM\ADSv1_2\INCLUDE”将环境变量的值改为keil的安装目录“C:\Keil\ARM\ARMCC\include”确定后,将keil工程关闭后再打开,重新编译工程可以成功编译文件"ff.c"此时查看stdarg.h头文件的地址变为“C:\Keil\ARM\ARMCC\include\stdarg.h”编译成功总算编译成功了============================================================= 2014/12/06 15:47ADC 学习,ADC的程序如下。
技术测试报告ZLG测试报告ID:10052601测试目的1、LPC1114使用IRC或WDT OSC作为时钟振荡器实现低功耗1.30mA以下。
测试信息测试人/电话 -/22644384 测试日期 2010-05-26芯片型号 LPC1114FBD48/301 批次ZSD09/470AY(样片)测试芯片数量抽样测试1片测试环境EasyCortex-M3-1300开发板(核心芯片1114)、环境温度25°C、软件环境TKStudio2008测试方式由LPC1114芯片数据手册可得:芯片内部IRC精度±1%,作为主时钟可满足串口波特率对时钟精度的要求,而看门狗振荡器精度为±25%,误差较大不能满足串口对于时钟精度的要求。
但是看门狗振荡器的功耗比内部RC振荡器的功耗低。
因此设定以下2种测试方案:测试方法1:LPC1114进行A/D转换时使用看门狗振荡器作为主时钟源,时钟频率为1MHz,串口通信时将主时钟源切换到内部RC振荡器输出,时钟频率为1MHz,完成串口通信后时钟再次切换到看门狗振荡器输出,如此循环执行;测试方法2:LPC1114只使用IRC振荡器作为时钟源,时钟频率为1MHz。
按以上2种测试方法编写功耗测试程序烧写到LPC1114片内,脱机运行。
使用安捷伦6位半万用表34401A测试得到芯片功耗数据。
测试结果通过测试可得:在测试方法1条件下,LPC1114最高功耗为1.10mA,最低功耗为0.83mA;在测试方法2条件下,LPC1114最高功耗为1.41mA,最低功耗为1.38mA。
可见,使用方法1的情况下,LPC1114可满足低功耗<1.30mA的要求。
详细测试结果见附件B。
改进建议1、芯片的功耗与芯片使用的外设和外部连接器件密切相关,请注意外部器件功耗情况;2、芯片Mark为AY表示工程样片,因此芯片本身参数存在一定不完善型。
正式批量化芯片的参数将比样片的参数误差小。
备注测试程序见附录A。
附录A测试流程1. 测试方法1本测试程序是建立在LPC1100工程模板基础上,与测试之外的代码在此不作列举。
与测试相关主要部分见程序清单1~4所示。
程序清单1 功耗控制寄存器位宏定义/*功耗控制寄存器位宏定义 */#define IRC_OUT_PD (0x1 << 0)#define IRC_PD (0x1 << 1)#define FLASH_PD (0x1 << 2)#define BOD_PD (0x1 << 3)#define ADC_PD (0x1 << 4)#define SYS_OSC_PD (0x1 << 5)#define WDT_OSC_PD (0x1 << 6)#define SYS_PLL_PD (0x1 << 7)程序清单2 主时钟切换到WDT OSC/******************************************************************************************* ** 函数名称: WDTOSCCLKMODE** 功能描述: 将主时钟源切换到看门狗振荡器** 输入参数: 无** 输出参数: 无** 返回值: 无*******************************************************************************************/ void WDTOSCCLKMODE (void){/*看门狗振荡器上电**/PDRUNCFG &= ~(1ul << 6);WDTOSCCTRL = (7ul << 5);MAINCLKSEL = 0x02; /* 选择WDT OSC输出*/ MAINCLKUEN = 0x01; /* 更新MCLK时钟源选择*/ MAINCLKUEN = 0x00; /* 翻转更新寄存器*/ MAINCLKUEN = 0x01;while (!(MAINCLKUEN & 0x01)) { /* 等待更新完成*/ }SYSAHBCLKDIV = 1; /* SYStem AHB时钟分频*/ /*内部RC振荡器掉电控制*/IRC_OUT_PD|IRC_PD|BOD_PD|SYS_OSC_PD|SYS_PLL_PD;PDRUNCFG|=CLK *//*关UARTSYSAHBCLKCTRL &= ~(1 << 12); /* Close UART功能部件时钟*/ }程序清单3 主时钟切换到IRC振荡器/******************************************************************************************* ** 函数功能: IRCCLKMODE** 功能描述: 将主时钟切换到内部RC振荡器** 输入参数: 无** 输出参数: 无** 返回值: 无*******************************************************************************************/ void IRCCLKMODE (void){PDRUNCFG &= ~(0x03 << 0);MAINCLKSEL = 0x00; /* 选择IRC输出*/ MAINCLKUEN = 0x01; /* 更新MCLK时钟源选择*/ MAINCLKUEN = 0x00; /* 翻转更新寄存器*/ MAINCLKUEN = 0x01;while (!(MAINCLKUEN & 0x01)) { /* 等待更新完成*/ }SYSAHBCLKDIV = 16; /* SYStem AHB时钟分频*/ ADC\看门狗振荡器掉电控制 *//*PDRUNCFG |= BOD_PD|ADC_PD|SYS_OSC_PD|SYS_PLL_PD|WDT_OSC_PD;ADC模块时钟关闭*//*SYSAHBCLKCTRL &= ~(0x01 << 13); /* 使能ADC模块时钟*/ }程序清单4 主函数/******************************************************************************************* ** 函数名称: main** 功能描述: LPC1114使用WDT OSC输出作为时钟进行AD转换,IRC输出作为时钟进行UART通信** 输入参数: 无** 输出参数: 无** 返回值: 无*******************************************************************************************/ int main(void){INT32U i, ulADCData, ulADCBuf;targetInit(); /* 初始化目标板,切勿删除*/ SYSAHBCLKCTRL = 0x1F|(1 << 12)|(1 << 13)|(1 << 16);/*UART引脚配置*/IOCON_PIO1_6 &= ~0x07;IOCON_PIO1_6 |= (1 << 0); /* 配置P1.6为RXD */IOCON_PIO1_7 &= ~0x07;IOCON_PIO1_7 |= (1 << 0); /* 配置P1.7为TXD */ /*ADC引脚配置 */IOCON_PIO0_11 &= ~0xBF; /* 配置PIO0_11为AD输入 */ IOCON_PIO0_11 |= 0x02; /* PIO0_11模拟输入通道0 */ SYSAHBCLKCTRL &= ~(1 << 16);while (1) {WDTOSCCLKMODE();ADCInit(); /* ADC模块初始化*/ =0;ulADCDatafor (i = 0; i < 10; i++) {AD0CR |= (1 << 24); /* 立即转换*/while ((AD0DR0 & 0x80000000) == 0){ /* 读取AD0DR0的Done */}AD0CR |= (1 << 24); /* 第一次转换结果丢弃*/while ((AD0DR0 & 0x80000000) == 0){ /* 读取AD0DR0的Done */}ulADCBuf = AD0DR0; /* 读取结果寄存器*/ulADCBuf = (ulADCBuf >> 6) & 0x3ff;ulADCBuf;+=ulADCData}AD0CR &= ~(1 << 24);ulADCData = ulADCData / 10; /* 采样10次进行虑波处理*/ulADCData = (ulADCData * 3300) / 1024;sprintf(GcRcvBuf, "VIN0 = %4d mv\r\n", ulADCData); /* 将数据发送到串口进行显示 */ myDelay(50);IRCCLKMODE();uartInit(); /* 串口初始化*/*)GcRcvBuf);INT8UuartSendStr((const}}2. 测试方法2本测试程序是建立在LPC1100工程模板基础上,与测试之外的代码在此不作列举。
与测试相关主要部分见程序清单5~6所示。
程序清单5 主函数/******************************************************************************************* ** 函数名称: main** 功能描述: 使用IRC时钟作为主时钟进行ADC,并通过串口输出数据,时钟频率为1MHz** 输入参数: 无** 输出参数: 无**返回值: 无*******************************************************************************************/ int main(void){INT32U I, ulADCData, ulADCBuf;targetInit(); /* 初始化目标板,切勿删除*/ SYSAHBCLKCTRL = 0x1F|(1 << 12)|(1 << 13)|(1 << 16);/* UART PIN */IOCON_PIO1_6 &= ~0x07;IOCON_PIO1_6 |= (1 << 0); /* 配置P1.6为RXD */ IOCON_PIO1_7 &= ~0x07;IOCON_PIO1_7 |= (1 << 0); /* 配置P1.7为TXD */ */PIN/*ADCIOCON_PIO0_11 &= ~0xBF; /* 配置PIO0_11为模拟输入模式*/ IOCON_PIO0_11 |= 0x02; /* PIO0_11模拟输入通道0 */ SYSAHBCLKCTRL &= ~(1 << 16);while (1) {*//*PDRUNCFGBOD_PD|SYS_OSC_PD|SYS_PLL_PD|WDT_OSC_PD;PDRUNCFG|=/* 关UART CLK */SYSAHBCLKCTRL &= ~(1 << 12); /* Close UART功能部件时钟*/ADCInit(); /* ADC模块初始化*/ =0;ulADCDatafor (i = 0; i < 10; i++) {AD0CR |= (1 << 24); /* 立即转换*/while((AD0DR0 & 0x80000000) == 0){ /* 读取AD0DR0的Done */}AD0CR |= (1 << 24); /* 第一次转换结果丢弃*/while((AD0DR0 & 0x80000000) == 0){ /* 读取AD0DR0的Done */}ulADCBuf = AD0DR0; /* 读取结果寄存器*/ulADCBuf = (ulADCBuf >> 6) & 0x3ff;ulADCData += ulADCBuf;}AD0CR &= ~(1 << 24);ulADCData = ulADCData / 10; /* 采样10次进行虑波处理*/ulADCData = (ulADCData * 3300) / 1024;sprintf(GcRcvBuf, "VIN0 = %4d mv\r\n", ulADCData); /* 将数据发送到串口进行显示*//*注意:延时函数需加在低功耗部分**/myDelay(50);*/DOWN/*POWERADCBOD_PD|SYS_OSC_PD|SYS_PLL_PD|WDT_OSC_PD|ADC_PD;PDRUNCFG|=/* 关ADC*/CLKSYSAHBCLKCTRL &= ~(0x01 << 13);uartInit(); /* 串口初始化*/INT8U*)GcRcvBuf);uartSendStr((const}}程序清单6 目标板初始化/******************************************************************************************* ** 函数名称: targetInit** 功能描述: 目标板初始化** 输入参数: 无** 输出参数: 无** 返回值: 无*******************************************************************************************/ void targetInit (void){extern void *__GpvVectorTable[];zyIrqDisable();SYSMEMREMAP = 0x02; /* 异常向量表重映射*/ VTOR = (unsigned long)__GpvVectorTable;SYSAHBCLKDIV = 12; /* SYStem AHB时钟分频*/ SYSAHBCLKCTRL |= (1ul << 16); /* 使能AHB总线时钟*//* 否则无法配置ICON */ zyIrqEnable();zyIfInit();return;}附录B 测试结果1.测试结果1使用测试方法1进行编程,LPC1114可正常实现A/D转换和串口通信功能,如图1所示。