打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
专注汽车电子应用——TRK-USB-MPC5604B评测
一、前言
说到汽车电子,人们都会想到恩智浦(NXP)和飞思卡尔(Freescale),而去年恩智浦将飞思卡尔收购,组建了一个庞大的汽车电子供应商,提供了从车载联网、照明、媒体、电源以及门禁防盗等广泛的产品和解决方案。今天21 IC给大家带来了NXP的用于评估MPC5604B微控制器的StarterTrak USB套件——TRK-USB-MPC5604B。

二、开箱

拿到TRK-USB-MPC5604B套件采用纸盒包装,整体绿白色调,是不是很节能环保?上面印有汽车图案,然人一眼就可以认出此套件是针对汽车应用的评估工具,整体让人感觉一种很专业的气息。下面还印有Freescale的LOGO,很明显是两公司合并之前的产品。



图1 TRK-USB-MPC5604B包装正面


在包装的背面,有此款开发板的特点和支持的软件开发工具。



图2 TRK-USB-MPC5604B包装背面


翻开包装,就可以看到一个非常小巧的开发板嵌入到包装盒内,在包装的左面印有如何使用TRK-USB-MPC5604B的操作步骤说明。

图3 TRK-USB-MPC5604B包装


拿出TRK-USB-MPC5604B开发板,可以看到这款开发板非常小巧,黑白色调,板子正中间主芯片MPC5604B微控制器占据了很大的空间,左面板载了USB连接的OSBDM调试器,是用户获得开发板后,不需要再购买仿真调试器,节省了成本,同时可使用USB接口为开发板供电,除此之外,它还具有一个可与恩智浦塔式系统兼容的PCI卡边,可使用恩智浦提供的丰富而专业的塔式开发系统来完成自己的设计工作,同时使用户可以根据设计需要自己定制开发系统,这也是此款开发板的一大亮点。


此外TRK-USB-MPC5604B开发板还未用户提供了2个用户按键、2个双色LED和一个唯独传感器等简单的外围资源,帮助用户单独使用TRK-USB-MPC5604B时实现一些简单的评估和入门工作。



图4 TRK-USB-MPC5604B开发板正面



图5 TRK-USB-MPC5604B开发板背面

TRK-USB-MPC5604B开发板的主要软硬件资源及特点:
板载1颗LQFP-100封装的汽车级微控制器MPC5604B

两个双色LED

两个按钮

温度传感器

塔式系统主连接器

通过USB连接的OSBDM调试器

可支持恩智浦推出的集成开发环境CodeWarrior Development Studio(需授权)

可支持恩智浦推出的图形化工具RAppID(需授权)

三、硬件

TRK-USB-MPC5604B开发板设计非常紧凑,双面都有元件,结构比较简单,可大致分成2部分,一个是具有USB接口的OSBDM仿真调试器,同时具有虚拟串口与主MCU相连,另一个MPC5604微控制器及其外围资源及接口部分。



图6 TRK-USB-MPC5604B开发板布局

1、核心微控制器
TRK-USB-MPC5604B开发板板载了一颗恩智浦的汽车级微控制器

MPC5604B(SPC5604CF2MLL6),LQFP100封装。



图7 TRK-USB-MPC5604B开发板核心微控制器


MPC5604B微控制器是基于恩智浦的Power Architecture处理器,该处理器产品可分为5大类,可支持网络、汽车、消费电子和工业控制等领域。



图8 Power Architecture处理器家族


其中MPC5xxx微控制器具有32位的e200或e300内核,适用于汽车应用和工业控制的高可靠性处理器,可面向汽车和工业动力总成、发动机管理、电机控制、车身控制、网关、底盘和安全、仪表板和显示屏管理应用,该系列MCU由单核到多核,高达55纳米技术符合ISO 26262等功能安全标准。又分成5类,其中MPC56xx子系列广泛应用于汽车应该用。



图9 MPC5xxx微控制器家族

按照恩智浦官方分类,MPC56xxx的分类和适用为:
MPC560xB:超可靠的32位MCU,适用于汽车和工业通用应用

MPC560xE:超可靠的32位MCU,适用于汽车ADAS和工业控制应用

 MPC560xP:超可靠的MPC560xP MCU,适用于汽车和工业安全应用

MPC560xS:超可靠的32位MCU,适用于仪表板和工业控制应用

MPC563xM:超可靠的32位MCU,适用于动力总成和工业控制应用

