[转帖]HMS30C7202部分阅读摘要(不对的地方指正!)
- UID
- 19129
- 性别
- 男
|
[转帖]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接口支持潜入式处理器的调试码。 |
|
|
|
|
|
- UID
- 19129
- 性别
- 男
|
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 |
|
|
|
|
|
- UID
- 19129
- 性别
- 男
|
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)。 |
|
|
|
|
|