TRK-MPC5604P开发板硬件配置与调试实战指南
1. 从零上手TRK-MPC5604P一块被低估的Power Architecture开发板如果你正在寻找一款能够深入理解汽车电子或复杂工业控制核心的微控制器开发平台那么飞思卡尔现恩智浦的TRK-MPC5604P评估板绝对是一个不应被忽视的选择。它不像那些主打“简单易用”的ARM Cortex-M开发板那样流行但正是这份“硬核”特质让它成为了学习Power Architecture架构、掌握汽车级MCU开发流程的绝佳跳板。我手头这块板子已经跟了我好几年从最初的懵懂摸索到后来的项目实战它帮我打通了从硬件原理到软件调试的完整链路。今天我就结合自己的使用经验为你拆解这块板子的硬件配置核心与调试要点让你能快速上手避开我当年踩过的那些坑。TRK-MPC5604P的核心是一颗MPC5604P微控制器基于经典的Power Architecture e200z0内核。别被“经典”这个词吓到在汽车发动机控制单元ECU、车身控制器等对可靠性和实时性要求极高的领域这套架构依然占据着重要地位。这块开发板最大的价值在于它将一个复杂的车规级MCU系统以评估板的形式完整呈现给你从核心的嵌入式OSJTAG调试电路、多路电源管理到CAN、LIN总线接口、模拟信号采集、用户IO等外设一应俱全。通过灵活的跳线配置你可以像搭积木一样组合出不同的硬件工作模式这对于理解一个真实嵌入式系统的硬件构成至关重要。无论你是嵌入式领域的学生、希望切入汽车电子方向的工程师还是需要对现有Power Architecture项目进行原型验证的开发者这篇文章都将为你提供一份详实的“开箱即用”指南。2. 硬件深度解析不只是供电与IO那么简单拿到一块开发板很多人的第一步是插电、跑例程。但对于TRK-MPC5604P我强烈建议你先花点时间理解它的硬件设计逻辑。这不仅能避免因错误配置导致的硬件损坏更能让你在后续调试中事半功倍。2.1 核心供电架构与跳线配置实战TRK-MPC5604P的供电设计体现了工业级产品的严谨性提供了三种供电方式和两种核心电压选择。盲目连接电源是新手最容易犯的错误之一。2.1.1 电源输入选择J1板载的跳线J1决定了整个板的能量来源。默认设置跳线帽连接3-4引脚是通过USB接口的5V供电。这是最方便的入门方式直接用附带的USB线连接电脑即可。但要注意USB口通常只能提供最大500mA的电流。当你连接了较多外设如电机驱动子卡、多个外部传感器时可能会供电不足导致板子工作不稳定或无法启动。实操心得在进行任何功耗较大的实验如驱动电机、点亮大功率LED阵列前务必切换到外部电源。我遇到过因为USB供电不足导致CAN总线通信时好时坏的诡异问题排查了半天才发现是电源的锅。外部直流电源9-12V将J1跳线帽连接到1-2引脚。此时你需要一个中心为正极的2.1/5.5mm接口的直流电源连接到板子的DC电源插孔。板载的稳压电路会将其降至5V供系统使用。这是最稳定可靠的供电方式。通过SBC MC33905供电将J1跳线帽连接到5-6引脚。这种方式通常用于特定的系统级管理场景初学者较少使用。2.1.2 系统工作电压选择J20这是另一个关键跳线它决定了给MPC5604P芯片及其他数字逻辑电路供电的电压是5V还是3.3V。MPC5604P是一个5V/3.3V双电压兼容的芯片但你必须通过J20明确告诉它。1-2默认系统工作在5V。此时所有GPIO引脚的高电平为5V。如果你的外围器件是5V电平的很多老式传感器、模块是5V就选这个。3-4系统工作在3.3V电源来自板载的LDO低压差线性稳压器。这是目前更主流的电平标准绝大多数现代传感器、通信模块如ESP8266、某些型号的蓝牙模块都是3.3V电平。5-6系统工作在3.3V电源来自电机控制子卡接口P8。仅在连接了特定的电机驱动板且由其提供3.3V时才使用。核心原则J20的设置必须与你计划连接的外设电平匹配如果你将J20设为5V却连接了一个3.3V的器件可能会损坏该器件。反之如果设为3.3V却连接5V器件可能导致通信逻辑错误高电平识别不了。在改变J20设置前请务必断开所有外部连接。2.1.3 模拟电源VDDAJ21MCU内部的ADC模数转换器、DAC等模拟电路通常需要一个更干净、更稳定的独立电源即VDDA。J21用于选择VDDA的电压来源同样有5V和3.3V选项。一个重要的经验是VDDA的电压最好与VDD数字电源由J20决定保持一致或者至少不超过VDD。通常将J21设置为与J20相同的电压档位是最稳妥的做法例如J20选5VJ21也选1-2的5V档。2.2 启动模式配置代码从哪里开始运行MPC5604P支持多种启动方式这通过J17FAB、J18ABS0、J19ABS2这三个跳线来配置。理解这个你才能明白你的程序是如何被芯片加载执行的。J17FAB这是主启动模式选择。1-2串行启动模式。芯片会尝试通过特定的串行接口由ABS0和ABS2决定是CAN还是LIN从外部设备接收启动代码。这常用于工厂生产烧录或系统升级。2-3默认内部启动模式。芯片从内部的Flash存储器开始执行程序。这是我们最常用的模式你的程序通过调试器下载到内部Flash后每次上电就从这里运行。J18ABS0 J19ABS2这两个跳线在串行启动模式J171-2下生效共同决定使用哪个通信接口进行启动加载。组合方式决定了是使用FlexCAN、LINFlex接口还是进行自动波特率扫描。对于绝大多数开发和评估场景我们不需要使用串行启动。因此保持J17在默认的2-3内部启动J18和J19可以保持默认或根据你的需求调整它们在某些情况下也会影响芯片复位后的初始配置但通常保持默认即可。避坑指南如果你发现程序下载成功后一按复位键或重新上电程序就不跑了首先检查J17很可能你不小心把它拨到了串行启动模式导致芯片上电后不去执行Flash里的程序而是傻傻地等待串行接口发来的启动指令。2.3 调试与复位电路连接开发环境的桥梁这是让代码“活”起来的关键部分。板载的嵌入式OSJTAG电路是核心。J33 J34这两个跳线管理复位信号。J33允许OSJTAG调试器发出的复位信号触发MCU复位。通常保持默认1-2连接这样你在IDE里点击“Reset”按钮时才能控制板子复位。J34系统复位使能。必须保持连接默认否则所有复位源按钮、OSJTAG、SBC都无法传到MCU。J35OSJTAG引导加载程序使能。正常情况下保持断开OFF。只有当OSJTAG电路本身的固件需要升级时才需要短接此跳线使其进入引导加载模式。日常开发绝对不要动它。3. 外设接口配置与实战连接TRK-MPC5604P板载了丰富的调试和通信外设正确配置它们才能发挥作用。3.1 虚拟串口最直接的调试输出板子通过一片USB转串口芯片将MCU的SCI串行通信接口引脚映射成了一个电脑可识别的COM口。这比外接一个USB转TTL模块方便多了。J7 (TXD) J8 (RXD)这两个跳线决定了MCU的串口收发引脚连接到哪里。默认1-2连接到虚拟串口。这是我们最常用的设置可以在电脑上用串口助手如Putty、SecureCRT打印调试信息。2-3连接到板载的RS-232电平转换芯片进而连接到DB9接口。这用于与老式设备或需要RS-232电平的场合。操作步骤在CodeWarrior中编写程序初始化SCI模块设置好波特率如115200然后就可以用printf重定向到串口输出信息了。连接USB线后在电脑的设备管理器中会新增一个“PEMicro USB Serial Port”设备记住它的COM口号在串口助手中选择即可。3.2 CAN与LIN总线汽车电子的语言这是这块板子的精髓所在也是它区别于通用开发板的地方。3.2.1 CAN总线配置J6CAN信号使能跳线。默认是连接的1-2, 3-4这会将MCU的CAN_TXD和CAN_RXD引脚连接到板载的CAN收发器MC33901。板子已经集成了120欧姆的终端电阻。如果你要连接到一个已有的CAN网络且该网络已有终端电阻可能需要移除板上的电阻通过焊接调整。连接器板载一个DB9接口符合CAN标准你可以制作或购买一个DB9转OBD或DB9转接线连接到其他CAN节点或CAN分析仪如PCAN-USB, ZLG的CAN卡。3.2.2 LIN总线配置LIN配置稍复杂因为它有两路通道LIN0, LIN1和两个连接器需要跳线选择路由。J13 (LIN TXD) J14 (LIN RXD)选择MCU的哪一路LIN发送/接收引脚连接到LIN收发器。默认1-2是LIN0。J11 J12使能LIN信号连接到对应的物理连接器。J11默认连接使能LIN0J12默认断开LIN1禁用。如果你只用一路LIN保持默认即可。J9 J10为LIN连接器提供电源VBAT。默认断开因为LIN从节点通常由主节点供电。如果你的板子要作为LIN主节点并为从节点供电则需要短接相应的跳线。实战技巧调试CAN/LIN时强烈建议使用一个USB转CAN/LIN的分析仪作为另一个节点。这样你不仅可以发送数据给开发板更能“监听”总线上的所有报文对于分析通信协议、排查错误帧至关重要。配置CAN波特率时务必保证总线上的所有节点波特率一致。3.3 用户IO按钮、LED与拨码开关板载了4个用户按钮、4个LED和4位拨码开关方便进行人机交互测试。按钮通过J26使能J24选择有效电平低有效/高有效J25选择上拉/下拉电阻。默认配置是低有效、上拉。这意味着按钮未按下时MCU读到的引脚是高电平按下时变为低电平。LED通过J27使能。LED是共阳极接法即MCU引脚输出低电平时点亮LED。在程序里将对应GPIO引脚配置为输出模式写0点亮写1熄灭。拨码开关通过J28使能J29选择有效电平。你可以用它来设置工作模式或参数。配置示例实现按钮控制LED假设你用按钮SW1对应MCU PD0控制LED1对应MCU PD4。硬件确认确保J26的1-2SW1、J27的1-2LED1跳线帽在位。J24、J25、J29保持默认。软件步骤初始化PD0为上拉输入模式。初始化PD4为推挽输出模式初始输出高LED灭。在主循环中不断读取PD0引脚状态。如果检测到低电平按钮按下则将PD4输出低LED亮否则输出高LED灭。3.4 模拟输入电位器与光敏电阻板子提供了两个模拟信号源方便测试ADC。J30使能电位器连接到MCU的PE0ADC通道。电位器中间抽头的电压会在0V到VDDA之间变化。J31使能光敏电阻连接到MCU的PE1ADC通道。光照越强电阻值越小分压得到的电压越高。注意事项使用ADC前除了配置J30/J31务必确认J21VDDA已正确连接并供电。ADC的参考电压通常就来自VDDA。读取ADC值时需要根据VDDA的实际电压5V或3.3V来换算实际的物理量如角度、光照强度。4. 软件开发环境搭建与第一个程序硬件配置妥当后我们就要让软件跑起来了。TRK-MPC5604P配套的官方IDE是CodeWarrior for Power Architecture这是一个功能强大的集成开发环境。4.1 驱动安装与板卡识别安装CodeWarrior使用随板附带的DVD或从恩智浦官网下载指定版本的CodeWarrior Development Studio进行安装。安装过程按照向导进行即可。连接硬件确保板子通过USB线连接到电脑且J1跳线设置在USB供电模式3-4。驱动安装首次连接时Windows可能会自动搜索并安装OSJTAG和虚拟串口的驱动。如果自动安装失败你需要手动指定驱动路径通常在CodeWarrior的安装目录下如C:\Freescale\CW PA vx.x\Drivers\PE。验证连接安装成功后设备管理器中应出现PE Microcomputer Systems - PEMicro USB JTAG(OSJTAG调试器)端口 (COM和LPT) - PEMicro USB Serial Port (COMx)(虚拟串口) 同时板卡上的绿色USB指示灯和黄色电源指示灯应常亮。4.2 创建与配置第一个工程CodeWarrior使用“工程”来管理代码。我们创建一个简单的LED闪烁工程。启动CodeWarrior创建新工程选择File - New - Bareboard Project。选择处理器在设备选择中找到并选择MPC5604P。CodeWarrior会自动为你生成该芯片的底层初始化代码启动文件、系统时钟配置、内存映射等。选择连接方式在“Connection”选项里选择PE USB OSJTAG。这是使用板载调试器的关键。编写主程序在生成的main.c文件中你会看到一个空的main函数。在此添加代码#include MPC5604P.h // 包含芯片寄存器定义头文件 void delay(void) { volatile unsigned int i, j; for(i0; i1000; i) for(j0; j1000; j); } int main(void) { // 1. 初始化系统时钟通常由启动代码完成这里假设已初始化 // 2. 配置LED引脚假设为PD4为输出 // 使能PORTD时钟SIU模块 SIU.PCR[68].B.PA 0; // PD4 功能GPIO SIU.PCR[68].B.OBE 1; // 输出使能 SIU.PCR[68].B.IBE 0; // 输入禁止 SIU.GPDO[68].B.PDO 1; // 初始输出高LED灭 while(1) { SIU.GPDO[68].B.PDO 0; // 输出低LED亮 delay(); SIU.GPDO[68].B.PDO 1; // 输出高LED灭 delay(); } return 0; }这段代码直接操作芯片的SIU系统集成单元寄存器来控制GPIO。CodeWarrior生成的工程模板里通常已经包含了MPC5604P.h其中定义了所有寄存器。编译工程点击工具栏上的“Build”按钮锤子图标。如果一切配置正确下方“Problems”窗口应该没有错误。4.3 代码下载、调试与运行这是最激动人心的环节将代码灌入芯片并控制它执行。下载程序点击工具栏上的“Debug”按钮虫子图标。CodeWarrior会自动编译如果代码有改动、连接调试器并将程序下载到板载MCU的Flash中。下载完成后代码会暂停在main函数的入口处。基础调试单步执行 (F5)逐行执行代码观察程序流程。运行/暂停 (F6/F7)全速运行程序或暂停当前执行。查看变量/寄存器在调试视图下可以查看和修改全局变量、局部变量以及MCU的所有核心寄存器、外设寄存器。这对于排查硬件配置错误无比重要。例如你可以查看SIU.PCR[68]的值确认GPIO配置是否正确。查看内存可以查看任意内存地址的内容对于分析数组、缓冲区数据非常有用。运行程序在调试界面点击“Resume”绿色箭头或直接按板上的复位按钮如果J33、J34配置正确程序就会全速运行。你应该能看到板上的LED1开始闪烁。调试核心心法嵌入式调试尤其是底层驱动调试“寄存器视图”是你的第一双眼睛。当程序行为不符合预期时比如LED不亮、串口没输出不要盲目猜测首先暂停程序去查看对应的外设控制寄存器PCR for GPIO, SCI寄存器 for 串口的配置位是否和你代码中设置的一致。很多时候是时钟没有使能或者引脚复用功能没选对。5. 进阶实战集成CAN总线通信掌握了GPIO和调试基础后我们来挑战一个更贴近实际应用的模块CAN总线。我们将配置MPC5604P的FlexCAN模块实现简单的报文发送。5.1 硬件与软件准备硬件确认确保J6跳线帽在位使能CAN收发器。准备一个USB-CAN分析仪通过双绞线连接到板载的DB9 CAN接口。注意CAN_H接CAN_HCAN_L接CAN_L并在总线的两端接上120欧姆终端电阻开发板上通常已有一端。软件规划我们需要初始化FlexCAN模块配置波特率并实现一个发送函数。5.2 FlexCAN模块初始化代码解析以下是一个简化的FlexCAN初始化与发送示例重点在于理解配置流程#include MPC5604P.h #define CAN_BAUDRATE 500000 // 500kbps 常用CAN波特率 void FlexCAN0_Init(void) { // 1. 使能FlexCAN0模块时钟 ME.PCTL88.B.RUN_CFG 1; // 在RUN模式下使能CAN0时钟 // 更完整的做法是配置ME模式入口模块此处简化。实际工程中CodeWarrior的处理器专家或初始化代码会处理。 // 2. 释放FlexCAN0模块复位如果处于复位状态 CAN_0.MCR.B.MDIS 0; // 使能模块 CAN_0.MCR.B.FRZ 1; // 进入冻结模式以便配置 CAN_0.MCR.B.HALT 1; // 3. 配置波特率 (500kbps 40MHz 外设时钟) // 计算时序参数波特率 Freq / (Presdiv * (1 TimeSeg1 TimeSeg2)) // 假设PCLK40MHz, 目标500kbps。 预分频器Presdiv 4, 则 TimeQuanta 40M / (4 * 500k) 20 // 分配TimeSeg1 13, TimeSeg2 6, PropSeg 1 (包含在TimeSeg1中) // 则总和为 1(同步段) 13 6 20 个时间份额 CAN_0.CTRL1.B.PRESDIV 4 - 1; // 预分频值 PRESDIV 1 CAN_0.CTRL1.B.PROPSEG 1 - 1; // 传播段时间段 PROPSEG 1 CAN_0.CTRL1.B.PSEG1 13 - 1; // 时间段1 PSEG1 1 CAN_0.CTRL1.B.PSEG2 6 - 1; // 时间段2 PSEG2 1 CAN_0.CTRL1.B.RJW 6 - 1; // 再同步跳转宽度 PSEG2 // 4. 配置消息缓冲区MB0用于发送 CAN_0.MCR.B.MAXMB 0; // 使用最多16个消息缓冲区0-15 CAN_0.RXMGMASK.R 0xFFFFFFFF; // 全局接收掩码先允许所有ID // 5. 退出冻结模式开始正常工作 CAN_0.MCR.B.HALT 0; while(CAN_0.MCR.B.FRZACK); // 等待退出冻结模式确认 CAN_0.MCR.B.FRZ 0; } uint8_t FlexCAN0_SendMsg(uint32_t id, uint8_t *data, uint8_t len) { // 使用消息缓冲区0 (MB0) 发送 volatile struct CAN_MB *tx_mb CAN_0.MB[0]; // 等待缓冲区空闲 while(tx_mb-CS.B.CODE ! 0x8); // 配置消息 tx_mb-CS.B.CODE 0xC; // 设置为“发送数据帧”状态 tx_mb-CS.B.SRR 1; // 使用标准远程帧对数据帧设为1 tx_mb-CS.B.IDE 0; // 使用标准ID (11位) tx_mb-CS.B.RTR 0; // 数据帧 tx_mb-CS.B.DLC len; // 数据长度码 tx_mb-ID.R id 18; // 标准ID放在高11位 // 填充数据 for(int i0; ilen i8; i) { tx_mb-DATA.B[i] data[i]; } // 激活发送 tx_mb-CS.B.CODE 0xC; // 再次写入CODE启动发送 return 0; // 成功 } int main(void) { // 系统初始化... FlexCAN0_Init(); uint8_t can_data[8] {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}; uint32_t can_id 0x123; // 标准ID while(1) { FlexCAN0_SendMsg(can_id, can_data, 8); // 添加延时避免发送过快 for(volatile int i0; i1000000; i); } }代码关键点解析时钟使能任何外设工作前必须先使能其时钟。这是最容易被忽略的一步会导致外设“死了一样”没反应。冻结模式配置CAN波特率等参数时必须让模块进入冻结模式FRZ1, HALT1。波特率计算这是CAN初始化的核心。需要根据芯片的输入时钟频率PCLK和期望的波特率计算预分频器PRESDIV、时间段1PSEG1、时间段2PSEG2等参数。计算不准确会导致通信失败或错误帧频发。消息缓冲区FlexCAN使用邮箱Message Buffer机制来管理报文。每个邮箱可以配置为发送或接收。这里我们简单地将MB0配置为发送邮箱。5.3 调试与验证将上述代码整合到你的工程中编译下载。打开USB-CAN分析仪的上位机软件如ZLG的CANTestPCAN-View等。在软件中设置相同的波特率500kbps并启动CAN设备。运行开发板上的程序。你应该能在上位机软件中看到ID为0x123数据为11 22 33 44 55 66 77 88的CAN报文周期性地出现。常见问题排查收不到报文首先检查硬件连接线序、终端电阻、波特率是否一致。然后在调试器中单步执行查看FlexCAN0_SendMsg函数中while(tx_mb-CS.B.CODE ! 0x8);这一行是否通过。如果一直卡在这里说明MB0未被释放可能是初始化未完成或模块有错误。查看CAN_0.ESR寄存器错误状态寄存器的值它能告诉你很多错误信息如是否处于警告状态、是否发生了格式错误等。全是错误帧几乎可以肯定是波特率不匹配。请仔细核对开发板MCU的时钟树配置PCLK频率与代码中的波特率计算并确保分析仪的波特率设置完全一致。也可以尝试一个更低的波特率如125kbps先确保通信链路通畅。6. 开发中常见问题与故障排查实录即使按照指南操作在实际开发中你仍可能会遇到各种问题。下面是我总结的一些典型故障及其排查思路希望能帮你节省大量时间。6.1 开发板连接失败IDE无法识别现象CodeWarrior或PE软件中的连接助手显示“No device connected”或类似错误。排查步骤检查物理连接USB线是否插紧尝试更换USB线或电脑USB口。确保板卡绿色USB灯亮起。检查电源跳线J1是否在USB供电3-4位置如果J1设在了外部电源但你没接板子自然没电。检查驱动打开设备管理器查看“PE Microcomputer Systems”下是否有带感叹号的PEMicro USB JTAG设备。如果有需要手动更新或重新安装驱动。驱动路径通常在CodeWarrior安装目录的Drivers\PE下。检查J35跳线J35OSJTAG Bootloader Enable是否被短接如果短接了OSJTAG会进入固件升级模式无法用于正常调试。确保J35处于断开OFF状态。尝试重启与重插重启电脑并重新插拔USB线。有时操作系统或驱动会卡住。检查其他软件冲突关闭所有可能占用USB端口的软件如其他的编程器软件、串口助手等。6.2 程序下载成功但复位/重新上电后不运行现象在调试模式下程序运行正常但退出调试模式、按下复位键或断电重启后程序“丢失”了。原因与解决首要怀疑启动模式跳线J17。这几乎是最常见的原因。请确认J17跳线帽在2-3位置内部Flash启动而不是1-2串行启动。在串行启动模式下芯片每次上电都会等待外部调试器发送启动指令不会执行Flash中的程序。检查代码初始化部分确认你的代码在main函数之前在启动文件或__init_hardware函数中是否正确初始化了时钟特别是系统时钟SYSCLK和Flash访问时钟。如果时钟初始化错误后续代码可能无法在正确的速度下运行导致死机。检查看门狗MPC5604P默认可能开启了软件看门狗。如果你的程序没有及时喂狗看门狗超时会导致系统复位。在初始化阶段可以暂时禁用看门狗SWT.SR.B.WEN 0;待系统稳定后再配置。6.3 外设如UART CAN无法正常工作现象按照手册配置了外设寄存器但发送/接收不到数据。系统性排查流程时钟是第一生命线确认该外设模块的时钟是否使能。查看芯片参考手册的“Clock Distribution”章节和ME模式入口模块的寄存器。在CodeWarrior调试时直接查看ME.PCTL[模块号]寄存器的值。引脚复用配置MCU的引脚通常有多种功能GPIO、UART、CAN等。你必须通过SIU.PCR寄存器将引脚配置到正确的“交替功能”上。例如将UART_TXD引脚配置为GPIO输出自然无法发送数据。寄存器配置顺序有些外设有严格的配置顺序。例如CAN配置前要进入冻结模式ADC校准有特定流程。仔细阅读参考手册中该外设的“Initialization Sequence”。中断与DMA如果你使用了中断或DMA请检查中断向量表配置是否正确中断是否使能优先级是否合理以及DMA通道是否配置并启动。硬件链路检查用万用表测量信号引脚电压。对于UART可以尝试在TX引脚上看到变化的电平对于CAN在静默时CAN_H和CAN_L应有约2.5V的电压差。利用调试器单步执行初始化代码每一步后都查看相关外设的控制状态寄存器CSR确认配置位是否按预期被写入。这比盲目修改代码有效得多。6.4 电源相关的不稳定问题现象程序运行时好时坏偶尔死机或连接某些外设后工作异常。排查测量电源电压用万用表测量板上的3.3V/5V电源网络电压是否稳定尤其在MCU全速运行或外设工作时电压是否有大幅跌落。检查供电能力如果你使用USB供电J13-4并且连接了多个外设很可能供电不足。尝试改用外部9-12V电源供电J11-2。检查VDDA模拟电路ADC工作不正常很可能是VDDAJ21未连接或电压不稳。确保J21正确连接且电压纹波小。注意电平兼容再次强调连接任何外部设备前确认其逻辑电平与开发板J20设置的系统电压是否兼容。6.5 从评估板到自定义目标板当你用熟TRK-MPC5604P后可能会设计自己的电路板。此时板载的OSJTAG就无法直接使用了。你需要一个独立的调试器如PE的USB Multilink或Cyclone MAX。在CodeWarrior中只需将连接目标从“PE USB OSJTAG”改为你使用的调试器型号如“PE USB Multilink”并将调试器的JTAG口标准14pin接口连接到你自己板子的JTAG接口上即可。软件开发和调试流程与使用评估板时完全一致。这种无缝过渡是使用官方评估板的一大优势。