jtag模式下的mpc5554外部flash编程的设计与实现
0 引 言
随着信息技术的发展,嵌入式系统越来越广泛地应用于手机通信、汽车、航空航天、工业控制等领域。在这些电子产品中,大多以嵌人式微处理器为核心,配套相关的外围辅助设备,对控制对象进行软硬件的功能剪裁性设计,并将控制程序固化在非易失性存储器中。flash作为一种存储速度快,容量大,可多次擦写并且价格便宜的存储器得到了广泛的应用。由于有些微处理器内部不包含flash或flash存储空间太小、擦写次数有限,为了提供足够的程序存储空间,需要对其进行外部flash扩展。jtag是目前广泛使用的一种系统在线编程的模式,大大方便了嵌入式系统下载程序至flash。该设计使用的微处理器为mpc5554,通过jtag接口对外扩flash进行编程。
1 mpc5554简介
mpc5554是freescale公司推出的采用powerpc内核的一款32位微控制器.属于mpc5500系列第一代产品,可用于航空航天、汽车、工业控制等嵌入式系统中。如图1所示,mpc5554内部带有浮点运算单元,集成dsp运算指令,拥有较高的计算能力,可以满足多任务处理和实时控制的要求。mpc5554包含64 kb内部sram,32 kb cache,2 mb内部flash,64路edma,24路emios,64路etpu通道,2路esci,4路dspi,3路flexcan,40路12 b a/d(可扩展为64路),中断控制器,以及jtag,nexus调试接口等功能模块。mpc5554为416脚pbga封装,可在-40~+150℃的环境下工作,系统时钟可达132 mhz,中断延迟小于70 ns(@132 mhz),内部逻辑供电1.5 v,输入/输出供电3.3 v,5 v,外部总线接口支持1.62~3.6 v操作。
mpc5554提供2 mb可编程、非优化内部flash,可用于指令存取和数据存储。然而mpc5554内部的flash为cmf型flash,这种flash的缺陷是擦写次数有限,以擦写一次为单位计算,mpc5554的内部flash只能进行100次。对于开发人员,这种局限性非常不利于开发阶段的程序写入和功能调试。一种有效方法是扩展外部flash,这样可以在开发阶段将程序写入外部flash,待程序定版后,只需做稍微修改再写入内部flash。此外,当控制对象为复杂的多变量系统时,内部flash往往无法提供足够的程序存储空间,采用外部扩展flash就显得尤为必要。
2 jtag介绍
jtag(joint test action group)成立于1985年,由几家主要的电子制造商发起制订的pcb和ic测试标准。jtag建议于1990年被ieee批准为ieee1149.1-1990测试访问端口和边界扫描结构标准。该标准规定了进行边界扫描所需要的硬件和软件。jtag主要用于:电路的边界扫描测试和可编程芯片的在系统编程。目前mpc5554中使用的jtag为ieee1149.1-2001标准。
jtag是一种嵌入式处理器开发工具的接口,是目前单片机普遍采用的在系统调试和编程方式之一。使用jtag调试模式,用户可以发送指令和数据给处理器,同时也可以接收处理器发送过来的数据,这样就可以在外部实现对处理器的控制并进行一定的操作,譬如读写寄存器、擦除flash、向ram、flash写入数据等。标准的jtag接口是四线:tms,tck,tdi,tdo。相关jtag引脚的定义为:tck为测试时钟输入;tdi为测试数据输入,数据通过tdi引脚输入jtag接口;tdo为测试数据输出,数据通过tdo引脚从jtag接口输出;tms为测试模式选择,tms用来设置jtag接口处于某种特定的测试模式;trst为测试复位,输入引脚,低电平有效。
mpc5554提供jtag和nexus两种调试接口。为了使用方便,freescale公司开发出了针对jtag与nexus共用的专用烧写器与配套软件,为14针脚。其主要特点是双向同步串行通信。同步串行通信时钟由仿真器提供,并与单片机总线时钟同步。通过usbmultilink转换接口(连接到目标板14针jtag/nexus接口上),可以在线实现烧写、校验、检查、上载、擦写等功能。freescale对14针jtag/nexljs接口引脚定义,参见表1。
3 硬件设计
该系统的硬件设计为基于mpc5554的最小系统板,包括晶振电路、电源模块、i/o模块、a/d转换模块、rs 232通信端口,can端口,跑马灯,外扩2片amd公司的flash芯片am29lv160dt作为程序存储器,2片外扩ram,其功能模块如图2所示。
am29lv160dt存储容量为16 mb,供电方式为2.7~3.6 v单电压供电,无需另外提供flash擦除和写入电压。该芯片有48引脚fbga,48引脚tsop和44引脚so三种封装形式,该系统中使用so44封装形式,图3所示为其引脚逻辑图。其数据宽度可配置为8位(字节)和16位(字)两种模式。flash内部包含35个扇区,每个扇区大小根据数据宽度的不同而不同。表2列出了am29lv160dt的扇区地址分配。
为了在嵌入式系统中获得更高的性能优势,常需要构建32位存储系统,可通过以下两种方式构建:使用2片16位数据宽度的flash存储器芯片并联或者使用1片32位数据宽度的flash存储芯片。该系统设计要求程序存储器为4 mb容量,32位数据宽度,故采用2片am29lv160dt并联构建存储系统,其连接参见图4。将2片flash的byte引脚接高电平,使芯片工作在16位模式下,每片flash传送两个字节数据。该系统为32位数据宽度,所以需要两片flash芯片,同时传送4个字节数据。
由于mpc5554采用是大端数据格式,即高字节位于低地址,而am29lv160dt却与此相反,采用的是小端数据格式,所以在进行电路设计时,将mpc5554的地址线a[29:10]依次连接到2片am29lv160dt的地址线a[0:19]。芯片的ry/by引脚接高电平时可提供多种芯片“忙”监测功能,通过查询数据线检测芯片是否处于擦除或编程等“忙”状态,但在s044封装芯片中并无该引脚,故在该系统中并没有出现ry/by引脚。
4 软件实现
该系统软件开发基于codewarrior,p&e(proces-sor·expert)与jtag组合开发平台,图5是开发平台示意图。其中,codewarrior是freescale公司针对powerpc系列微控制器开发的集成开发环境。codewarrior集编辑器、调试器功能于一体,可进行编码、编译、编辑、链接和调试等开发过程。 codewarrior中使用c/c++语言进行编程。为了便于开发,frees-cale公司开发了供mpc5554配套使用的图形化开发工具p &e(processor expert),通过它对mpc5554各功能模块进行设置,生成相应函数和执行代码,可在codewarrior开发环境中使用。
mpc5554通过外部总线接口(extrenal bus inter-face,ebi)和存储器控制器提供对外部存储器的访问。其中,外部总线接口提供24条地址线和32条数据线与存储器相连,存储器控制器提供4条片选信号线cs[0:3],1条输出使能信号线oe,4条读写信号线we[0:3],用于选择和读写外部存储器或设备。mpc5554的24条地址线和4条片选信号配合可以访问64 mb的地址空间。
在软件实现方面,主要是对ebi相关寄存器进行设置,同时在siu(system integration unit)模块对相关管脚进行功能设置,以及对flash自身的程序设计。mpc5554自身划分了若干功能模块,并设有相应的寄存器。mpc5554的大部分引脚具有复用功能,每个引脚通过siu模块的pcr(pad configuration registers)寄存器进行功能选择。例如片选信号引脚功能复用为cs[0:3]_addr[8:11]_gpio[0:3],作为片选信号需要对寄存器进行设置,其他相关引脚同理设置。
siu.pcr[2].r=0x0443: //cs2
siu.pcr[3].r=0x0443: //cs3
mpc5554的ebi模块对外部数据总线进行设置,对某片选信号相对应的外扩存储器进行地址与存储空间设置。其中,or寄存器通过掩码的方式设置片选信号控制的存储空间大小。例如,cs[3]连接的flash起始地址为0x20000000,存储器空间为2 mb。
ebi.cs[3].br.r=0x20000003;
ebi.cs[3].or.r=0xffe00020;
该系统的重点是对flash进行操作的程序,主要是对am29lv160dt内部的命令寄存器按一定的时序写入命令,如表3所示。通过这些命令或命令序列可以实现获得芯片信息、数据读取、整体擦除、扇区擦除和数据写入等功能。
下面附一部分flash擦写程序。
5 结 语
在此实现了在jtag模式下对mpc5554外部flash的编程设计,验证了codewarrior,p&e与jtag组合开发平台的可用性,为mpc5554微控制器用于复杂多变量系统开发打下了基础。
通过四个例子,企业应如何部署人工智能以提供更好的客户体验方式
大咖齐聚、干货满满!2019炬芯Techlife多模态交互技术开发者大会与你共享!
广东省预计到今年底全省将建成5G基站3.48万座
面试二叉树看这11个就够了
复合式盐雾试验机的特点与适用范围
JTAG模式下的MPC5554外部FLASH编程的设计与实现
安富利:智能座舱将重新定义人机交互
聚焦 | 车企自建动力电池工厂,动力电池企业如何应对
李宁、安踏是如何应用RFID技术的?
磐石测控:DAGE4000HS高速多功能焊接强度测试仪的数据?
AM5-DB低压备自投装置 在河北冠益荣信科技公司洞庭变电站工程中的应用
苹果发布会:十三真的香,苹果罕见的减价增配
采用NMOS差分对结构实现低电压运算放大器的设计
华为P10防走丢神器,4种导航系统随意切换
华为Mate 40系列可能会在今年10月正式上市
鸿蒙底层架构是什么
LG G6:高通骁龙835+双摄像头设计,3月10日上市开卖
美高森美批量生产DIGI-G4 OTN处理器
让PCB屏蔽保护您的设计,
全球首款5G笔记本跑分疑似曝光 搭载高通骁龙8cx移动平台