首页 > 评测 > 专注汽车电子应用——TRK-USB-MPC5604B评测
专注汽车电子应用——TRK-USB-MPC5604B评测
- [导读]
- 说到汽车电子,人们都会想到恩智浦(NXP)和飞思卡尔(Freescale),而去年恩智浦将飞思卡尔收购,组建了一个庞大的汽车电子供应商,提供了从车载联网、照明、媒体、电源以及门禁防盗等广泛的产品和解决方案。今天21 IC给大家带来了NXP的用于评估MPC5604B微控制器的StarterTrak USB套件——TRK-USB-MPC5604B。
完整测试代码如下:
#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系列同样是面向汽车及的微控制器。
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前