微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > CC2530用户手册笔记

CC2530用户手册笔记

时间:10-02 整理:3721RD 点击:

CC2530用户手册笔记


      CC253x SOC序列包含多种器件,主要是在外围设备,存储器大小上的差别。FLASH大小分别有32KB,64KB,128KB和256KB,但是SRAM大小均为8KB。CC2530xx系列SOC整个构架可以分为三个部分:CPU和存储相关;外围,时钟和电源管理相关;射频相关模块。存储仲裁器是整个系统的核心,因为它连接着CPU和DMA控制器,并通过SFR总线访问物理存储器和外围器件。四个存储器访问点可以映射到三种物理内存;8KB SRAM,FLASH和XREG/SFR寄存器。器件具有许多不同的外围设备:调试接口,I/O控制器,DMA控制器,定时器1,定时器2,定时器3,定时器4,休眠定时器,ADC,随机数产生器,AES协处理器,看门狗定时器,串口0和1,USB2.0全速控制器(CC2531)。
8051CPU架构的存储器具有四个不同的存储空间,它的程序存储和数据存储具有独立的存储空间。
CODE:一个用于程序存储的只读空间,这个存储空间具有64KB的地址
DATA:一个可以让CPU通过一个周期指令直接或间接进行读写的数据存储空间。这个空间只有256B。低128B的空间即可以直接或也可以间接访问,而高128B只能间接访问。
XDATA:一个需要4-5指令周期的读写空间。这个空间具有64KB的地址。访问XDATA的速度低于DATA的访问速度,因为CODE和XDATA共用一个CPU核上的存储总线并且从CODE预取指令不能和XDATA并行进行。
SFR:一个可以通过单指令周期进行读写的存储空间。这个存储空间有128B空间。这个SFR寄存器的地址为8的倍数,并且每个位都能独立寻址。
这四个不同的存储空间在8051构架中很明显,但是为了简化DMA传输和硬件调试工作,在器件中部分重叠。不同存储空间如何映射到三个物理存储器(FLASH,SRAM和存储映射寄存器)将在后面进行描述。
存储映射
CC2530的存储映射在两个重要的方面与标准8051不同。首先,为了运行DMA控制器访问所有的物理存储器,并在不同8051存储空间之间进行DMA传输,部分SFR和DATA存储空间被映射到XDATA存储空间中。再者,具有两个CODE存储空间的映射方案可选择。第一个方案是在器件复位后,只有程序存储器FLASH被映射到CODE存储空间,及标准8051映射方案。第二个方案适用于从SRAM执行代码。在这个模式中,SRAM被映射到0x8000~(0x8000+SRAM_SIZE-1)的空间中。这个映射方案如图1所示.
image
图1.CODE存储映射方式
XDATA的顶端32KB是只读区域,称为XBANK。任何32KB的flash bank可以映射至此。这使得软件可以访问整个FLash存储器。这个区域通常用于存储额外的常数数据。
CPU具有18个中断源,每个源在中断标志SFR寄存器中具有自己的请求标志位。每个中断源可以独立地使能和禁止,中断具有不同的优先级。
每个中断源可以通过中断使能寄存器IEN0,IEN1和IEN2分别进行使能和禁止。为了使能任何一个中断,必须采取以下的步骤:
1.清楚中断标志
2.在外围SFR寄存器中设置各自的中断使能位
3.在IEN0/IEN1或IEN2寄存器中设置各自相应的中断使能位
4.设置寄存器IEN0中的全局中断使能位EA
5.在相应中断的中断矢量中开始中断服务程序
中断概观
中断号        描述                                                                                         中断名称                                   中断矢量                             中断屏蔽(CPU)                              中断标志
0      射频TXFIFO和RXFIFO溢出                                                                   RFERR                                    03h                              IEN0.RFERRIE                               TCON.RFERRIF
1  模数转换结束                                                                                          ADC                                    0Bh                              IEN0.ADCIE                               TCON.ADCIF
2 串口0接收结束                                                                                         URX0                                    13h                               IEN0.URX0IE                               TCON.URX0IF
3 串口1接收结束                                                                                          URX1                                    1Bh                              IEN0.URX1IE                               TCON.URX1IF
4 AES加密解密结束                                                                                     ENC                                    23h                              IEN0.ENCIE                               S0CON.ENCIF
5 休眠定时器比较                                                                                       ST                                    2Bh                              IEN0.STIE                               IRCON.STIF
6 端口2输入/USB                                                                                     P2INT                                    33h                              IEN2.P2IE                               IRCON2.P2IF
7 串口发送接收                                                                                          UTX0                                    3Bh                              IEN2.UTX0IE                               IRCON2.UTX0IF
8 DMA传送结束                                                                                          DMA                                    43h                              IEN1.DMAIE                               IRCON.DMAIF
9 定时器1(16位)捕获/比较/溢出                                                                T1                                    4Bh                              IEN1.T1IE                               IRCON.T1IF
10 定时器2                                                                                          T2                                    53h                              IEN1.T2IE                               IRCON.T2IF
11 定时器3(8位)比较/溢出                                                                      T3                                    5Bh                              IEN1.T3IE                               IRCON.T3IF
12 定时器4(8位)比较/溢出                                                                     T4                                    63h                              IEN1.T4IE                               IRCON.T4IF
13 端口0输入                                                                                          P0INT                                    6Bh                              IEN1.P0IE                               IRCON.P0IF
14 串口1传输结束                                                                                     UTX1                                    73h                              IEN2.UTX1IE                               IRCON2.UTX1IF
15 端口1输入                                                                                          P1INT                                    7BH                              IEN2.P1IE                               IRCON2.P1IF
16 射频通用中断                                                                                          RF                                    83h                              IEN2.RFIE                               S1CON.RFIF
17 定时器模式看门狗溢出                                                                           WDT                                    8Bh                              IEN2.WDTIE                               IRCON2.WDTIF
响应一个中断最快的时间为7个机器周期,一个用于检测中断,另外一个用于执行LCALL指令。中断被分为6个中断优先级组,每一个组的优先级通过IP0和IP1进行设置。每组的优先级有四级。如果同优先级的中断同时发生,则采用查询顺序的方式进行优先级请求的裁定。
CPU寄存器
两个数据指针DPTR0和DPTR1用于加速读取或写入存储器,用于访问CODE或XDATA空间。通过DPS数据指针选择寄存器设置在进行指令执行时采用哪个数据指针。
寄存器R0-R7
一共有四组的8个寄存器的寄存器bank,并且分别映射到DATA存储器空间中,地址分别为:0x00-0x07,0x08-0x0f,0x10-0x17和0x18-0x1F。每个bank包含有8个8为的寄存器R0-R7。寄存器bank的选择通过PSW.RS[1:0]进行设置。 在内部,bank0采用触发器存储数据,而1-3采用SRAM存储数据,这样可以节省能量。采用bank0大概可以比采用bank1-3节省200uA的电流。
堆栈指针
DATA存储器空间中的堆栈是向上增长的,PUSH指令首先增加SP然后将字节复制进堆栈。复位后SP被初始化为0x07,并且从0x08开始进行堆栈的存储。因为0x08刚好是第二个bank的R0,因此如果程序需要多个寄存器bank,就必须修改默认的SP值。
存储仲裁器
存储仲裁器解决CPU和DMA访问除了CPU内部寄存器外所有物理存储器的冲突。当CPU和DMA发生冲突时,存储仲裁器选择一个作为总线主控器而解决冲突。控制寄存器MEMCTR和FMAP用于控制存储子系统的各个方面。MEMCTR.XMAP在从RAM执行程序时必须使能。FLASH BANK映射寄存器FMAP控制32KB物理代码bank的映射到程序地址区域0x8000-0xFFFF。XMAP:XDATA映射到code,当此为置位时,SRAM XDATA区域从0x0000到SRAM_SIZE-1)映射到代码区域,即0x8000到0x80000+SRAM_SIZE-1.这就使能从RAM执行代码。XBANK:XDATA bank选择,控制那些物理flash存储bank映射到XDATA区域。当设置为0时,root bank映射。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top