位置:51电子网 » 技术资料 » 接口电路

SST28SF040与高速数字处理器的接口设计及编程技巧

发布时间:2008/6/3 0:00:00 访问次数:636

dsp具有先进的并行处理结构,特别适合于信号处理,已经越来越多的应用于工业控制领域和各类仪器仪表的开发设计。tms320f206是ti公司生产的16位定点dsp,它有1条程序总线和3条数据总线,采用了改进的哈佛结构,内含高度并行的32位算术逻辑单元、16 16位并行硬件乘法器、片内存储器、片内外设,并配备了高度专业化的指令集,而且功耗相当低,特别适合于信号处理。由于闪存能在不脱离系统的情况下修改其存储单元中的内容,且断电后仍能保持存储的片内信息,故在dsp处理器中的应用愈来愈广泛。本文即结合dsp处理器的特点,详细介绍sst公司的superflasheeprom的硬件电路设计方法及编程技巧。

sst28sf040是sst公司(silicon storage technology)推出的高速可编程闪存。它具有512k 8的存储结构;芯片擦除及写入的时间快,整片擦除只需20秒,段擦除只需2毫秒,字编程写入时间仅为35微秒;可靠性高,能够重复写100,000次,数据可以保存100年不丢失;低功耗,在激活状态下仅需15ma的电流(5v工作电压),备用状态时仅需5ua的电流;具有32脚的plcc/tsop封装和pdip封装soi封装,在多功能的精密测试仪中具有广阔的前途。


引脚及功能

引脚分配情况如图1所示

引脚功能

(1)a18-a8:行地址输入引脚。行地址决定每个段的地址。

(2)a7-a0:列地址输入引脚。用列地址来选择在每个段内的具体地址。

(3)dq7-dq0:数据输入/输出引脚。

(4)ce:使能信号输入端,低电平有效。

(5)oe:输出使能信号,低电平有效。

(6)we:写使能信号,控制芯片的写入。

(7)vdd:工作电源,接5v。

(8)vss:工作地。


操作命令序列概要介绍

sst28sf040操作指令序列的具体情况如表1所示

在表1中,pa为要写入数据信息的存储器地址,pd为要在地址pa处写入的数据信息。


操作命令及时序详解

字节编程命令

编程命令要以一个建立命令来开始,一旦建立命令被执行,则在下一个we信号脉冲到来时,就执行编程命令,该命令仅占用2个总线操作周期。采用we信号控制的编程命令的时序图如图2所示。

复位命令


复位命令使存储器复位,且进入读数据状态。向任何一个的地址写入ffh就能使存储器复位,该命令占有1个总线操作周期。

擦除命令

擦除命令包括段擦除命令和整片擦除。段擦除命令将擦除整个段内的所有字节(一个段包含256个字节),需要用一个建立命令和一个执行命令来初始化,占有2总线周期的操作。整片擦除命令同段擦除命令基本相似。

读命令

当ce、oe信号为低电平,we信号为高电平时,芯片就进入读状态,并不需要特定的操作命令代码,只需给出要读取的地址,即可迅速读出该地址的内容。

读id号命令

当向器件写控制字90h时,读地址0000h将输出厂家编号“bfh”;读地址0001h将输出器件编号04h。任何一个有效的命令都将终止这种操作。


应用举例

硬件接口

利用闪存在线可编程的特点,笔者在开发基于dsp的信号处理板时,在存储采样数据时用了一片sst28sf040,并利用这套硬件系统和仿真软件直接对sst28sf040进行了在线编程,具体的硬件接口电路图如图3所示。

在该系统中采用tms320f206作为中央信号处理器,用74ls245实现对超过64k的存储器地址空间进行选择。

软件程序

tms320f206的用户可以用汇编语言或c语言进行源程序的编写,而c语言开发出的系统易于维护,可靠性高,可移植性好,故下面介绍用c语言编写的sst28sf04的开发程序。这里仅给出段擦除和字节编程程序,对于整片擦除的程序可以参看段擦除程序。

