第九章 MC9S08GT16实验系统.docx
- 文档编号:28479923
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:37
- 大小:1.24MB
第九章 MC9S08GT16实验系统.docx
《第九章 MC9S08GT16实验系统.docx》由会员分享,可在线阅读,更多相关《第九章 MC9S08GT16实验系统.docx(37页珍藏版)》请在冰豆网上搜索。
第九章MC9S08GT16实验系统
第九章MC9S08GT16实验系统
9.1概述
天津工业大学FreescaleMCU/DSP研发中心开发的MC9S08GT16实验系统实现了实验板与CodeWarrior的完美结合,它提供了一个良好的学习环境,从而能够实现快速入门和提高。
Freescale于2004年推出了08系列单片机的增强系列——MCS08系列。
MCS08系列单片机的内核使用HCS08CPU。
与HC08CPU相比,HCS08CPU速度更快,内部总线频率由最高8MHz提高到20MHz,即执行一条基本指令的时间是50ns。
该板融合了PE公司的ICS功能,通过两次按键,可以实现上位机和目标板的连接。
GT16本身是44脚的芯片,16KBflash,1KB字节RAM,具有定时器通道、键盘中断、AD通道等接口,该系统板扩展了3个LED发光二极管和2个按键等,功能完善,我们开发的电路板在调试状态31个端口留给用户使用(PTE0、PTE1被占用),运行状态33个端口均可以给用户使用,另外各端口处与其复用的功能也都分别留出相应端口,以方便用户的使用。
MC9S08GT16系统可以直接和Codewarrior相连,下载程序,在线单步运行、断点调试、连续运行、修改寄存器(包括PC)和存储单元等特点,可以很方便地进行教学,适于大学本科及大专、高职的学生作为入门教学系统。
随着MCS08系列不断向市场推进,其性价比在8位单片机当中相当可观,,同时该系列产品中还集成了片上调试器(BDM),实现了片上仿真、模拟等功能,极大地减少了开发工具的成本。
因此,可将该系列的单片机作为研究教学,也可以作为大学生电子实践制作的首选。
实验板硬件部分主要由MC9S08GT16芯片及外围电路、LED发光二极管显示、按键等部分组成,通过CodeWarrior完成芯片程序的写入、运行、断点调试、脱机仿真等功能。
本实验板的突出优点是可以根据需要进行模式选择,即用户模式或用户监控模式,并可以利用CodeWarrior来实现程序的单步运行、断点调试、脱机仿真等功能。
9.2MC9S08GT16MCU的性能概述
MC9S08GT16是HCS08微控制器系列中的产品,作为Freescale半导体公司最新的8位MCU,HCS08系列MCU是高性能与低功耗的完美结合,其性能可与许多16位MCU相当,该系列更适合低功耗、高性能的应用,如便携式电子式产品。
HCS08不是用来替代HC08系列,而是HC08系列的一个有益补充。
●采用高性能40MHz的MC9S08中央处理器,
●与M68HC05和M68HC08指令代码完全向上兼容,比HC08系列的MCU增加了1条基本指令(即BGND这一条)
●工作电压范围是1.8V~3.6V,低于2.08V运行时,最大总线速度应降至8MHz或更低,高于2.08V运行时,最大总线速度可达20MHz
●8位字节可调整的内置振荡器,可使用低频(32KHz~100KHz)或高频(1MHz~16MHZ)的晶振或谐振器。
可产生3MHz~20MHz的总线频率
●有三种完整的停止模式,以及WAIT,均是低功耗模式
●通过SRS、SBDFR、SOPT、SDIDx、SRTISC、SPMSCx寄存器可以对MCU进行配置,包括系统状态设置、后台调试设置、系统电源管理等设置
●具有片内FLASH,具有FLASH存储器在线编程功能和保密功能
(FLASH编程/擦除的电压由芯片内部电荷泵产生),同时该系列的MCU采用第三代0.25um的FLASH存储器技术,其擦写速度更快,性能更稳定
—MC9S08GT16的FLASH的存储器大小为16KB
●1KB的片内RAM
●双通道16位定时器模块(TIM)
●MC9S08GT16具有8路10位模数转换器(ADC)
●36个双向I/O端口
—所有I/O口都具有很强的吸电流和放电流能力
—所有I/O口内部上拉电阻
●2位键盘中断,用于进入程序下载调试状态与用户运行状态
●低电压禁止模块(LVI)具有软件可选的特点,由SRS、SPMSCx寄存器进行设置
系统保护特性:
—系统工作正常操作监视模块(COP)复位
—低电压检测复位
—非法指令码检测复位
—非法地址检测复位
带有内部上拉的外部异步中断引脚
(
),此引脚与通用输入引脚复用
复位引脚(
),与通用I/O复用
上电复位
和
引脚的内部上拉可以降低外围路的复杂性
存储器映射I/O寄存器
MC9S08GT16具有以下封装:
48引脚QFN、44引脚QFP(该开发板采用)、42引脚SDIP
9.3内部结构简图
MC9S08GT16系列结构框图如图9-2-1所示。
图9-2-1MC9S08GT16系列结构框图
引脚功能图
图9-2-2MC9S08GT16引脚分配图
引脚功能表述如表9-2-1中所示。
表9-2-1引脚功能描述表
引脚名称
功能描述
数据方向
VDD、VSS
电源供给端
I
VREFH、VREFL
内部A/D转换模块的电源供给参考电压输入端
I
VDDAD、VSSAD
时钟发生器模块的电源供给端
I
外部地有效抚慰输入或输出引脚
I/O
IRQ
外部中断输入引脚
I
PTA0/KBIP0
~PTA7/KBIP7
PTA0~7—8
I/O
KBI0~7—键盘中断输入通道
I
PTB0/AD1P0~
PTB7/AD1P7
PTB0~7—8位通用双向I/O接口
I/O
AD1P0~7—模数转换输入通道
I
PTC0/TxD2~
PTC1/RxD2
PTC0~1—2位通用双向I/O接口
I/O
TxD2、RxD2串行通信接口
I/O
PTC2/SDA~
PTC3/SCL~
PTC5~6
PTC0~1、PTC5~6—5位通用双向I/O接口
I/O
SDA、SCL—IIC模块的串行数据线和时钟线
I/O
PTD0~1/TPM1CH0~1
PTD3~4/TPM2CH0~1
PTD0~1、PTD3~4—4位通用双向I/O接口
I/O
TPM1CH0~1、TPM2CH0~1定时器模块通道
I/O
PTE0~5、TxD1/RxD1、MISO1/MOSI1、SPSCK1、
PTE0~5—6位通用双向I/O接口
I/O
串行通讯接口,用于串行外围接口的特殊功能引脚,分别是主入从出、主出从入、时钟线(I)、从机片选端(I)
I/O
PTG0~2、EXTAL/XTAL、BKGD/MS
PTG0~2—3位通用双向I/O接口
I/O
分别用于时钟发生器模块、后台调试线或模式选择,其中XTAL(O)
I
2.4存储空间分配
MC9S08GT16系列MCU中央处理器8能够寻址64KB的存储空间,存储空间分配如图9-2-3所示,这都包括:
●16KBFLASH,地址范围为$C000—$FFFF
●$1821—FOPT,FLASH选择寄存器
●$1822—保留
●$1823—FCNFG,FLASH配置寄存器
●$1824—FPROT,FLASH保护寄存器
●$1825—FSTAT,FLASH状态寄存器
●$1825—FCMD,FLASH命令寄存器
●$1827~$182B—保留
●$FFB0~$FFB7—NVBACKKEY,非易失FLASH8字节后门钥匙寄存器
●$FFB8~$FFBC—保留
●$FFBD—NVPROT,非易失FLASH保护寄存器
●$FFBE—保留
●$FFBF—NVOPT,非易失FLASH选择寄存器
图9-2-3存储空间分配图
2.5中断向量表
表9-2-2是对中断源的一个总结,中断优先级顺序是从表底部向表顶部排列,中断服务程序的高字节在第一个地址内,低字节在第二个地址内。
当产生一个中断时,相应的中断标志位置1,如果该中断允许,就向CPU发一个中断请求,如果CPU中断允许,在CPU执行完当前指令,并将相应的值入栈保护,然后根据中断向量取优先级高的中断向量,转去处理该中断服务子程序。
中断向量表如表2-2所示。
表9-2-2中断向量表
硬件电路原理
3.1显示部分
显示部分采用PTC4~PTC6来传输数据。
原理图如图9-3-1所示。
图9-3-1LED发光二极管显示电路
3.2键盘输入部分
键盘输入部分使用PTA0、PTA1做为输入,原理图如图9-3-2所示。
图9-3-2键盘输入电路
3.3模式选择
实验板通过一个接插件直接实现后台调试模式的选择,当实验板跟上位机通讯的时候,用户如果按下S3和复位键,就可以进入监控调试方式,用户可以和软件相连在线下载和调试程序,,否则可以直接看到已经写入MCU的程序运行结果。
另外,系统通电将会使MCU复位进入监控调试模式,另外用户在用软件对实验板复位时,如果复位不成功,需要通过按键使其复位,以进入监控模式。
原理图如图9-3-3所示:
图9-3-3BDM模式选择电路
3.4JP11和JP12管脚定义
为了满足用户不同的需求,MC9S08GT16所有的引脚都引出来,可以进行其他功能的扩展。
原理图如图9-3-4和9-3-5所示:
图9-3-4JP11管脚定义
图9-3-5JP12管脚定义
4.2CodeWarrior安装说明
✓操作系统:
win98/winME/win2000/winXP
✓安装软件:
CodeWarriorfor68HC08V3.1
✓硬件系统:
PC机带有串行通信接口
MC9S08GT16教学实验板、USB线缆一根、串口通信线一根。
4.2.1安装CodeWarriorforHC08V3.1
运行CW08_V3_1目录下可执行文件CW08_V3_1,按照安装向导运行安装软件。
默认安装C:
\programfiles\metrowerks\CW08V3.1(C盘为系统盘),可自己修改安装目录。
4.2.2修改License文件
比如默认安装在C:
\programfiles\metrowerks\CW08V3.1,在该目录下有一个license.dat文件,把CW08_V3_1目录下license.dat文件拷贝到安装目录下,覆盖原来的license.dat文件即可。
此时,所有软件安装工作完成。
4.3打开工程
在主菜单下选择File/Open。
如图9-4-1
图9-4-1打开工程菜单
弹出对话框图9-4-2,在“对象类型”中选择“ProjectFiles(*.mcp)”。
图9-4-2工程对象类型
出现图9-4-3,选择要打开的工程,然后点击“打开”,就可以打开一个工程。
图9-4-3工程对象名称
如果想要修改程序,在图9-4-4界面可以完成。
图9-4-4用户工程文件窗口
此时,如果想要编译连接和在线调试程序,参考4.5和4.6。
4.4创建项目
从主菜单栏选择File\New。
出现一个新的窗口如图9-4-5所示。
注意:
新窗口可能和你的屏幕不相同,取决于你的安装对象。
图9-4-5新建工程
单击Project标签显示项目面板。
选择HC(S)08NewProjectWizard。
在Projectname输入框,输入新项目的名称。
在Location输入框,确定你想保存的文件的路径。
注意:
当IDE创建一个项目时,会自动在项目文件中添加扩展名为.MCP的工程文件。
点击确定,出现新项目对话框如图9-4-6所示。
在Page1中,选择你所使用的芯片的类型。
图9-4-6选择芯片类型
在Page2中,选择使用语言的种类,如图9-4-7所示
图9-4-7选择编程语言
在Page3种选择是否使用专家系统,如图9-4-8所示。
图9-4-8选择系统方式
在Page4中选择是否安装PC-lint软件,如图9-4-9所示。
图9-4-9选择是否安装PC-lint软件模式
在Page5中选择启动代码方式,如图9-4-10所示。
图9-4-10选择启动代码方式
在Page6中是否选择浮点类型的数字格式,如图9-4-11所示
图9-4-11是否选择浮点数字格式
在Page7中选择内存类型,如图9-4-12所示
图9-4-12选择内存类型
在Page8中选择调试方式,如图9-4-13所示
图9-4-13调试方式选择
P&EFullChipSimulation方式允许芯片及其外围设备进行在线调试,或者是利用软件进行模拟时采用这种方式。
P&EHardwareDebugging方式是当HCS08与外围设备硬件接口是通过P&E提供的时候,就得采用这种方式。
MotoralaSerialMonitor方式是指目标板接口通过HCS08的片上串行监控连接,对用户程序下载调试。
上述三种是比较常用的几种的方式,如果不确定的时候,可以把三种方式都选上,这样会把连接变得更简单。
点击完成,项目创建完成,如图9-4-14所示。
图9-4-14工程建立完成界面
在工程窗口打开Sources\main.c(选择编程语言类型不同,文件后缀不同,如果是汇编,那么就是main.asm),在该文件中编写用户程序。
4.5编译连接
编好程序之后,点击图9-4-15Make按钮,进行编译连接。
图9-4-15编译连接
如果编译连接没有错误,则可以调试程序。
点击图9-4-16Debug按钮调试程序。
图9-4-16调试程序
首先自动搜索一个与目标板匹配的波特率,弹出窗口如图9-4-17
图9-4-17测试目标板波特率
如果测试成功,出现下面调试界面如图9-4-18。
图9-4-18实时调试界面
如果测试不成功,就会弹出通讯失败窗口,如图9-4-19
图9-4-19通讯连接失败
此时要按下S2键及复位键对目标板复位,然后点击重试按钮。
第一次调试的时候,可能还要选择处理器属于哪一个系列,并选择接口类型,如图9-4-20所示。
图9-4-20确立目标类型及接口方式
4.6在线编程
1、加载监控程序
经过测试下载成功之后,有时会看不到找不到原程序,此时要加载监控程序,在菜单栏选择load选项,加载监控程序如图9-4-21、9-4-22、9-4-23。
图9-4-21加载监控程序位置
图9-4-22加载监控程序文件夹
图9-4-23加载监控程序
2、选择处理器类型
第一次进入监控调试界面会弹出对处理器类型进行选择的窗口,如图9-4-24所示。
图9-4-24处理器选型
3、连接成功窗口
当经过1、2步骤之后,会自动弹出图9-4-25擦除,执行监控程序并下载程序窗口。
图9-4-25进行擦除并下载程序
此时就可进入图9-4-18实时调试界面,可以进行调试。
2、在线调试
在DEBUG界面上进行调试,如图9-4-26所示。
图9-4-26DEBUG界面
点击上图所示:
运行(run)程序;
跳入函数单步运行(singlestep)程序;
不进入函数单步运行(stepinto)程序;
从函数中跳出运行(stepout)函数;
跟踪(trace)程序;
停止(halt)程序运行;
目标板复位(resettarget)。
可以通过图9-4-27中的界面随时检查寄存器、RAM中的内容,便于检查出程序中的错误。
图9-4-27实时调试界面
如图9-4-27所示,在“source”窗口,点击右键,在第一栏中将程序运行到光标处,设置断点,看当前指令的PC值。
具体如下所示:
●SetBreakpoint设断点
●RuntoCursor运行到光标行
●ShowBreakpoint显示断点
●Showlocation显示地址
但是这里有一点须注意,在脱机仿真的时候,可以设置多个断点,在线调试的时候最多可以设置2个断点。
在“memory”窗口,我们可以实现如下的操作:
●检查寄存器,RAM,FLASHROM中的内容
●双击窗口中的字节,可输新值,回车确认
●点右键,出现的下拉菜单中我们可以更改窗口的一些属性,具体如下所示
●Wordsize可以选择用什么样的长度来显示存储单元的内容
●Format可以选择用什么进制显示,如十六进制(HEX)、八进制(OCT)、二进制(BIN)等
●Mode可以进行更新频率的选择,如自动、定期等等
●Display可以选择窗口显示内容的选择,选择是否显示地址、ASCII码
●Fill可以在一个区间内输入你想要的数值
●Address可以输入你想查看的存储器空间的开始地址
●Copymem可以将一段已经写入的内容复制到你想要存放的地址空间去
●SearchPattern可以在确定的地址里面寻找表达式
在“data”窗口,显示定义的变量,但是不能双击输入内容,点击右键可以实现如下的操作:
●OpenmoduleOpenmdodule显示该应用的源文件,全局变量显示在数据块上,只有全局变量才支持Openmodule
●Addexpression可以增加变量
●SetWatchpoint只有当没有设置Watchpoint或取消Watchpoint时,才会弹出该菜单,当选择一个变量将其设置为一个读/写Watchpoint,一条黄色线就会出现在该变量的旁边,当程序执行到与该变量相关时,程序停止运行,而且目前的程序状态就会在各窗口显示出来
●Showwatchpoint打开设置Watchpoint窗口,你可以看到当前程序所设置的Watchpoint
●Showlocation强制让所有的窗口显示与变量相关的信息
其余的菜单内容与其它的窗口里面的内容相似,这里就不再赘述了
“register”窗口如图9-4-28所示:
图4-24register窗口
在图中我们可以清楚地看到几个寄存器中的内容,并可以双击输入新值,条件码寄存器的Status中黑色表示置1,灰色表示为0。
可以在PC栏中输入输出要运行程序的起始地址,即PC值,然后单步运行,程序就会从设置的PC地址开始执行程序。
由此,可以通过CodeWarrior非常方便的下载程序运行,并可以进行单步调试,为系统程序的开发提供的非常有力的工具。
4.7利用Visualizationtool进行脱机仿真
程序编译通过之后,系统将自动进入仿真Debug调试界面(如图9-4-29所示),在这个界面里面我们既可以直接写入程序调试,也可以利用单步运行随时检查寄存器的内容,便于寻找程序中的错误,还可以利用Visualizationtool进行脱机仿真。
下边将重点讲述利用Visualizationtool进行脱机仿真。
图9-4-29脱机仿真界面
在“True-TimeSimulator&Real-TimeDebug”工具界面,点击:
Component->SetTarget在Processor栏,选择HCS08,在Target栏,选择SimulatorTargetInterface,然后点击OK,如图9-4-30所示。
图9-4-30确立目标界面
设置完成,关闭“True-TimeSimulator&Real-TimeDebug”工具界面。
在主界面中重新按下“Debug”,进入“True-TimeSimulator&Real-TimeDebug”调试界面,点击Simulater->Reset,如图9-4-31。
图9-4-31仿真状态复位
选择Component->Open…,如图9-4-32。
图9-4-32
将会出现如下的界面,如图9-4-33所示
图9-4-33选择Visualizationtool界面
点击OK,进入Visualizationtool界面,如图9-4-34所示。
图9-4-34Visualizationtool界面
如上图所示在空白处点击右键,选择要添加的元件。
由于该示例事要做一个发光二极管循环点亮的演示实验,所以选择“LED”,放置三个LED。
在空白处点击右键,选择Properties,如图9-4-35所示。
设置:
RefreshMode:
Periodical
RefreshTime(100ms):
1
或者选择:
CPUcycles。
设置完成,关闭窗口。
图9-4-35Visualizationtool属性界面
双击LED,如图9-4-36所示设置:
KindofPort:
Memory
PorttoDisplay:
0x
Bitnumnertodisplay:
4(LED1)、
5(LED2)、6(LED3)
设置完毕,关闭窗口。
图4-30七段数码管属性界面
图9-4-36
点击右键,取消选择EditMode,在“True-TimeSimulator&Real-TimeDebug”调试界面,按下Sart/Continue,运行程序,在本示例中,用3个LED来演示循环闪烁实验,可以看到发光二极管依次点亮,一直循环下去,如图9-4-37。
图9-4-37仿真界面
点击保存,可以将这个Visualizationtool的工程保存下来,下次运行的时候只要用DisplayMode,然后运行程序就可以了。
保存配置:
File\SaveConfiguration,如图9-4-38所示。
图9-4-38保存配置界面
运行程序,可以按照图9-4-27中运行或单步执行程序,可以看到仿真状态下程序运行情况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九章 MC9S08GT16实验系统 第九 MC9S08GT16 实验 系统
