首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[转帖]HMS30C7202部分阅读摘要(不对的地方指正!)

[转帖]HMS30C7202部分阅读摘要(不对的地方指正!)

关于主要模块:

1).RISC核,适合于控制,不适合于计算
2).8K的指令数据cache
3).MMU单元
4).小印模式操作系统
5).2KSRMA
6).所有的外围系统可以独立设置省电模式(是否上电)
6.1)多通道的DMA
6.2)带看门狗的4时钟通道
6.3)智能中断控制器
6.4)ROM,FLASH,SRAM,SDRAM控制器
6.5)电源管理器
6.6)LCD控制器:单色/彩色STN 和 TFT(薄膜工艺学) LCD
6.7)实时时钟(32.768kHz)
6.8)红外通信
6.9)四个通用串行控制器
6.10)PS/2的键盘鼠标接口控制器
6.11)两脉宽的调制接口
6.12)矩阵键盘(8*8)支持
6.13)GPIO
6.14)MMC/SMC卡接口
6.15)两路CAN总线
6.16)USB(slave)方式
6.17)片载AD/DA控制器
6.18)锁向环3个

主要特点:
1.)支持JTAG的调试接口和boundary scan
2.)0.25umCMOS技术
3.)内部2.5V,外部IO3.3V
4.)256引脚QFP和BGA封装
5.)低功耗设计


overview
1.)内部2kRAM主要用于中断服务程序,可以大大提高中断响应速度。
2.)特别是用PDA,winCE,对智能电话,inter网应用,嵌入式PC非常有用。

1 体系结构
1.1处理器
   8Kwrite-through的缓存...
1.2视频
   最大640x480 (VGA)的解析度,16位颜色,单色直接产生16个灰度级别
1.3内存
   16位访问宽度的内存接口。连接两个16, 64,128 or 256MBit SDRAM设备,也就是说,最大扩展到256*2/8=64MBytes的内存。支持突发ROM处理,提高性能,可以让操作系统直接从ROM启动。ROM是32位的数据宽度,和SDRAM是分离的。因为分离,所以指令运行和DMA操作SDRAM可以并行。
1.4内部总线结构
   内部总线基于AMBA标准,在外围总线上稍作改动。包含3个主要总线:
1.)CPU和内存控制器使用的主系统总线(ABS)
2.)高带宽的外围总线APB
3.)慢速的APB
  还有一个分离的视频DMA总线
1.4.1ASB总线
  ASB总线是为了使ARM能够连续访问ROM和SDRAM而设计的。SDRAM有分离的总线和ASB,视频模块连接,所以两边的操作可以并行。
1.4.2视频
  DMA。地址总线,数据总线,对SDRAM的控制总线。LCD寄存器通过ASB进行编写。LCD和ASB对SDRAM的竞争仲裁由内存控制器来完成。
1.4.3APB
  快速和慢速。快速APB和ASB控制速度一样,包括USB,声音输出接口和LCD寄存器的编写。
  慢速APB以UART的时钟来工作,寄存器配置仍然通过快速APB。
  APB从AMBA改过来的,允许DMA访问外部快速APB外围设备
1.5SDRAM控制器
  2-64MB。双路总线。视频的优先级高。突发访问长度16个字。一次突发,只有第一次地址有效。
1.6外围DMA
  4路通用DMA。DMA驱动于ASB的总线控制器,优先级高于处理器,以获得最小延迟。
  DMA的一个应用使传输声音,声音88。2KBps,为了利用合理,向声音控制器传输的宽度是一个单字。
  每个SDRAM的访问都是一个4字访问。声音和处理器并发访问SDRAM的时候,声音传输占用系统总线的0.75%。
  因为AMBA兼容,一个字的声音传输是两个总线周期。
  9中有详细的快速AMBA总线描述。
1.7外围总线(如果不用的话,引脚作为GPIO或者矩阵键盘)
  一个UART支持猫信号。
  iRDA使用UART1作为红外传输,速率115Kbps。
  MMC(多媒体卡),SSFDC(固定状态软盘卡)。
  两个脉宽调制PWM(不知道做什么用)。
  DAC提供8位的立体声
  5通道的ADC用于触屏,声音输入,两路电压监控。对触屏不需要外部晶体管开关。
  CPU,视频,USB的时钟是由3个PLL锁相环产生(3.6864M赫兹的输入时钟)
1.8电源管理
  由中断中指慢速模式和standby模式进入正常运行。
  支持运行,慢速运行,空闲,睡眠,深度睡眠5中工作模式。
1.9测试和调试
  ARM标准TIC控制器允许32位向量访问内部总线。可以访问macro-cell核,内存映射设备和HMS30C7202的外围总线。
  包括ARM的调试体系结构(潜入式ICE),使用JTAG接口支持潜入式处理器的调试码。
2 引脚描述
MQFP,256引脚,CABGA,256引脚
E2PROM引脚是可以直接写ROM的。
SRAM,ROM和FLASH使用的相同总线接口?!(统称静态存储器接口)
68个GPIO分成ABCDE五组,每组GPIO都是多功能定义的。
  

