PSD913F2在一种电台中的应用
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口作为地址锁 存输出。
③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地址也是在这一段。
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所示。
由时序图可以看出,数据的读写操作在HRW8的上程式沿有效,其中 HPIEN为片选使能端。HPIEN的产生可以由上面引脚定义中的地址设定,不用附 加任何逻辑,这样就可以产生一较宽的低脉冲;
而HRW8的上升沿也设为片选引 脚,它的地址就可以和HPIEN的地址范围相重叠,然后附加上读写信号的逻辑, 可以产生一较窄的低脉冲,类似于读写信号,这样利用其上升沿就可以达到手册 所提出的时序要求。经实践检验这种方法是完全正确的,另外,在使用PSD913F2 时,还需要注意的一些问题如下:
②用做具有锁存作用的I/O口,在外部要用10kΩ的电阻进行上拉,在应用 程序中把这些端口初始化为开漏输出。这样才能正确利用其锁存作用,否则只能 产生很窄的脉冲,脉宽很窄而使引脚失去锁存功能。
③MCU和PSD913F2的复位要分开,复位的先后顺序应该是PSDF在先, MCU在后,才能保证PSD正常工作。两个复位在一起时,当复位的速度设计得比 较低时可能反应不出来。如果MCU的复位较快,就会出现问题。在本例中,MCU 的复位和PSD的复位分开操作。4 总结 随着PSD器件的发展,它的内部Flash和SRAM越来越大,I/O口资源越来 越丰富,速度也越来越快,完成可以满足常用MCU的DSP的开发应用,其ISP和 IAP功能也在很大程序上方便了使用者。在电路设计小型化和产品的维护方面, 具有非常大的优势,在以后的应用中一定会越来越广。