微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > lpc54102例程(两种方案代码详解)

lpc54102例程(两种方案代码详解)

时间:07-25 来源:电子发烧友网 点击:

  lpc54102由于其性能和稳定性,在很多领域都有应用,下面我们来给大家分享一下lpc54102例程。

  Nxp公司的LPC5410x系列产品是32位ARM Cortex-M4F/MO+MCU,集成了104KB SRAM,512KB闪存,3个12C,2个SPI,4个USART,32位计数器/定时器以及SCTImer/PWM和12位4.8MSPS ADC,具有低功耗,增强调试特性和高级支持区快等系统增强特性,适用于嵌入式应用。

  LPC5410x为嵌入式应用的ARM cortexm4f基微控制器。这些设备包括一个可选的手臂Cortex-M0 +协处理器,104 KB的片上存储器,512 KB芯片上的flash,五个通用定时器,一个State-Configurable计时器(SCTImer / PWM)PWM功能,一个RTC /报警定时器,一个24位多速率计时器(捷运),窗口看门狗定时器(WWDT),四个USARTs两spi,三个Fast-modeplus i2c总线接口与高速奴隶模式,和一个12位4.8 Msamples / secADC。

 LPC54102传感器处理/运动解决方案主要特性:

  a. 完整的硬件和软件设计,准备定制

  b. 32位LPC54102 Cortex-M4F / M0 +单片机

  c. LPCXpresso54102发展局

  d. 传感器罩板

  e. LPCOpen软件驱动程序

  f. LPC的传感器融合框架

  g. 博世BSX Lite传感器融合库

  h. 软件演示

  i. 文档

 LPC54102传感器处理/运动解决方案主要优势:

  a. 向你的应用程序添加6 -或9轴运动传感器

  b. 集成传感器融合中间件和便携式传感器融合框架

  c. 传感器融合api允许用户轻松地创建使用运动传感器的应用程序

  d. 额外的数字传感器(压力/温度,环境光,接近)

  e. 软件开发工具,用于快速开始编写、编译和运行基于传感器的应用程序

  f. 为最终产品设计师提供一套丰富的参考设计材料,包括文档、移植指南和示意图

  g. 可堆叠硬件支持更多的传感器或添加插件模块

  h. 用于测量和原型的大量的pinouts

  i. 低功率

 LPC54102开发板介绍


 LPC54102开发板介绍原理图

 lpc54102例程:一

  下面我们以万利开发板的心率计应用笔记的LPC54102例程移植来做分析讲解。

  由于万利开发板的不同设置,以及没有PulseSensor传感器,需要做一定的修改移植,使用万利开发板上的AIN1作为模拟输入,电位器的来回旋转代表心跳的变化。

  1、代码修改

  由于万利开发板使用PIO1_4/AIN7作为电位器输入,因此在初始化代码中,做了如下修改:

  其中在board.h中,取消了BOARD_NXP_LPCXPRESSO_54102的定义,而是重新定义了BOARD_MANLEY_LPC54102。

  并在各个初始化代码中,增加了针对万利开发板的初始化代码。

  #if defined(BOARD_NXP_LPCXPRESSO_54102)

  /* SEQ_A enables channels 0, 3 and 4; Uses software trigger; doesn‘t use BURST */

  #define ADC_SEQ_A_CONFIG \

  TRIG_SOFT | /* Software trigger for SEQ_A */ \

  TRIG_POL_POS | /* UM recommends this for S/W trigger */ \

  MODE_EOS | /* Event generated after Sequence done */ \

  ENABLE_CH(3) /* Associate channels 3 to SEQ_A */

  #elif defined(BOARD_MANLEY_LPC54102)

  #define ADC_SEQ_A_CONFIG \

  TRIG_SOFT | /* Software trigger for SEQ_A */ \

  TRIG_POL_POS | /* UM recommends this for S/W trigger */ \

  MODE_EOS | /* Event generated after Sequence done */ \

  ENABLE_CH(7) /* Associate channels 7 to SEQ_A */

  #endif // #if defined(BOARD_xxx)

  staTIc void ADC_PinMuxSetup(void)

  {

  #if defined(BOARD_NXP_LPCXPRESSO_54102)

  /* All pins to inacTIve, neither pull-up nor pull-down. */

  Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 0, IOCON_MODE_INACT | IOCON_FUNC1 | IOCON_ANALOG_EN);

  #elif defined(BOARD_MANLEY_LPC54102)

  /* All pins to inactive, neither pull-up nor pull-down. */

  Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 4, IOCON_MODE_INACT | IOCON_FUNC1 | IOCON_ANALOG_EN);

  #endif

  }

  2、运行

  其余基本不变,下载后,将电位器来回旋转,可以看到串口输出了心跳数据。

  3、代码分析

  该应用基本采用CM4初始化后即进入休眠。

  CM0+核初始化ADC、Timer之后,进入休眠。

  每秒20次唤醒后,采样ADC,当采样过半时,调用Compute_Heartrate算法计算是否产生心跳以及心跳间隔IBI。当发现后即输出串口信息。

  关键在于Compute_Heartrate算法,该算法采用PulseSensor官方的算法,基本是通过判断ADC模拟量发现峰值、过半点等运算。

void Com

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top