LSSP芯片使用说明
3 功能描述
本节介绍LSSP处理器中存储器和存储地址映射以及特殊功能寄存器的定义。
3.1存储空间
LSSP处理器具有三个独立的存储空间,分别是片内程序存储器;片上数据存储器以及片外数据存储器。
片内程序存储器保存用户程序,对于软件来说,片内程序存储器是只读的。在LSSP处理器复位后,LSSP将外部EEPROM中的程序读入到内部程序存储器中(这个过程为8位寻址,在程序开始执行后将不再访问外部EEPROM上保存的程序),之后从0地址开始执行。
片上数据存储器用来保存用户代码的数据,其大小为16K×16位,可以采用多种寻址方式进行访问。其地址空间的高30个单元为内部特殊寄存器使用,不能用来保存数据。
片外数据存储器可以外接DRAM或SRAM用来与LSSP进行数据交换,其寻址空间是独立的,利用BLTI和BLTO指令进行访问。
LSSP存储空间特点为:
数据存储器和特殊寄存器统一编址,LSSP提供一个16K×16位大小的片内数据存储器;
程序存储器单独编址,大小为32K×32位;
外部RAM和外部EEPROM共用地址和数据引脚;
外部RAM最大为64K×16位;
外部EEPROM最大为128K×8位。
3.2寄存器
3.2.1通用寄存器
LSSP提供32×16个16位的通用寄存器。32个16位寄存器分别为32道程序独占,各道间的寄存器相互独立,不能隔道访问,如图2所示。
图2 通用寄存器
3.2.2特殊寄存器
特殊寄存器和数据存储器统一编址,占用存储空间FFE0-FFFD共30个末端单元。表1中描述了寄存器的名称、对应地址、位宽、属性、初值等,表2描述了GPIO和特殊寄存器的对应关系。
表1 特殊寄存器一览表
寄存器名 访问地址 宽度(位) 属性 缺省值 备注
AR FFE0 16 写 0 输出到引脚
DER FFE1 16 读/写 0
DR FFE2 16 读/写 0 输出到引脚
GPBER[0] FFE3 1 读/写 0
GPBER[1] FFE4 1 读/写 0
GPBER[2] FFE5 1 读/写 0
GPBER[3] FFE6 1 读/写 0
GPBER[4] FFE7 1 读/写 0
GPBER[5] FFE8 1 读/写 0
GPBR[0] FFE9 1 写 0 输出到引脚
GPBR[1] FFEA 1 写 0 输出到引脚
GPBR[2] FFEB 1 写 0 输出到引脚
GPBR[3] FFEC 1 写 0 输出到引脚
GPBR[4] FFED 1 写 0 输出到引脚
GPBR[5] FFEE 1 写 0 输出到引脚
GPPER[7:0] FFEF 8 读/写 0
GPPR[7:0] FFF0 8 读/写 0 输出到引脚
ISR[8:0] FFF1 9 读 0
WDER FFF3 3 写 0 输出到引脚
CLKDR FFF4 4 写 0 输出到引脚
BDRR FFF5 16 写 BA
TRXR FFF6 8 读/写 0 串行输出到引脚
CTCAR FFF7 16 读/写 0
CTAHR FFF8 16 读/写 0
CTAMR FFF9 16 读/写 0
CTCBR FFFA 16 读/写 0
CTBHR FFFB 16 读/写 0
CTBMR FFFC 16 读/写 0
ESER FFFE 6 读/写 0 外部事件输入赋能
ESR FFFF 6 读 0 状态寄存器
表2 GPIO[13:0]与控制特殊寄存器对应关系
引脚 寄存器名 访问地址 备注
GPIO[13] GPBER[0] FFE3 GPIO[13]位赋能
GPIO[12] GPBER[1] FFE4 GPIO[12]位赋能
GPIO[11] GPBER[2] FFE5 GPIO[11]位赋能
GPIO[10] GPBER[3] FFE6 GPIO[10]位赋能
GPIO[9] GPBER[4] FFE7 GPIO[9]位赋能
GPIO[8] GPBER[5] FFE8 GPIO[8]位赋能
GPIO[7:0] GPPER[7:0] FFEF GPIO[7:0]位赋能
GPIO[13] GPBR[0] FFE9 GPIO[13]位读/写
GPIO[12] GPBR[1] FFEA GPIO[12]位读/写
GPIO[11] GPBR[2] FFEB GPIO[11]位读/写
GPIO[10] GPBR[3] FFEC GPIO[10]位读/写
GPIO[9] GPBR[4] FFED GPIO[9]位读/写
GPIO[8] GPBR[5] FFEE GPIO[8]位读/写
GPIO[7:0] GPPR[7:0] FFF0 GPIO[7:0]位读/写
3.2.3特殊寄存器说明
AR寄存器
访问外部EEPROM和RAM的地址寄存器。A寄存器的内容映射到芯片引脚。支持对128KB外部EEPROM的访问和64KB外部SRAM或DRAM的访问。
复位后,AR地址从0按1增量访问外部EEPROM而读取程序,直到FFFF。
AR寄存器支持程序写操作,程序加载完成之后,AR寄存器可以作为可编程输出使用。AR寄存器是公共资源,每道程序都可以对其进行写操作,A(15:0)为可写,但不支持读操作,A(17)不支持读操作,也不支持写操作,AR始终保持最后写入的内容,参见图3。
图3 AR寄存器
DR寄存器
访问外部EEPROM和SRAM或DRAM的数据寄存器,16位,可读写。DR寄存器的内容映射到芯片引脚。DR寄存器和AR寄存器以及DER寄存器一起构成外部EEPROM和SRAM或DRAM的访问机制。
程序加载:芯片复位后,核逻辑自动启动加载程序序列,在这个过程中,DR(15:0)的相应引脚为输入状态,其中DR(7:0)为从外部EEPROM读出的有效数据(用户程序),AR(16:0)输出作为外部EEPROM的地址。
读外部EEPROM序列结束后,DR(15:0)的相应引脚仍为输入状态。
块读访问:读外部SRAM或DRAM的时序由核逻辑生成,其控制信号包括W/R和OE_N,见3.9块传送的BLTI时序。
块写访问:写外部SRAM或DRAM的时序由核逻辑生成,见3.9块传送的BLTO时序。
DR寄存器支持程序读写操作,如果用户不需外部数据存储器,那么在DER控制下,DR对应的引脚可以作为GPIO使用;AR[15:0]可作为输出信号。
作为输入时,DR的内容始终跟踪相应引脚的电平而变化,DR的最大工作频率为核时钟的1/8。
作为输出时,DR始终保持程序最后写入的内容。
在芯片复位后,DER为全0,DR为全0,相应输出Pin为三态。参见图4。
DER寄存器
DR的赋能寄存器,可读写。当DER(i)=1时,相应的DR(i)为输出;否则为输入。DER(15:0)分别对应DR(15:0)。在BLTO操作时,核逻辑自动写入DER为全1,使DR全部为输出状态,在BLTO操作完成之后,核逻辑自动恢复DER为全0,使DR为输入状态;在BLTI操作时,核逻辑自动写入DER为全0,使DR全部为输入状态。
在芯片复位后,DER为全0,DR为全0,相应输出Pin为三态。参见图4。
图4 DR&DER
GPBR寄存器
用户自定义输出,可读写,GPBR映射到芯片的引脚。GPBR的每一位在GPBER的控制下可以独立被编程为输出。6位GPBR寄存器映射到芯片引脚GPIO[13:8],见表2。作为输出时,GPBR始终保持最后写入的的内容; 在芯片复位后,GPBER为全0,GPBR为全0,相应输出Pin为三态,参见图5。
GPBER寄存器
GPBR的赋能寄存器,可读写。当GPBER(i)=1时,相应的GPBR(i)为输出;否则为三态。GPBER(5:0)分别对应GPBR(5:0),见表2。
在芯片复位后,GPBER为全0,GPBR为全0,相应输出Pin为三态,参见图5。
图5 GPBR& GPBER
GPPR寄存器
用户可编程I/O,可读写,GPPR的每一位在GPPER的控制下可以被编程。8位GPPR寄存器映射到芯片引脚GPIO[7:0],见表2。
作为输出时,GPPR始终保持最后写入的的内容;作为输入时,GPPR始终跟随外部引脚的变化。
在芯片复位后,GPPER为全0,GPPR为全0,相应输出Pin为三态,参见图6。
GPPER寄存器
GPPR的赋能寄存器,可读写。当GPPER(i)=1时,相应的GPPR(i)为输出;否则为输入。GPPER(7:0)分别对应GPPR(7:0),见表2。
图6 GPPR&GPPER
在芯片复位后,GPPER为全0,GPPR为全0,相应输出Pin为三态,参见图5。
WDR寄存器
Watchdog机制的计数器,16位,不可访问。WDR按核时钟频率计数,溢出时WD输出一个高脉冲,脉冲宽度为512个核时钟周期。计数器值为FFFF时的下一个时钟产生溢出,溢出标志输出到引脚。
WDER寄存器
Watchdog机制控制寄存器,低3位有效,可读写。WDR计数器的最高位输出到片外,可以参与系统复位,WDR计数器的溢出位可以参与核逻辑复位,WDR的输出脉冲宽度为512个核时钟周期。
在WDR溢出参与核逻辑复位的过程中,输出时钟的分频系数和输出频率保持原有状态,不受此复位影响,核逻辑复位后自动加载程序并启动运行。
芯片复位后,WDER为全0。WDER和WDR的关系见表3和图7。
图7 Watch Dog寄存器
表3 WDER和WDR的关系
WDER(2:0) WDR WD(输出)
011 计数 WDR(16),核逻辑不复位
010 0 0
001 计数 0
000 0 0
111 计数 WDR(16),核逻辑复位
110 0 0
101 计数 0
100 0 0
CLKDR寄存器
输出时钟分频参数寄存器,4位,可写。提供2n(n=0,1,2……15)分频选择。分频后的时钟输出到芯片引脚。
CLKCR寄存器
时钟分频计数器,16位,不可访问。时钟输出与分频参数的关系如表4。
表4 时钟输出与分频参数的关系
CLKDR(3:0) CLKO CLKDR(3:0) CLKO
0000 CLKIn/21 1000 CLKIn/29
0001 CLKIn/22 1001 CLKIn/210
0010 CLKIn/23 1010 CLKIn/211
0011 CLKIn/24 1011 CLKIn/212
0100 CLKIn/25 1100 CLKIn/213
0101 CLKIn/26 1101 CLKIn/214
0110 CLKIn/27 1110 CLKIn/215
0111 CLKIn/28 1111 CLKIn/216
TRXR寄存器
TRXR寄存器包含UART输入和输出两个8位寄存器,公用一个地址,将写入的8位数据通过TX引脚串行输出到外部设备UART的RX;串行接收外部设备UART的RX数据,收齐8位后,程序即可读取。
TRXR寄存器提供全双工工作方式,即收发可以同时进行,参见图8。
图8 TRXR寄存器
BDRR寄存器
波特率参数寄存器,16位宽度,可写。用于设置TRXR和外部UART的通讯速率,BDRR寄存器在100MHz的工作频率下的缺省值为支持9600bps的传输速率,用户可以根据芯片工作频率来计算其他相应波特率的参数,波特率参数的算法是:CLKI×M/2T,其中:CLKI是芯片输入时钟,M为芯片内部PLL的倍频系数,T是和外部设备约定的传输速率。关于串口的使用参见3.3串口。
CTCAR寄存器
Counter/TimerA计数/定时器控制寄存器,高8位为控制参数,低8位为Counter/TimerA计数/定时器的高8位,称为CTAHR,可写,具体使用参见3.5定时器。
CTAMR寄存器
Counter/TimerA计数/定时器的中间16位,称为CTAMR,可读写,具体使用参见3.5定时器。
CTALR寄存器
Counter/TimerA计数/定时器的低16位,称为CTBLR,可读写,具体使用参见3.5定时器。
CTCBR寄存器
Counter/TimerB计数/定时器控制寄存器,高8位为控制参数,低8位为Counter/TimerB计数/定时器的高8位,称为CTBHR,可写,具体使用参见3.5定时器。
CTBMR寄存器
Counter/TimerB计数/定时器的中间16位,称为CTBMR,可读写,具体使用参见3.5定时器。
CTBLR寄存器
Counter/TimerB计数/定时器的低16位,称为CTBLR,可读写,具体使用参见3.5定时器。
ISR寄存器
内部状态寄存器ISR,9位,可读。记录芯片内部运行过程中出现的错误或相关状态,内部状态不可屏蔽;ISR寄存器和内部状态的对应关系如图9所示。
图9 ISR寄存器定义
程序地址越界:访问程序存储器地址大于32768;
数据地址越界:访问数据存储器地址大于16384;
PM错误操作:程序驱动器发现非法指令;
MP错误操作:指令控制器发现非法指令
MD错误操作:数据存储控制器非法操作;
AU错误操作:数学运算器非法操作;
BU错误操作:逻辑运算部件非法错作;
PI错误操作:IO控制器非法操作;
BLT长度错:在BLTI或BLTO操作中,发现长度小于0或长度大于16384。
ESR寄存器
外部状态寄存器ESR,8位,可读。记录外部发生(包括两个内部定时器的溢出)事件的状态,外部状态可屏蔽。当ESER(i)为1时,ESR(i)相应外部1状态被锁存,直到读ESR寄存器指令的执行,读ESR指令执行后ESR(7:0)的内容全部被读出,同时置ESR(7:0)被置为全0。外部状态为上升沿触发方式。ESR寄存器和事件的对应关系如图10所示,ESER和E的关系如图11所示。
图10 ESR寄存器定义
图11 ESER和ESR的关系
ESER寄存器
外部事件状态赋能寄存器,8位,可读写。当ESER(i)=1时,相应的ESR(i)被赋能。若ESR(i)=1,那么读ESR寄存器指令执行使ESER(i)清0,ESER寄存器定义见图12。
图12 ESER寄存器定义
3.3串口
LSSP中具有一个串行接口控制器,串行接口控制器具有以下特点:
支持基本8N1串行协议的收发(RXD/TXD);
串口的收发为全双工方式;
可设置串口波特率寄存器,支持最大波特率为57600;
发送异步,发送指令可直接返回但将阻塞下一条发送指令;
接收同步,接收指令只有在接收到数据后才会执行下一条指令;
当接收数据未读完而下一桢数据到来,则丢弃上一帧数据。
待续。。。。。。。。
发表时间:2006年10月27日12:07:41