1.外扩并口RAM
当系统片上RAM空间不够使用时,需要外扩RAM空间,若采用的是并口RAM,则可以通过XNTF模块与DSP通信,这里介绍DSP与IS61LV6416-10TI型号RAM芯片的通信实例。
本程序功能描述:使用DSP的Zone7与外部SRAM通信,硬件连接原理图如图5-12所示,SRAM存储容量为64K×16位。图5-12中,DSP的地址线序号与RAM芯片的地址线序号并不对应,这是为了后期PCB布线方便;而XA16接到了序号为22的NC端,这是因为该64K RAM芯片还有一同款芯片,其存储容量为128K,二者引脚兼容,且其序号为22的端口为A16地址线,因此将XA16接至序号为22的NC端,方便日后系统外扩容量。当需要扩展至128K RAM空间时,只需要替换RAM芯片即可,不需改动系统其他硬件。
外扩了RAM空间后,需要在cmd文件中为外扩SRAM分配段名,在程序中通过映射指令,即可将相关代码或变量映射到外扩SRAM中。在本例中,将SRAM划分为程序块和数据块,在MEMORY中添加:
图5-12 XINTF例程(与SRAM通信)硬件连接原理图
在SECTION中添加:
程序通过#pragma DATA_SECTION语句和#pragma CODE_SECTION语句,将变量和函数映射到相应的外部空间。
本例程序来源于TI官网V131中的xintf_run_from例程,编者对其进行了改编及简化,方便读者参考,程序流程图如图5-13所示。
图5-13 XINTF例程(与SRAM通信)主程序流程图
源程序及解读如下:
运行程序,将DataTemp变量添加到变量查看窗口,查看程序运行是否正确,实验结果如图5-14所示。可见,数据成功写入到外部RAM空间。
图5-14 XINTF例程(与SRAM通信)实验结果
本例中,数组DataTemp和函数FunctionTemp均通过映射存储其外部RAM空间,通过查看工程的.map文件,可了解空间的使用情况。另外,需要注意的是,本例中将数据和代码映射到了外扩RAM空间,所以工程中需要添加gel文件,用以预先使能XINTF的功能,当工程load后,在消息窗口会弹出:
Gel will enable XINTFx16 during Debug only.(www.xing528.com)
Enable XINTF in code prior to use.
若未添加gel文件,则在加载工程到DSP上时,可能会因为XINTF模块信号线未初始化而加载失败。
2.与并口液晶通信
实际信号处理系统中,常需要将处理结果显示在液晶显示器上。本例介绍使用DSP的XINTF接口与外部并口液晶显示器通信。
本程序功能描述:使用DSP的Zone0与外部并口液晶显示器通信,液晶控制芯片为AM160160,硬件连接原理图如图5-15所示。其中,DSP引脚、、分别与液晶显示器的写、读、片选使能引脚相连,DSP低8位数据线引脚与液晶显示器数据线引脚相连,并用GPIO31与液晶显示器的RS(指令/数据)引脚相连,以区分指令和数据。本程序由编者编写,程序流程图如图5-16所示。
图5-15 XINTF例程(与并口液晶显示器通信)硬件连接图
图5-16 XINTF例程(与并口液晶显示器通信)主程序流程图
本例在程序实现时需要注意以下两点:
1)端口映射。本例中需要开辟一端口,该端口指向液晶显示器所在的地址。液晶显示器与Zone0相连接,而Zone0对应的外部空间地址为0x4000~0x4FFF,所以在cmd文件中开辟新的段名,如在memory中添加:
在主程序中定义变量,并将变量映射到该段:
当在程序中对变量DotLcdProt进行读写访问时,即是通过Zone0访问液晶显示器,相应的读、写、片选信号等将自动有效。
2)液晶指令和数据的区分。通过对液晶显示器RS引脚的电平控制,以区分向液晶显示器写入的信息为指令还是数据。在此,用GPIO31引脚作为通用输出口,对RS引脚进行电平控制,例如,相应的程序段:
在此,未能使用地址线来自动区分指令和数据,因为GPIO31对应的地址线为XA17,而Zone0空间总长度为8K,即无需用到XA17。在本例中,还可以使用XA0与RS引脚相连,因而通过访问奇、偶地址实现对指令和数据的区分。这需要在cmd文件中分别定义数据端口和指令端口,并对应Zone0的奇、偶地址。
源程序如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。