MPC564xA:超可靠的32位MCU,适用于动力总成、变速箱和工业控制应用[

MPC564xB-C:超可靠的MPC564xB-C MCU,适用于汽车和工业控制应用

MPC564xL:超可靠的32位MCU,适用于工业、底盘和安全应用

MPC5668G:超可靠的双核32位MCU,适用于网关和工业控制应用

 MPC5674F:超可靠的32位MCU,适用于动力总成和工业控制应用

MPC5676R:超可靠的32位MCU,适用于动力总成和工业控制应用

MPC567xK:超可靠的32位MCU,适用于ADAS和工业控制应用

其中MPC560xB/C/D系列32位微控制器是面向汽车车身电子和工业控制应用的器件。



图10 MPC560xB/C微控制器内部结构


MPC560xB/C的主要特性:
闪存:高达1.5 MB
EEPROM:64 KB DataFlash?
RAM:高达96 KB
定时器:16位,多达64个通道
ADC:10位,多达36通道;12位,多达16通道
6个CAN
6个SPI
10个LINFlex

其中LINFlex模块提供完全自动化局域互联网络(LIN)消息管理,从而减少CPU干预和消息延迟。eMIOS定时器在一个非常灵活的模块中结合了多个计数器源,如输入捕获、输出比较和PWM功能,PWM功能支持移相信号输出来提高电磁兼容性。交互触发单元CTU同步PWM输出信号与模数转换。FlexCAN模块同时支持FIFO,适合控制器区域网络(CAN)网关管理事件驱动的总线流量和周期性总线流量。而且恩智浦保证微控制器产品自自推出后至少保证15年供货。

2、仿真调试器

TRK-USB-MPC5604B开发板的设计者为用户提供了板载的仿真调试器OSBDM,OSBDM是一个开源的硬件/软件/固件设计,提供了不同的一种对恩智浦处理器的低速调试通信。是用户不需要额外购买调试器,从而降低成本。同时支持固件升级功能,可刷入不同的固件,实现对不同MCU的调试功能。



图11 TRK-USB-MPC5604B板载OSBDM调试器

3、跳线

在TRK-USB-MPC5604B开发板上,为用户提供了3个跳线:J3、J6、J7。在使用开发板时,需要注意它们的设置功能,其中J3是用于升级OSBDM仿真调试器固件的,当需要升级固件时,需要将J3跳线短接,然后将开发板重新插入USB接口就可以进入升级固件模式。J6和J7是对MPC5604B主为控制的Flex LIN引脚功能的选择,当J6和J7跳线的1-2引脚短接,就将LIN接口连接到板载的仿真调试器的虚拟串口上,通过USB接口可连接电脑,对系统进行串口调试功能,如果使2-3引脚短接,就将LIN引脚连接到PCI接口,可与塔式系统连接,使用功能丰富的外设资源。



图12 TRK-USB-MPC5604B开发板跳线位置



图13 TRK-USB-MPC5604B开发板跳线功能


这里要注意,跳线编号在电路板正面标出,但引脚编号在电路板的正面没有标出,不过设计者非常人性化的在电路板的背面标出了引脚编号,使用的时候要注意查看。



图14 TRK-USB-MPC5604B开发板跳线编号

4、PCI接口

TRK-USB-MPC5604B开发板虽然小巧,板载资源不多,但是提供了PCI接口,可连接到恩智浦推出的塔式系统上。



图15 TRK-USB-MPC5604B开发板PCI接口


恩智浦的塔式系统是一个为恩智浦8位、16位和32位微控制器而设计的极为丰富的模块化开发平台,可使开发人员通过快速原型技术进行样机研制,具有可互换、可重复利用的开发板(模块),以及开源设计文件,让您轻松定制设计,减少底层设计工作,使用户拥有更多时间专注于开发与众不同的解决方案。



图16 塔式系统结构

塔式系统由三种基本类型的电路板组成:MCU与处理器模块,外设及插件和侧板模块。MCU与处理器模块(主电路板)作为开发平台的控制中心,提供了针对ColdFire/ColdFire+MCU模块、DSC模块、KinetisMCU模块、PowerQUICC和QorIQ处理器模块等几十种,可实现对不同的MCU产品进行评估。

外设及插件提供了非常丰富的(例如模拟技术、音频、传感器、图形LCD、触摸板、传感器、无线电和其他插件等)外围模块和插件,可以快速接入各种塔式系统配置中,实现轻松、快速的原型设计。侧板模块是塔式系统的基本标准构件,侧板模块可连接MCU和外设模块,为所有配置的组装塔式系统提供所需的功率调节电路和结构完整性。塔式系统模块可以用作独立的调试工具,或者作为组装塔式系统的一部分,它具有集成调试接口,可以通过标准的USB线进行轻松编程和运行控制。


四、开发
了解了TRK-USB-MPC5604B开发板的硬件之后,下面来体验一下它开发环境以及开发过程。MPC5604B微控制器是恩智浦的32位MCU,面向汽车车身电子应用的集成器件,它有一个庞大的支持生态合作体系,其中包括软件驱动程序、操作系统和配置代码,以帮助快速实现用户的设计。

1、准备

(1)要使用TRK-USB-MPC5604B开发板,恩智浦为它提供了CodeWarrior Development Studio集成开发环境,官方提供了CodeWarrior Development Studio for MPC55xx/MPC56xx (Classic IDE) v2.10版本的IDE。不过目前CW开发环境有最新的CodeWarrior for Microcontrollers v10.6版本,该版本是在Eclipse开放开发平台上将面向ColdFire?、ColdFire+、DSC、Kinetis、MPC5xxx、RS08、S08和S12Z架构的开发工具集成为一个单一产品。下载地址:http://www.nxp.com/zh-Hans/products/software-and-tools/software-development-tools/codewarrior-development-tools/codewarrior-development-studios/codewarrior-for-microcontrollers/codewarrior-for-mcus-eclipse-ide-coldfire-56800-e-dsc-kinetis-freescale-56xx-rs08-s08-s12z-v10.6:CW-MCU10



图17 CW10.6集成开发环境地址

CodeWarrior for Microcontrollers v10.6支持恩智浦的多种产品开发,下载后安装时,记得勾选Qorivva选项以便对MPC5604B微控制器进行开发。


 

图18 CW10.6安装

(2)恩智浦还为TRK-USB-MPC5604B开发板提供了图形化的配置工具RAppID,这是一款面向MPC5XXX系列Power Architecture?控制器的图形开发工具系列,可让用户快速轻松地配置控制器并生成完整的文档。RAppID不仅能够生成用于初始化寄存器的C语言代码,而且还提供一个系统初始化函数,有序地激活控制器。使用RAppID能帮助用户节省时间。下载地址:http://www.nxp.com/zh-Hans/products/software-and-tools/hardware-development-tools/startertrak-development-boards/rappid-initialization-for-power-architecture:RAPPID。不过该工具需要许可才可以使用,大家下载后可向恩智浦发申请邮件,获得1个月的试用许可。

图19 RAppID图形配置工具地址

(3)最后还要安装TRK-USB-MPC5604B开发板的驱动,以便使用仿真调试器OSBDM。驱动地址:http://www.pemicro.com/osbdm/。
 

图20 OSBDM调试器主页


可以看到该网站不但有OSBDM调试器的驱动程序,还有调试器的最新固件版本和一些使用与塔式系统的工具等。在该网站下载驱动程序和固件时,需要注册用户才可以,需要使用有限才能注册,但要注意不能使用163等公共邮箱,否则无法完成注册下载。


首先下载驱动程序和固件程序。

图21 OSBDM调试器驱动与固件


安装驱动程序后,如果在设备管理器中查看TRK-USB-MPC5604B开发板被识别出了仿真调试器和虚拟串口即为正确安装驱动程序。



图22 TRK-USB-MPC5604B驱动安装


接下来把固件也更新一下,已获得更好的调试性能。首先安装并打开固件更新程序,将TRK-USB-MPC5604B开发板插入电脑,就可以检测到开发板目前固件版本。



图23 OSBDM调试器固件更新选项


按照提示选择正确的固件版本,点击更新后,将开发板的USB接口从电脑上移除,然后将J3跳线短接后,重新插入电脑,点击确认按钮开始更新固件。

图24 OSBDM调试器固件更新跳线设置



图25 OSBDM调试器固件更新


待固件更新完毕,将开发板从计算机移除,去掉J3的跳线帽,重新插入计算机,可以看到固件更新完成。



图26 OSBDM调试器固件更新完毕

2、测试
工具准备好了,接下来对开发过程进行简单测试,体验一下开发过程。在TRK-USB-MPC5604B开发板上有2个红绿双色LED发光二极管D4和D5,写个程序来控制一下LED亮灭。

图27 TRK-USB-MPC5604B开发板用户LED电路


打开CW10.6软件,新建一个基于MPC5604B的空白工程。可以看到CW10.6给我们自动新建了一个工程,很多工程文件给大家准备好了。
 

图28 CW10.6新建工程


根据要求写一下程序并编译。



图29 编写程序


完整测试代码如下:
#include 'MPC5604B.h'
void initModesAndClock(void) {
ME.MER.R = 0x0000001D; /* Enable DRUN, RUN0, SAFE, RESET modes */
/* Initialize PLL before turning it on: */
/* Use 1 of the next 2 lines depending on crystal frequency: */
CGM.FMPLL_CR.R = 0x02400100; /* 8 MHz xtal: Set PLL0 to 64 MHz */
/*CGM.FMPLL_CR.R = 0x12400100;*/ /* 40 MHz xtal: Set PLL0 to 64 MHz */
ME.RUN[0].R = 0x001F0074; /* RUN0 cfg: 16MHzIRCON,OSC0ON,PLL0ON,syclk=PLL0 */
ME.RUNPC[1].R = 0x00000010; /* Peri. Cfg. 1 settings: only run in RUN0 mode */
ME.PCTL[68].R = 0x01; /* MPC56xxB/S: select ME.RUNPC[1] */
/* Mode Transition to enter RUN0 mode: */
ME.MCTL.R = 0x40005AF0; /* Enter RUN0 Mode & Key */
ME.MCTL.R = 0x4000A50F; /* Enter RUN0 Mode & Inverted Key */
while (ME.GS.B.S_MTRANS) {} /* Wait for mode transition to complete */
/* Notes: */
/* 1. I_TC IRQ could be used here instead of polling */
/* to allow software to complete other init. */
/* 2. A timer could be used to prevent waiting forever.*/
while(ME.GS.B.S_CURRENTMODE != 4) {} /* Verify RUN0 is the current mode */
/* Note: This verification ensures a SAFE mode */
/* tranistion did not occur. SW could instead */
/* enable the safe mode tranision interupt */
}
void disableWatchdog(void) {
SWT.SR.R = 0x0000c520; /* Write keys to clear soft lock bit */
SWT.SR.R = 0x0000d928;
SWT.CR.R = 0x8000010A; /* Clear watchdog enable (WEN) */
}
void initLedGpio(void) {
SIU.PCR[68].R = 0x0220;
SIU.PCR[69].R = 0x0220;
SIU.PCR[70].R = 0x0220;
SIU.PCR[71].R = 0x0220;
SIU.GPDO[68].B.PDO = 1;
SIU.GPDO[69].B.PDO = 1;
SIU.GPDO[70].B.PDO = 1;
SIU.GPDO[71].B.PDO = 1;
}
void delay(void) {
vuint32_t i;
for (i = 0; i < 800000;="" i++)="">
}
int main(void) {
volatile int i = 0;
initModesAndClock(); /* Initialize mode entries and system clock */
disableWatchdog(); /* Disable watchdog */
initLedGpio();
/* Loop forever */
for (;;) {
SIU.GPDO[68].B.PDO = 0;
SIU.GPDO[69].B.PDO = 0;
SIU.GPDO[70].B.PDO = 0;
SIU.GPDO[71].B.PDO = 0;
delay();
SIU.GPDO[68].B.PDO = 1;
SIU.GPDO[69].B.PDO = 1;
SIU.GPDO[70].B.PDO = 1;
SIU.GPDO[71].B.PDO = 1;
delay();
}

}


接下来点击调试按钮,可以将程序装载到RAM或FLASH中运行,这里选择RAM。之后弹出了提示要求更新仿真调试器的固件。看来之前我们在官网上下载了最新固件并不是最新的,在CW10.6软件中还有更新的固件。(可能是由于PE被恩智浦(即之前的飞思卡尔)收购后,只在CW10.6中更新了固件,并没有在PE网站上进行更新),按照提示更新固件,就可以在CW10.6上面使用OSBDM仿真调试器了。注意,不更新是无法在新版本的CW10.6上面使用TRK-USB-MPC5604B开发板的!



图30 CW10.6要求更新开发板固件


在调试界面点击运行,即可运行查看效果,可以看出实现预期要求。

图31 CW10.6调试界面



图32 测试运行效果


整个开发过程基本还算顺利。在使用TRK-USB-MPC5604B开发板的过程中,个人感觉基于Power Architecture?架构的MCU芯片使用有许多与其它系列MCU(比如ARM)有较大差异,资源相对比较少,因此入门有些门槛,当然,这样更需要一块合适的入门级开发板。现在恩智浦也推出了基于ARM架构的Kinetis系列MCU,其中KEA系列同样是面向汽车及的微控制器。

五、总结
总之,StarterTrak USB套件(TRK-USB-MPC5604B)是一款恩智浦的低成本开发板,板载一颗汽车级的微控制器MPC5604B,带有USB接口的OSBDM仿真调试器,同时兼做虚拟串口功能,可方便用户调试使用,开发板还具有一个可与恩智浦塔式系统兼容的PCI卡边,可以与恩智浦的塔式系统无缝连接,使用即为丰富的塔式系统资源,可帮助工程师快速的对汽车车身电子和工业控制等应用进行设计实现。

六、参考
1、TRK-USB-MPC5604B: MPC5604B StarterTRAK USB 开发系统
2、MPC560xB: 超可靠的MPC56xB MCU,适用于汽车和工业通用LIN应用
3、EMBEDDED OSBDM
4、CodeWarrior for MCUs (Eclipse IDE)


点击
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
网络机顶盒USB口刷机/固件升级通用教程
“小身材,大智慧”——STM32 NUCLEO-F031K6测评
忆典S1(H3芯片)安卓原生精简固件刷机教程(去除yunos)
机顶盒刷机教程 机顶盒刷机步骤详解与注意事项
J2465型调试器
C#脚本实践(五): 调试器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服