新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 日立SH3单片机最小系统的建立

日立SH3单片机最小系统的建立

作者:时间:2012-04-23来源:网络收藏

2.3 存储器模块
内部没有ROM空间,必须在外部总线上连接ROM存储器。总线采用地址总线与数据总线分离的设计模式,地址总线最大支持64 MB存储空间。满足这种总线模式的ROM都可以使用(内部没有NAND FLASH控制器,所以不要选择NAND FLASH存储器)。由于一条指令占16 b空间,所以选一片8 MB 16位位宽的FLASH存储器LH28F640BFN。
SH3系列处理器内部嵌有8 KB CACHE,在不使用缓存功能时有4 KB CACHE空间可以当作一般的RAM使用。由于本次只是讨论,程序比较简单,4 KB空间足以。在后续介绍比较大的运用时会介绍连接的SDRAM存储器,在以后其他文章中讨论。
2.4 MCU外围辅助电路
(1)复位电路:HD6417708S单片机需要最短为10 ms的低电平复位信号,如果你的系统中其他芯片也需要Reset信号时请综合考虑一下复位信号的长度与电平。本系统的复位电路采用了一款集复位与看门狗电路于一身的“1075”复位芯片。
(2)时钟电路:HD6417708S单片机的时钟模块有2个管脚:EXTAL(79)和XTAL(80)。如果想用无源晶振的话将晶振连到EXTAL和XTAL之间,两管脚对地各接一个18 pF的电容就可以了。如果想用有缘晶振的话将晶振的时钟输出管脚接EXTAL管脚就行了。
(3)PLL模块外围辅助电路:HD6417708S单片机锁相环电路要求在管脚74,管脚77分别对地接一个470 pF的电容。
(4)几个特殊管脚的处理管脚87为Bus requst输入功能管脚,如果系统正常运行时给这个管脚加一个低电平信号,单片机会释放总线。如果您的系统有多个处理器需要共用总线时通过对这个管脚的合理控制可以实现总线分配,如果系统不用单片机释放总线时就可以给这个管脚加一个10 kΩ的上拉电阻,这个管脚一定不要悬空。
管脚89~管脚93为外部中断输入管脚。管脚89为管脚NMI(非屏蔽中断),为边沿触发中断。
管脚90~管脚93为可屏蔽中断管脚,为电平触发中断。这些管脚都不能悬空,如果没有用到要将这些管脚各加上10 kΩ的上拉电阻就可以了。
管脚94是一个PCMCIA总线控制的管脚如果没用到这种存储器的话就可以加上10 kΩ的上拉阻就行了,不会影响其他部分。
MD3(管脚103)、MD4(管脚104)、MD5(管脚130)是3个模式控制引脚。MD3,MD4控制着Area0的总线宽度,对应关系请参考参考文献。
MD5复位时的状态告诉单片机总线上的存储器中数据(包括code和data)的存储方式,复位时MD5为零时说明存储器中的数据是按大端模式存放的,复位时存储器中的数据应选择小端模式。
(管脚132)是一个等待请求管脚,低电平有效。当处理器的访问速度超过外部设备的反应速度时可以将这个管脚置低让处理器进行等待。如果系统的外部设备足够快不用这个功能的话要加一个弱上拉电阻,绝对不能悬空或接地。自此,带监视串口的HD6417708S单片机系统硬件平台就搭建好了,编写相关软件就可以让系统运行起来。

3 软件平台的搭建
SH3系列单片机的开发环境是由日本瑞萨公司专门提供的“High-performance Embedded Workshop”软件,有很多版本,在瑞萨公司的网站上可以下载,我下的是“shv9200_ev.exe”版本。
首先安装HD6417708S单片机的开发工具“High-performance Embedded Workshop”软件,安装完成以后会在程序目录里出现一个“Renes as”安装程序,里面的“High-performance Embedded Workshop”图标就是开发软件的图标。
模板工程。双击开发工具图标出现一个工程对话框,选择第一项“Create a new project workspace”,然后点击OK按钮进入“New Project Workspace对话框。在“Workspace Name”对话框里为项目命一个名字,例如“123”,系统会把“ProjectName”与“Directory”
项的名字都默认为“123”,如果想指定工程的保存路径的话就点击“Browse”按钮选择想保存程序的地方,其他选项用默认选项就可以了,点击“确定”按钮进入下一个对话框。在“CPUSerise”选择框里选择“SH-3”选项,在“CPUType”选择框里选择“SH7708”选项,然后点击“Next”按钮进入下一个对话框界面。将“Endian”选项设为“Little”模式,这个选项很重要,前面“MCU外围辅助电路”部分介绍的MD5管脚就是用来设置程序存储大小端模式的,如果MD5管脚设置的大小端与软件设置的不一样整个程序就乱了。因为硬件将MD5管脚设置成了小端模式的状态所以在此将“Endian”选项设为“Little”模式。其他选项用默认值就行了,然后点击“Next”按钮进到下一个对话框界面。在对话框的最下面的“Generate Hardware Setup Function”的下拉菜单中选择“C/C++ source file”选项,然后连续点击“Next”按钮直到出现“Targets”选项界面.将“SH-3Simulator(Little endian)”选项选上,然后连续点击“Next”按钮直到图标变灰,再点击“Finish”按钮就进入到工程的主界面了,模板工程就完成了。
模板工程相关文件介绍。由于建立的是一个模板工程,工程建立好以后就带了一些文件包括启动代码、异常处理程序以及为软件开发人员提供的程序接口等等。现将几个关键文件功能按照程序执行顺序介绍如下:
首先在程序目录里点击“handle.src”文件,找到段标志“.sectionRSTHandler.code”,该段的程序代码就是单片机上电复位后首先执行的代码。然后点击“resetprg.c”文件,里面有一个“void PowerON_Reset(void)”函数,单片机执行完“handle.src”文件中的“.section RSTHandler,code”段的程序代码后跳到了该函数运行,如果想知道为什么跳到了这个函数请计算出“.section RSTHandl er,code”程序段中的“JMP”指令要跳转的地址以及“void PowerON_Reset(void)”所分配地址会发现两个地址对应同一个存储单元。在“void PowerON_Reset(void)”函数中调用的“set_vbr((void*)((_UINT)INTHandlerPRG-INT_OFFSET))”函数,“_INITSCT()”和“_INIT_ IOLIB()”都是系统库函数,在编译器手册中它们的功能都有介绍,在此不详细介绍。
点击“hwsetup.c”文件就可以看到“void PowerON_Reset(void)”函数中调用的HardwareSetup()函数的具体内容,本函数是用来初始化单片机总线及各个外围功能模块的。set_cr(SR_Init)函数是用来初始化状态寄存器的一个系统函数,与中断的设置关系较大,对于本系统意义不大,本着简化系统的原则将这个函数注掉。然后就到“main()”函数了,点击“123.c”文件发现“main()”函数是一个空函数,这是系统为程序员提供的接口,在这个函数里添加您的程序代码就行了。至此模板工程里的相关文件就介绍完了。系统上电,单片机运行完模板自带的初始化程序以后就跳到了“main()”函数,程序员只要在此函数中添加需要的功能代码就可以实现所需要的功能了。


评论


相关推荐

技术专区

关闭