2.2.2多功能引脚
五组GPIO的定义:
1)PORTA:
  控制寄存器:AEN : GPIO PORT A 允许寄存器 (0x8002.301C).
              AMULSEL : GPIO PORT A 多功能选择寄存器(0x8002.30A4).
  AEN  AMULSEL  PORTA引脚功能
   0      0     矩阵键盘扫描码
   1      0     标准的GPIO功能,可以有用户自己定义
   0      1     I2S总线功能;UART2和UART3串口;红外接口
   1      1     按照标准GPIO来使用。
上面几种情况都是在nTES和nPLLENABLE这两个信号有一个有效的情况下选择的模式。如果这两个信号都为0,那么PORTA就作为模拟测试接口了!
2)PORTB:
  控制寄存器:BEN : GPIO PORT B 允许寄存器(0x8002.303C).
  nTEST nPLLENABLE BEN*   PORTB引脚功能
    1       0       0     6-11GPIO,UART0的控制信号
    1       0       1     全部作为GPIO使用
    1       1       *     UART和TBF
    0       1       0     TBF,TBL,TBC(不知道干什么的)
    0       1       1     UART,TREQ,TACK,TAB8/7
    0       0       *     TAB8/7,TACLK,TREQA/B
3)PORTC:
  控制寄存器:CEN : GPIO PORT C 允许寄存器(0x8002.305C).
  (nTEST | nPLLENABLE) & CEN*   PORTC引脚功能
      1        1          0     PWM,CAN总线,PS接口,DMA,部分静态存储器接口控制信号nRCS片选输出
      1        0          0     全部作为GPIO使用
      0        0          *     TDD和TAD(不知道干什么的)

4)PORTD:
  控制寄存器:DEN : GPIO PORT D 允许寄存器(0x8002.307C).
  (nTEST | nPLLENABLE) & DEN*   PORTD引脚功能
      1        1          0     LCD引脚
      1        0          0     全部作为GPIO使用
      0        0          *     PLL引脚
5)PORTE:
  控制寄存器:EEN : GPIO PORT D 允许寄存器(0x8002.309C).
  (nTEST & halfwordsel & DEN* & SWAP)  PORTE引脚功能
      1        0          0     *     静态存储器数据总线,MMC,CAN1,RA24(?)
      1        *          1     *     全部作为GPIO使用
      1        1          0     0     USB,UVM,UVP,SMART卡,
      1        1          0     1     和上面这个一样,只是对应的引脚不同
      1        1          0     0     静态存储器数据总线,部分引脚(16-23)还可以做GPIO(只写).
如果nTEST和nPLLENABLE(不是halfwordsel )都为0,只做TDD

从上面的模式可以看出,不是所有的功能都能够共存的,对于互斥的功能要搞清楚了,对调试会有比较大的指导作用。


USB测试不太懂

3 ARM720T微核
  参考ARM720T Data Sheet(DDI 0087).
4 内存映射
  5个内存映射的划分;
  ROM最大占用256M的访问空间,分成4个外部ROM片选,每片不能超过32M(因为地址是25根)。
  SDRAM最大占用从0x4000:0000开始的2G空间,最大支持64MSDRAM。0x4400:0000-0x4800:0000区间的写入,会修改SDRAM的模式寄存器(0和1)
  外围设备分为三个主要分区:ASB,快速APB,慢速APB
  表3-2有详细的叙述,对于编写bootloader程序和驱动程序非常重要。
5 PMU(电源管理)和PLL(锁相环)
5.1快功能
  clock发生器;
  FCLK,cpu何sdram使用的时钟;从PLL3获得,从49.7664 MHz 到82.944 MHz之间,6位寄存器(ClkCtl)控制,缺省70.0416。
  改变过程。bit6=1,写入到bit5-0的值直接送到PLL的引脚,导致循环到解锁状态(unlock),从而关闭FCLK。
  bit6=0时的频率切换:
    向ClkCtl中写入新值;
    设置一个实时时钟告警在2秒之内唤醒hms30c7202;
    通过设置PMUMode寄存器让cpu进入深睡模式;
    hms30c7202会在写入新值以后开始powerup
  BCLK:FCLK的2分频
  VCLK:由PLL1获得,给LED使用;(24.8832MHz 到 41.472MHz,缺省30.4128)。在BnRES=1,或者深睡的时候停止。环形过程只能通过软件!
  CCLK:由PLL2获得,给CAN和USB使用;48MHz.其他性质同上。
5.2PMU的状态机
  参考图5-1
5.3唤醒debounce和中断
  注意PMUSTAT寄存器
  HotSync(portb10)也是一个唤醒源(可以由中断屏蔽字控制)
  nDCD是一个从串口来的唤醒源
