PSD913F2在一种电台中的应用
摘要:随着电路设计向着小型化的方向发展,PSD(Programmable System Devices)器件在各种场合的应用越来越多,已经有很多成型的产品出现;而且随着器件的更新换代,新的PSD器件也不断地涌现,可以满足绝大多数客户的应用需求。本文以最近生产的一种在系统可编程(ISP)器件PSD913F2为例,详细说明如何对它进行开发使用。
关键词:ISP IAP 可编程系统器件
PSD913F2具有128KB的主闪速存储器,32KB的第二闪速存储器和2KB的SRAM,可进行在系统编程ISP(In-System-Programming)和在应用重编程IAP(In-Application re-Programming)。存储器ISP意味着存储器在编程时没有MCU的参与(off line),而存储器IAP意味着存储器在编程时有MCU的参考(on line)。IAP只对存储器的部分进行编程,不对PSD的配置和可编程逻辑部分进行编程;而ISP则可以对存储器的全部进行编程。
利用PSD913F2进行产品开发,应用2片式(PSD+MCU)设计方案,即可以满足通常设计的需要。比较方便地地方就是PSD913F2具有JTAG口,可以实现在系统编程,这样对电路的设计和程序的修改均具有非常大的灵活性。
1 PSD913F2的组成结构
PSD913F2的组成框图如图1所示。
由图1可以看出,PSD913F2具有丰富的I/O资源。其中PC口可以用做专用的JTAG口,在这种情况下,就不能再进行引脚复用。当I/O资源紧张时,用做JTAG口的引脚也可以进行引脚复用。
图1 PSD913F2的顶层框图
2 PSD913F2在一种电台中的应用实例
在某种电台的设计中,我们采用了PSD913F2的2片方案,其MCU用的80C196KB,其部分电路如图2所示。
2.1 PSD913F2的Express中的配置
PSD913F2具有在系统可编程的JATG口,这样对于PSD芯片的重配置和应用程序的修改带来很大的方便。图2电路中,利用PSD913F2作为外部程序存储空间,提供外部电路所需的片选信号及带有锁存功能的I/O输出。
首先,通过PSD的应用软件PSDsoft Express对该2片方案进行选择配置,选定所用的MCU为80C196KB,并选定所需的工作方式等。然后,在Express流程图的DEFINE PSD PIN /NODE FUNCTION(定义PSD的引脚功能)项对PSD913F2芯片进行引脚的功能配置。在这里根据电路所需的特性要求配置如下:
①PA口作为地址锁存输出,输出低8位地址。由于该设计需要的RAM空间较大,PSD本身所带的2KB SRAM不能满足设计的要求,故需在外部扩展一片RAM。这时需要用到锁存的低位地址输出,而PSD913F2的PA口和PB口都具有地址存输出的功能。在地址总线和数据总线复用时,一般选择PA口作为地址锁存输出。
②PC口作为专用的JTAG口,利用其全部的6个信号,可以加快程序下载的速度。
③PB口的配置或用做片选或用做具有锁存功能的I/O输出。其PB0为外部RAM的片选ADRAM;PB1为外部DTMF的片选ADDTMF;PB2为外部DSP芯片的片选HPIEN;PB3为DSP主机口的一个锁存信号HRW8;PB4、PB5为继电器控制信号,也即用做具有锁存作用的I/O MODE输出;PB6、PB7是控制外部模拟开关的信号,也是具有锁存作用的I/O MODE输出。
④其它的控制信号如WR、RD、ALE等按使用手册的说明进行配置。
将以上这些引脚配置完毕后,下一步进行内存映射的分布。根据实际需要,程序空间25K以内,不需要利用分页。在片选信号的地址分配如下:
①rs0:8000H~87FFH.可读写,作为数据空的一部分。
②csiop:1000H~10FFH.这段地址共256字节,用做PSD913F2内部资源的片选,其中1000H为内部资源的基地址。这段地址的分配在整个PSD操作过程中最为重要,一定要注意不能和其它地址发生冲突;尤其对96系列的MCU,数据和程序共享64K空间,而不像51系列那样,数据空间和程序空间各64K。
⑤fs0:100H~3FFFH.由于MAIN Flash中要求每个片选的范围是16K,所以程序空间的划分只能以16K为一段进行划分。同理,可得到fs1的地址范围是4000H~7FFFH.这两段程序空间不能放在一个fs0内,否则仿真就会发现程序每隔16K就会重复。这种空间划分根据不同的PSD型号也会有所不同,如:PSD934的片选范围就是以32K为一段。
④ADRAM:8800H~EFFFH。这是外部扩展RAM的空间,紧跟内部2KB的SRAM地址分配。
⑤ADDTMF:F000H~FBFFH。作为外部DRMF发生器的片选用。
⑥HPIEN:FC00H~FFFFH。HRW8地址也是在这一段。
至此,应用Express配置PSD913F2的工作已经基本上结束了。如果还需要进行IAP,则还需要生成用于IAP的C程序,经过修改后再嵌入式到自己的应用程序中。本例不需要进行IAP,在不需要加载程序时,可以越过MERGE MCU/DSP FIRMWARE WITH PSD(嵌入MCU或DSP主程序)选项,直接进行最后一步,通过ISP利用FlashLink将配置下载到PSD内。
2.2 PSD913F2在应用程序中的初始化
PSD913F2的正常工作,还需要在应用程序的开始对端口的功能寄存器进行初始化操作。通过PSD913F2的使用手册,可以查出各端口寄存器相对于csiop的偏移地址。利用csiop的基础加上偏移地址,就可得到该端口寄存器的地址。根据以上的配置,PSD913F2在应用程序中的初始化程序如下:
;CSIOP在1000H~10FFH
PSDPAIN EQU 1000H ;字节读操作
PSDPAOUT EQU 1004H ;字节写操作
PSDPACNT EQU 1002H ;地址输出
PSDPADIR EQU 1006H ;输出模式
PSDPADRV EQU 1008H ;CMOS模式
PSDPBIN EQU 1001H ;字节读
PSDPBOUT EQU 1005H ;字节写
PSDPBDRV EQU 1009H ;字节
PSDPBDIR EQU 1007H ;字节
LD CX,#PSDPADIR
LDB AL,#0FFH ;输出模式
STB AL,[CX]
LD CX,#PSDPACNT
LDB AL,#0FFH
STB AL,[CX] ;地址输出
LD CX,#PSDPBDIR
;OUTPUT MODE(PB4,PB5,PB6,PB7)
LDB AL,#0F0H
STB AL,[CX]
LD CX,#PSDPBDRV ;开漏
STB AL,[CX]
LD CX,#PSDRBCNT
LDB AL,#0
STB AL,[CX] ;I/O模式
3 PSD913F2使用中应注意的问题
在上面的配置中可以发现有两个片选的配置地址重叠,那显了所需信号时序的要求所设。外部DSP所要求的读写时序如图3所示。javascript:window.open(this.src);" style="cursor:pointer;"/>
由时序图可以看出,数据的读写操作在HRW8的上程式沿有效,其中HPIEN为片选使能端。HPIEN的产生可以由上面引脚定义中的地址设定,不用附加任何逻辑,这样就可以产生一较宽的低脉冲;而HRW8的上升沿也设为片选引脚,它的地址就可以和HPIEN的地址范围相重叠,然后附加上读写信号的逻辑,可以产生一较窄的低脉冲,类似于读写信号,这样利用其上升沿就可以达到手册所提出的时序要求。经实践检验这种方法是完全正确的,另外,在使用PSD913F2时,还需要注意的一些问题如下:
①JTAG口要利用其全部的6个信号,这样编程下载时可以加快下载速度。供给JTAG口的电源和地之间要加一0.01μF的电容,且6个信号线和电源需用10KΩ的电阻进行上拉。
②用做具有锁存作用的I/O口,在外部要用10kΩ的电阻进行上拉,在应用程序中把这些端口初始化为开漏输出。这样才能正确利用其锁存作用,否则只能产生很窄的脉冲,脉宽很窄而使引脚失去锁存功能。
③MCU和PSD913F2的复位要分开,复位的先后顺序应该是PSDF在先,MCU在后,才能保证PSD正常工作。两个复位在一起时,当复位的速度设计得比较低时可能反应不出来。如果MCU的复位较快,就会出现问题。在本例中,MCU的复位和PSD的复位分开操作。
④用仿真器对PSD的配置功能进行仿真时,一定要注意将csiop段地址放在用户板上,否则PSD器件不会工作。另外,利用仿真器不能仿真PSD的地址锁存作用。遇到这种情况,在仿真时,需要地址锁存的那段地址可放在系统板内。在最后下载应用程序时,利用MCU的操作,PSD的地址锁存功能就可以起作用。
4 总结
随着PSD器件的发展,它的内部Flash和SRAM越来越大,I/O口资源越来越丰富,速度也越来越快,完成可以满足常用MCU的DSP的开发应用,其ISP和IAP功能也在很大程序上方便了使用者。在电路设计小型化和产品的维护方面,具有非常大的优势,在以后的应用中一定会越来越广。