DSP在电测量系统中SPI闪速引导的实现
发布时间:2008/5/27 0:00:00 访问次数:478
摘 要:本文详细介绍了tms320vc5509a dsp电测量系统中实现spi闪速引导的方法。以atmel公司闪存at25f1024为例,介绍了电测量系统dsp在线系统编程烧写方法和tms320vc5509a串行spi 8位引导的原理与实现。
关键词:电测系统, tms320vc5509a, spi 闪存 , daram, saram
1.引言
以dsp为中心的应用系统,要实现系统的用户软件程序脱离仿真环境独立运行工作,就需要在片外扩展非易失性存储器flash、eprom或者用上位机向dsp下载程序。在系统上电复位后,用dsp的引导加载器把应用程序从外部存储器flash、eprom或上位机中引导到dsp芯片内部双访问存储(daram)单元或单访问存储(saram)单元或外部扩展ram中。目前应用最为广泛的闪存,具有存取速度快、电可擦除、容量大、在线可编程、价格便宜等优点,已成为新一代dsp系统中不可缺的重要组成部分。
在本测量系统中,利用atmel公司闪存at25f1024作为tms320vc5509a的外部闪存。上电复位时,通过tms320vc5509a的mcbsp0口把at25f1024闪存中的程序代码或数据加载到外扩展的ram中。当程序用开发机调试好后,首先遇到的问题是如何将调试好的程序代码写入spi 闪速存储器并且满足tms320vc5509a引导加载表的格式;然后才可以利用tms320vc5509a引导加载器将程序代码引导到外部扩展存储器中。
闪存按其接口可分为并行与串行。并行通过tms320vc5509a芯片的地址与数据线与闪存接口。数据可以8位或16位。串行闪存通过i2c或spi接口与闪存接口。本文以atmel公司at25f1024串行spi闪存芯片,通过mcbsp0(配置为spi)与tms320vc5509a接口,作为电测量系统的上位机引导存储器,详细给出dsp系统串行spi引导的软硬件解决方案与实现方法。
2. tms320vc5509a与at25f1024的接口电路
tms320vc5509a是ti公司推出的定点数字信号处理器c5000系列中的一种,tms320vc5509a通过增加乘累加mac单元,增强了dsp的运算能力,而且性能更好,功耗更低,是目前tms320家族中最省电的芯片。这些特性使之更适合在数据速率高、运算量大,又要求功耗低的便携式电测量中应用。at25f1024是atmel公司生产的一款应用广泛的高性能256k×16位串行spi闪存。tms320vc5509a与at25f1024的硬件电路连接如图1所示,在spi模式中闪存始终作为从器件与dsp的mcbsp0串口相连,其串行移位时钟是输入,由dsp串口提供。
3.串行flash芯片在线系统编程方法
将用户程序代码装入flash的方法有三种,一种方法是要求制造商出厂前掩膜,但无法满足开发阶段对程序进行修改或小批量产品生产的要求;另一种方法是用编程器直接烧写,但flash芯片正向着小型化、贴片式方向发展,从而使表贴soic封装的flash芯片难以用编程器烧写;第三种方法是在线系统编程isp(in system program),这种方法灵活方便,无需其它编程设备和外加电源,因而得到广泛应用。
对串行flash芯片的在线系统编程需要考虑两方面的问题,一是flash芯片的编程烧写方法和规则,二是dsp芯片bootloader引导程序所要求的引导表格式。
4.串行flash芯片的编程烧写
以at25f1024为例,对其进行操作的部分指令如表1所示。
对其进行烧写操作,要执行两条独立的命令。首先,通过wren指令使flash写使能,然后执行program(编程)指令。在对flash编程的过程中,首先是cs片选信号有效(低电平),然后编程指令(0x0000 x010)、地址和待烧写的数据通过si引脚传送,最后,当cs片选信号抬高(高电平)后,芯片内部开始编程。
在实际的编程过程中需要注意以下几个问题。
(1)由于写命令只能将内部数据位由1写成0,反之则不行。因此,在写入数据前一定要先对内部空间进行擦除,将内部所有数据位置1,否则将会导致flash烧写失败。
(2)编程指令只能对没有被块写保护指令保护的空间进行写操作。
(3)cs片选信号由低到高的跳变要求必须在最后一个数据比特d0传送完成后,紧跟着的sck移位时钟为低的情况下产生。tms320vc5509芯片多通道缓冲串口(mcbsp)提供的时钟停止模式(兼容spi)即可满足这种要求。
(4)at25f1024支持单字节编程模式和256字节的页编程模式。芯片内部每页256字节,一条编程指令可以在一页内烧写1到256个连续的字节。烧写的起始地址可以在一页内的任意位置,连续烧写时地址自动增加,但是当地址到达本页的最后时会自动跳到本页首地址。这一点在在线编程烧写时要十分注意。
(5)在内部写操作周期内,其它操作命令都将被忽略,但是rdsr(读状态寄存器)指令除外。状态寄存器的/rdy位表示芯片内部写周期是否就绪。因此,flash器件内部编程就绪与否就可以通过判断状态寄存器的这一标志位来确定。
5.tms320vc5509引导表
所谓引导表,就是在dsp芯片上电复位后由bootloader从外部存储器装入片内ram的一个数据块,这个数据块包括用户程序的数据段和代码段,还包括程序入口地址、寄
摘 要:本文详细介绍了tms320vc5509a dsp电测量系统中实现spi闪速引导的方法。以atmel公司闪存at25f1024为例,介绍了电测量系统dsp在线系统编程烧写方法和tms320vc5509a串行spi 8位引导的原理与实现。
关键词:电测系统, tms320vc5509a, spi 闪存 , daram, saram
1.引言
以dsp为中心的应用系统,要实现系统的用户软件程序脱离仿真环境独立运行工作,就需要在片外扩展非易失性存储器flash、eprom或者用上位机向dsp下载程序。在系统上电复位后,用dsp的引导加载器把应用程序从外部存储器flash、eprom或上位机中引导到dsp芯片内部双访问存储(daram)单元或单访问存储(saram)单元或外部扩展ram中。目前应用最为广泛的闪存,具有存取速度快、电可擦除、容量大、在线可编程、价格便宜等优点,已成为新一代dsp系统中不可缺的重要组成部分。
在本测量系统中,利用atmel公司闪存at25f1024作为tms320vc5509a的外部闪存。上电复位时,通过tms320vc5509a的mcbsp0口把at25f1024闪存中的程序代码或数据加载到外扩展的ram中。当程序用开发机调试好后,首先遇到的问题是如何将调试好的程序代码写入spi 闪速存储器并且满足tms320vc5509a引导加载表的格式;然后才可以利用tms320vc5509a引导加载器将程序代码引导到外部扩展存储器中。
闪存按其接口可分为并行与串行。并行通过tms320vc5509a芯片的地址与数据线与闪存接口。数据可以8位或16位。串行闪存通过i2c或spi接口与闪存接口。本文以atmel公司at25f1024串行spi闪存芯片,通过mcbsp0(配置为spi)与tms320vc5509a接口,作为电测量系统的上位机引导存储器,详细给出dsp系统串行spi引导的软硬件解决方案与实现方法。
2. tms320vc5509a与at25f1024的接口电路
tms320vc5509a是ti公司推出的定点数字信号处理器c5000系列中的一种,tms320vc5509a通过增加乘累加mac单元,增强了dsp的运算能力,而且性能更好,功耗更低,是目前tms320家族中最省电的芯片。这些特性使之更适合在数据速率高、运算量大,又要求功耗低的便携式电测量中应用。at25f1024是atmel公司生产的一款应用广泛的高性能256k×16位串行spi闪存。tms320vc5509a与at25f1024的硬件电路连接如图1所示,在spi模式中闪存始终作为从器件与dsp的mcbsp0串口相连,其串行移位时钟是输入,由dsp串口提供。
3.串行flash芯片在线系统编程方法
将用户程序代码装入flash的方法有三种,一种方法是要求制造商出厂前掩膜,但无法满足开发阶段对程序进行修改或小批量产品生产的要求;另一种方法是用编程器直接烧写,但flash芯片正向着小型化、贴片式方向发展,从而使表贴soic封装的flash芯片难以用编程器烧写;第三种方法是在线系统编程isp(in system program),这种方法灵活方便,无需其它编程设备和外加电源,因而得到广泛应用。
对串行flash芯片的在线系统编程需要考虑两方面的问题,一是flash芯片的编程烧写方法和规则,二是dsp芯片bootloader引导程序所要求的引导表格式。
4.串行flash芯片的编程烧写
以at25f1024为例,对其进行操作的部分指令如表1所示。
对其进行烧写操作,要执行两条独立的命令。首先,通过wren指令使flash写使能,然后执行program(编程)指令。在对flash编程的过程中,首先是cs片选信号有效(低电平),然后编程指令(0x0000 x010)、地址和待烧写的数据通过si引脚传送,最后,当cs片选信号抬高(高电平)后,芯片内部开始编程。
在实际的编程过程中需要注意以下几个问题。
(1)由于写命令只能将内部数据位由1写成0,反之则不行。因此,在写入数据前一定要先对内部空间进行擦除,将内部所有数据位置1,否则将会导致flash烧写失败。
(2)编程指令只能对没有被块写保护指令保护的空间进行写操作。
(3)cs片选信号由低到高的跳变要求必须在最后一个数据比特d0传送完成后,紧跟着的sck移位时钟为低的情况下产生。tms320vc5509芯片多通道缓冲串口(mcbsp)提供的时钟停止模式(兼容spi)即可满足这种要求。
(4)at25f1024支持单字节编程模式和256字节的页编程模式。芯片内部每页256字节,一条编程指令可以在一页内烧写1到256个连续的字节。烧写的起始地址可以在一页内的任意位置,连续烧写时地址自动增加,但是当地址到达本页的最后时会自动跳到本页首地址。这一点在在线编程烧写时要十分注意。
(5)在内部写操作周期内,其它操作命令都将被忽略,但是rdsr(读状态寄存器)指令除外。状态寄存器的/rdy位表示芯片内部写周期是否就绪。因此,flash器件内部编程就绪与否就可以通过判断状态寄存器的这一标志位来确定。
5.tms320vc5509引导表
所谓引导表,就是在dsp芯片上电复位后由bootloader从外部存储器装入片内ram的一个数据块,这个数据块包括用户程序的数据段和代码段,还包括程序入口地址、寄