5.4寄存器
Address     Name    Width Default    Description
0x8000.1000 PMUMODE  4               PMU Mode Register
0x8000.1010 PMUID    32              PMU ID Register
0x8000.1020 PMUSTAT  17              PMU Reset/PLL Status Register
0x8000.1028 PMUCLK   16     0x1B     PMU Clock Control Register
0x8000.1030 PMUDBCT  9               PMU Debounce Test Register
0x8000.1038 PUMPLLTR 21              PMU PLL Test Register

PMUCLK:如果bit6=0,写入的值只有在下一次lock的时候才能够生效,所以必须先进入深睡状态才行。

sticky bit,不懂
WarmReset,PMUSTAT
6 SDRAM控制器
CKE可以控制SDRAM power down;
可编程的CAS潜伏
支持2/4bank,页大小可以是256或者512个字节(半字)
可编程的自刷时间
用DMA2的支持外部设备接口。

SDRAM允许同时打开4个memory bank。打开的bank可能存在于不同的设备中。

有4个寄存器控制:配置,刷新时间,写快闪时间,等待驱动器。
配置寄存器配置连接的SDRAM的片数,他们是2bank的还是4bank的。
刷新时间是指在两次刷新之间要经历多少个BCLK的节拍。
写快闪时间是指,最后一次写操作到把缓冲器内容再写入SDRAMBCLK之间的节拍数。
等待驱动器,用于定一些外部设备时需要等待的时间。

Address Name Width Default Description
0x8000.0000 SDCON 32 0x00700000 Configuration register
0x8000.0004 SDREF 16 0x0080 Refresh timer
0x8000.0008 SDWBF 3 0x1 Write back buffer flush timer
0x8000.000C SDWAIT 4 0x1 Wait driver register

SDRAM德模式寄存器在后面。有一个软件管理的流程范例图6-1。

6.3SDRAM的启动过程
  提供电源
  等待一个预制的设置时间(通常是100us)
     CPU在通过设置R位启动SDRAM自刷以前,需要等待一个setting time.这个设置时间是相对于SDRAM的时钟生效开始算起的。CPU在写入SDRAM的模式寄存器之前,要给SDRAM足够的时间建立厂商制定的自刷时间生效。
  完成至少两个刷新周期
  写入SDRAM模式寄存器
  SDRAM的模式寄存器写入方式是通过一次读操作完成的。读的时候,地址线A[14-0]表示模式寄存器的内容,高位选择SDRAM的模式寄存器映射地址(前面内存映射表中提到)。0x4400:0000-0x4800:0000
  AMBA和SDRAM地址线的对应关系在表6-2中描述。
  AMBA的第25位选择要初始化的设备。
  SDRAM的CAS潜伏时间必须初识化为和SDRAM的控制寄存器中c[1.0]定义的一样,并且突发访问的长度为8。

6.4 SDRAM的内存映射
  上面说的A[14-0]表示的是SDRAM地址线,它和CPU内部的地址线不是顺序对应的,有表对应。
  接不同大小的SDRAM布线是不同的。
  A25作为设备选择。0:设备0;1:设备1;

6.5 AMBA访问和仲裁
  LCD最高,然后是刷新要求,最后是主总线外设(PMU,ARM,DMA)顺序有主总线仲裁器决定
  视频SDRAM访问的突发长度是16。没有等待周期,只有读周期,没有写周期。
  因为自刷低于视频,所以要考虑时间问题,视频的一次访问导致的SDRAM最大占用时间大概11微秒,对于内存自耍通常需要的15微妙小,所以没有什么问题!
  word:32位;halfword:16位;byte:8位
  对于非整字访问,总线上的数据是复制出现的。也就是说对于半字,高16位和第16位是完全相同地出现在数据总线上。

6.6 合并写缓冲
  SDRAM控制器提供8个字的合并写缓冲。
  分两组,一组作为写;一组作为回写。类似于fifo的功能。一个从CPU接收数据,另外一个写入SDRAM。当接收满了,或者一个对正在写入地址的读操作,或者一个回写时间超时事件(这个时间是可编程的)。

7 静态存储器接口
  静态存储控制器(SMI)连接AMBA的高级系统总线ASB和外部总线接口EBI。
  可以控制4个分离的内存设备或者扩展块。每个bank32M,独立可编程。
  数据宽度支持81632几种模式。
  可变等待周期(最多16个)。
  支持突发读访问。
7.2SMI功能
  内存bank的选择;
  访问顺序;
  等待周期发生器;
  突发读控制;
  字节通道(lane)写控制
7.2.2访问顺序
  如果外部存储器bank是8位的活着16位的,SMI来完成外部的窄总线和内部AMBA的ASB宽总线之间的解复用功能。
7.2.3等待周期产生
  一个是最多16个周期的延迟;另外一个是用EXPRDY来控制等待(和ISA的CHRDY相似)。
7.2.4字节通道控制
  用BA[1..0]作片选,BSIZE控制读写宽度
  分成32位,16位和8位外部总线。对于16位和8位宽的外部总线,确切写入还和IA[1..0]相关。

7.5内部SRAM
  内部2KSRAM可以重映像。两个寄存器分别定义重映像的大小和位置(0x8000-1040,0x8000-1048)。
返回列表