LPCXpresso核心板”裸奔”的终结—OM13082扩展板评测
扫描二维码
随时随地手机看文章
拿到一块开发板,只能点个灯,这就尴尬了!
对于NXP粉来说,各种NXP的开发板手头估计不少,像LPCXpresso系列中的LPCXpresso4337及最新的LPCXpresso54114等。这些开些板上的MCU集成了丰富的外设接口,可惜厂商为了让开发板具备更好的通用性,只是将GPIO、SPI及I2C等以排针形式引出,由用户自行接驳各种所需的具体设备。这种设计模式,也是各主要MCU厂商采用的模式,提供一块核心板,配备不同类型的MCU,全部或部分引出所有设备接口,具体的外设则由用户自行选择,像ST的NUCLEO开发板也是如此。确实这种设计方式使用或评估起来非常灵活,但也有一个缺点,用户在使用具体的外设时,还需要借助面包板或万能板,搭建一些简单的电路,如果所需评估的外设比较多,搭建的电路也相应的变得更复杂。所以各厂商在推出核心开发板的同时,还会提供相应的扩展板,与核心板配套使用,这些扩展板一般精选若干主流模块,如各种传感器或发射器,与核心板搭配使用,相得益彰!
OM13082是NXP推出的一款通用型扩展板,与NXP的LPCXpresso核心板配合使用,免去了试用时只能点灯的尴尬。
OM13082通用扩展板专为NXP LPC系列开发板设计,独立包装及销售。
开发板盒子上看到OM13082的标语:为智能世界提供安全连接,这大概也是NXP的愿景吧。
从包装盒里取出OM13082扩展板,粗粗可以看到大致包括SD卡、CAN、USB、网络接口、LCD、电位器及五向摇杆等,足见该扩展板的丰富。
OM13082扩展板正面,包括的主要设备或接口有:ETH接口,4个LED灯,电位器,游戏摇杆,LCD,SD卡接口,CAN接口及USB接口。另外还有部分设备位于LCD下面,被遮挡住了。
OM13082扩展板的背面标注了引出的GPIO接口及名称,另外LCD通过FPC与背面的LCD接口连接。
拆下LCD后的OM13082扩展板,可以更清楚地看到扩展板上元器件的布局,元器件布局合理,排列整齐。
OM13082扩展板上的LCD,单色显示,主控为ST7567,可以提供64级灰度显示,无背光。
看几张特写
CAN、电位器及摇杆特写
TF卡、USB及ETH接口特写
OM13082扩展板主要特性如下
● 12864LCD,通过SPI接口与MCU连接,该LCD主控为ST7567,提供64级灰度单色显示,没有背光。
● 4个LED灯,通过NXP的PCA9535BS I2C总线扩展器连接,该扩展器上还连接了摇杆设备
● NXP LM75D温度传感器,通过I2C总线与MCU连接
● Bosch BMI160惯性模组,包含3轴加速计及3轴陀螺仪
● 电位器
● SD/MMC扩展卡(该设备需要LPC V3以上板才支持)
● ETH接口(需要LPC V3以上开发板支持,同时需要使用板载PHY)
● CAN连接器(需要LPC V3以上开发板支持)
● USB接口(需要LPC V3以上开发板支持)
扩展板上有些特性需要MCU的支持,如SD/MMC、ETH及CAN等设备,支持该扩展板的主要MCU类型包括:LPC4337FET256、LPC4337JBD144、LPC4337JET100及LPC4337JET256,这是显然的,如果MCU没有具备相应的外设接口,是不能很好的支持OM13082扩展板的。
如果需要了解具体设备与MCU的连接方式,可以参考扩展板提供的原理图。例如要了解ETH的使用方式,参考原理图如下
了解硬件的连接方式,确定设备的工作模式,是后期进行软件设计的基本依据。比如对于SD卡来说,SD/SDIO/MMC主机接口可以支持MMC卡系统规范4.2版中的3个不同的数据总线模式:1位(默认)、4位和8位。在8位模式下,该接口可以使数据传输速率达到48MHz,该接口兼容SD存储卡规范2.0版。SDIO存储卡规范2.0版支持两种数据总线模式:1位(默认)和4位。从扩展板的原理图中可以看到了,只连接了4根数据线,所以该SD卡在编程时可以设置工作于1位或4位模式下。
[!--empirenews.page--]
除了硬件原理图,BSP(板级支持包)也同样重要。BSP提供了快速体验的可能,同时也是后期进行具体开发时非常重要的参考资源。接下来为扩展板准备必要的软、硬件环境。
OM13082只是一块扩展板,是NXP为LPCXpresso系列开发板设计。为了获得最佳的体验,建议选择LPC V3以上规格的开发板,如LPCXpresso4337等,这里使用LPCXpresso4337与扩展板搭配使用。
该开发板使用的MCU型号为LPC4337JET100,主要特性包括:32-bit ARM Cortex-M4/M0 MCU; up to 1 MB flash and 136 kB SRAM; Ethernet, two High-speed USB, LCD, EMC,完全可以体验扩展板提供的所有功能。
OM13082与LPCXpresso4337开发板的合体图,很登对。
软件环境方面,LPCXpresso4337支持MBED开发,当然肯定支持NXP自家的LPCXpresso IDE开发啦!
先来看MBED开发。
MBED开发的话,需要先更新LPC4337开发板的固件,从附录给出的参考资源中下载固件及固件更新软件,将LPC4337开发板上的J3跳线短接,连接USB电缆到PC端,运行固件更新程序,如下图
需要注意的是不能将地址与大小搞错了,否则更新后不能正确使用。上图右边是更新过程及结果,更新后将跳线帽拔下,重新上电。就可以在PC端看到一个映射的存储器,这是MBED用来下载代码的大容量存储器。如下图
MBED开发的下一个步骤是选择适当的硬件平台,这里先要选择LPCXpresso4337来作为硬件平台,如下图
在选择硬件平台的同时,MBED也会提醒用户更新开发板的固件,上面我们已将开发板的固件更新,此处可以略过。
打开附录中给出的OM13082的MBED支持页面,导入几个示例来进行测试,也可以新建工程,MBED的代码与ARDUINO风格类似,都进行了深度封装,只需简单的几行代码就可以实现复杂的功能。下面是LCD显示代码的主要片段
#include "mbed.h"
#include "ST7567.h"
ST7567 lcd(D11, D13, D12, D9, D10); // mosi, sclk, reset, A0, nCS
int main()
{
int count=0;
lcd.set_contrast(0x1f);
lcd.cls()
lcd.locate(0, 0);
lcd.printf("Good morning");
lcd.locate(0, 10);
lcd.printf("hello, 21ic review lab!");
}
编译并下载bin文件到本地,将bin文件复制到MBED磁盘中实现代码下载,按开发板上的复位按键,看到LCD上显示效果如下
MBED编程确实方便,不需要本地IDE,不需要专用的下载器。如果要说缺点的话,可能是调试方面略有不便,现在越来越多的人开始关注与使用MBED了。[!--empirenews.page--]
虽然MBED很方便,但是想要更多的了解MCU的细节,如时钟设置,外设的配置等,可以使用NXP的LCPXpresso IDE来进行编程。
LPCXpresso IDE基于ECLIPSE,用于创建高质量的LPC微控制器代码,它有很多专门的特性,包括优化的C代码库及GNU Newlib库,当前最新的版本为v8.22。LPCXpresso IDE的使用是需要授权的,不过个人用户可以申请免费授权,该版本有一些小限制,例如最高只能编译256KB大小的代码等。
首先安装LPCXpresso IDE,从NXP官网下载最新的软件下载并安装
安装过程选择用户的设置,主要包括安装位置等参数设置。安装之后记得申请个人免费KEY授权。
经过授权之后的界面,看到这是免费版本授权,其限制是编译代码不能超过256KB,对于一般的用户来说已足够。
NXP为了方便广大开发者使用LPC系列开发板,提供了LPCOpen库(BSP库),该库除了依赖库代码之外,也提供了相应的示例代码,帮助用户快速入门,以掌握LPC系列MCU的相关技术。
从附录给出的位置下载相应的BSP库,解压缩之后如下
这是LPC43XX系列的库及示例代码集合,其它类型的MCU也有专门的代码库供用户下载,
打开IDE,将下载并解压后的工程文件导入到IDE中,如下
接下来要体验的是ETH功能,搭建一个简单的HTTP服务器,接用户请求并给出HTTP响应,先准备一根网线,与路由器连接,路由器上开启DHCP功能,使得开发板可以从路由器通过DHCP协议来自动获取IP地址,连接如下
在导入的工程文件中选择lwip_webserver,直接编译,一般情况下是没有错误的,如果有错误的话,一般是库依赖问题。建议前面在导入工程文件时,将所有的工程文件都直接导入,这样就没有问题了。
点击IDE上的flash图标,给开发板下载代码,弹出如下选择调试器的对话框,
LPC系列开发板都自带LPC-LINK2下载/调试器,使用CMSIS-DAP兼容协议,如果没有看到该设备,打开Windows设备管理器,查看是否安装了正确的设备驱动,如下图
如果一切正常,就可以打开一个终端软件如putty来查看设备的运行情况,终端配置时选择正确的端口号,这里是COM5,波特率设置为115200。
看到设备使用TCP/IP(LWIP)通信来自动获取设备IP地址,相应的子网及网关设置都通过DHCP协议来获取。
此时打开浏览器,输入设备的IP地址,这里是192.168.99.194,浏览器中看到如下结果,
一个简单的HTTP服务器!
注意前面一幅截图中看到的Card Acquire failed...信息,这是因为没有插入SD卡的原因,可以将一些图片资源复制到SD卡中,然后通过读取SD卡来实现功能更强大的服务。
至于HTTP服务器的详细代码,就留给你慢慢研究吧,实际上LWIP作为一款轻量的网络通信协议,在各主流的MCU厂商中非常受欢迎,ST在自己的协议栈中也加入了LWIP的支持,LWIP不仅轻量,使用起来也非常容易,连接具体硬件的ETH底层代码,上层的IP基本不需要修改,可以直接使用。
其实OM13082扩展板上还有许多有趣的东西,如SD卡的支持,游戏摇杆的体验,限于篇幅,咱们就不一一体验了。
如果有兴趣的话,可以购入体验,MOUSER的报价约192RMB,不算贵,NXP粉丝就动手吧,如果不只是想点个灯,还等啥!
参考资源: