首頁(yè) > 評(píng)測(cè) > 專(zhuān)注汽車(chē)電子應(yīng)用——TRK-USB-MPC5604B評(píng)測(cè)
專(zhuān)注汽車(chē)電子應(yīng)用——TRK-USB-MPC5604B評(píng)測(cè)
- [導(dǎo)讀]
- 說(shuō)到汽車(chē)電子,人們都會(huì)想到恩智浦(NXP)和飛思卡爾(Freescale),而去年恩智浦將飛思卡爾收購(gòu),組建了一個(gè)龐大的汽車(chē)電子供應(yīng)商,提供了從車(chē)載聯(lián)網(wǎng)、照明、媒體、電源以及門(mén)禁防盜等廣泛的產(chǎn)品和解決方案。今天21 IC給大家?guī)?lái)了NXP的用于評(píng)估MPC5604B微控制器的StarterTrak USB套件——TRK-USB-MPC5604B。
完整測(cè)試代碼如下:
#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();
}
}
接下來(lái)點(diǎn)擊調(diào)試按鈕,可以將程序裝載到RAM或FLASH中運(yùn)行,這里選擇RAM。之后彈出了提示要求更新仿真調(diào)試器的固件?磥(lái)之前我們?cè)诠倬W(wǎng)上下載了最新固件并不是最新的,在CW10.6軟件中還有更新的固件。(可能是由于PE被恩智浦(即之前的飛思卡爾)收購(gòu)后,只在CW10.6中更新了固件,并沒(méi)有在PE網(wǎng)站上進(jìn)行更新),按照提示更新固件,就可以在CW10.6上面使用OSBDM仿真調(diào)試器了。注意,不更新是無(wú)法在新版本的CW10.6上面使用TRK-USB-MPC5604B開(kāi)發(fā)板的!
圖30 CW10.6要求更新開(kāi)發(fā)板固件
在調(diào)試界面點(diǎn)擊運(yùn)行,即可運(yùn)行查看效果,可以看出實(shí)現(xiàn)預(yù)期要求。
圖31 CW10.6調(diào)試界面
圖32 測(cè)試運(yùn)行效果
整個(gè)開(kāi)發(fā)過(guò)程基本還算順利。在使用TRK-USB-MPC5604B開(kāi)發(fā)板的過(guò)程中,個(gè)人感覺(jué)基于Power Architecture®架構(gòu)的MCU芯片使用有許多與其它系列MCU(比如ARM)有較大差異,資源相對(duì)比較少,因此入門(mén)有些門(mén)檻,當(dāng)然,這樣更需要一塊合適的入門(mén)級(jí)開(kāi)發(fā)板。現(xiàn)在恩智浦也推出了基于A(yíng)RM架構(gòu)的Kinetis系列MCU,其中KEA系列同樣是面向汽車(chē)及的微控制器。
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車(chē)啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前