ioportunsigned intport1823; #defineioadr0port1823
ioportunsigned intport1820; #defineioadr1port1820
ioportunsigned intport1822; #defineioadr2port1822
ioportunsigned intport0418; #defineioadr3port0418
ioportunsigned intport041b; #defineioadr4port041b
ioportunsigned intport0419; #defineioadr5port0419
ioportunsigned intport040a; #defineioadr6port040a
ioportunsigned intport041a; #defineioadr7port041a
ioportunsigned intporta000; #defineregcsporta000
void flashsdp()/*存储器软件数据保护程序*/
{ioadr0=0; ioadr1=0; ioadr2=0;
ioadr3=0; ioadr4=0; ioadr5=0;ioadr6=0;
} /*共需7个总线操作周期*/
void unflashsdp() /*存储器软件数据不保护程序*/
{ ioadr0=0; ioadr1=0; ioadr2=0;
ioadr3=0; ioadr4=0; ioadr5=0;ioadr7=0;
} /*共需7个总线操作周期*/
int eraseflashsector(int cs,unsigned int *adr)
{ int m; /*开始段擦除程序*/
for(m=0;m<3;m++)
{*adr=0xffff;
unflashsdp();
regcs=cs; *adr=0x20; *adr=0xd0;
}
flashsdp(); *adr=0xffff;
} /*段

dsp具有先进的并行处理结构,特别适合于信号处理,已经越来越多的应用于工业控制领域和各类仪器仪表的开发设计。tms320f206是ti公司生产的16位定点dsp,它有1条程序总线和3条数据总线,采用了改进的哈佛结构,内含高度并行的32位算术逻辑单元、16 16位并行硬件乘法器、片内存储器、片内外设,并配备了高度专业化的指令集,而且功耗相当低,特别适合于信号处理。由于闪存能在不脱离系统的情况下修改其存储单元中的内容,且断电后仍能保持存储的片内信息,故在dsp处理器中的应用愈来愈广泛。本文即结合dsp处理器的特点,详细介绍sst公司的superflasheeprom的硬件电路设计方法及编程技巧。

sst28sf040是sst公司(silicon storage technology)推出的高速可编程闪存。它具有512k 8的存储结构;芯片擦除及写入的时间快,整片擦除只需20秒,段擦除只需2毫秒,字编程写入时间仅为35微秒;可靠性高,能够重复写100,000次,数据可以保存100年不丢失;低功耗,在激活状态下仅需15ma的电流(5v工作电压),备用状态时仅需5ua的电流;具有32脚的plcc/tsop封装和pdip封装soi封装,在多功能的精密测试仪中具有广阔的前途。


引脚及功能

引脚分配情况如图1所示

引脚功能

(1)a18-a8:行地址输入引脚。行地址决定每个段的地址。

(2)a7-a0:列地址输入引脚。用列地址来选择在每个段内的具体地址。

(3)dq7-dq0:数据输入/输出引脚。

(4)ce:使能信号输入端,低电平有效。

(5)oe:输出使能信号,低电平有效。

(6)we:写使能信号,控制芯片的写入。

(7)vdd:工作电源,接5v。

(8)vss:工作地。


操作命令序列概要介绍

sst28sf040操作指令序列的具体情况如表1所示

在表1中,pa为要写入数据信息的存储器地址,pd为要在地址pa处写入的数据信息。


操作命令及时序详解

字节编程命令

编程命令要以一个建立命令来开始,一旦建立命令被执行,则在下一个we信号脉冲到来时,就执行编程命令,该命令仅占用2个总线操作周期。采用we信号控制的编程命令的时序图如图2所示。

复位命令


复位命令使存储器复位,且进入读数据状态。向任何一个的地址写入ffh就能使存储器复位,该命令占有1个总线操作周期。

擦除命令

擦除命令包括段擦除命令和整片擦除。段擦除命令将擦除整个段内的所有字节(一个段包含256个字节),需要用一个建立命令和一个执行命令来初始化,占有2总线周期的操作。整片擦除命令同段擦除命令基本相似。

读命令

当ce、oe信号为低电平,we信号为高电平时,芯片就进入读状态,并不需要特定的操作命令代码,只需给出要读取的地址,即可迅速读出该地址的内容。

读id号命令

当向器件写控制字90h时,读地址0000h将输出厂家编号“bfh”;读地址0001h将输出器件编号04h。任何一个有效的命令都将终止这种操作。


应用举例

硬件接口

利用闪存在线可编程的特点,笔者在开发基于dsp的信号处理板时,在存储采样数据时用了一片sst28sf040,并利用这套硬件系统和仿真软件直接对sst28sf040进行了在线编程,具体的硬件接口电路图如图3所示。

在该系统中采用tms320f206作为中央信号处理器,用74ls245实现对超过64k的存储器地址空间进行选择。

软件程序

tms320f206的用户可以用汇编语言或c语言进行源程序的编写,而c语言开发出的系统易于维护,可靠性高,可移植性好,故下面介绍用c语言编写的sst28sf04的开发程序。这里仅给出段擦除和字节编程程序,对于整片擦除的程序可以参看段擦除程序。

ioportunsigned intport1823; #defineioadr0port1823
ioportunsigned intport1820; #defineioadr1port1820
ioportunsigned intport1822; #defineioadr2port1822
ioportunsigned intport0418; #defineioadr3port0418
ioportunsigned intport041b; #defineioadr4port041b
ioportunsigned intport0419; #defineioadr5port0419
ioportunsigned intport040a; #defineioadr6port040a
ioportunsigned intport041a; #defineioadr7port041a
ioportunsigned intporta000; #defineregcsporta000
void flashsdp()/*存储器软件数据保护程序*/
{ioadr0=0; ioadr1=0; ioadr2=0;
ioadr3=0; ioadr4=0; ioadr5=0;ioadr6=0;
} /*共需7个总线操作周期*/
void unflashsdp() /*存储器软件数据不保护程序*/
{ ioadr0=0; ioadr1=0; ioadr2=0;
ioadr3=0; ioadr4=0; ioadr5=0;ioadr7=0;
} /*共需7个总线操作周期*/
int eraseflashsector(int cs,unsigned int *adr)
{ int m; /*开始段擦除程序*/
for(m=0;m<3;m++)
{*adr=0xffff;
unflashsdp();
regcs=cs; *adr=0x20; *adr=0xd0;
}
flashsdp(); *adr=0xffff;
} /*段

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!