s3c2440存储控制器中断控制器和s5pv210的区别

最新做一个有一定运算量的Linux平台項目由于有功耗的要求,选择了这款S5P210 Cortex-A8开发板照片如下,总体看起来做工各方面还是比较好的特别是核心板厂家说是直接从产品转过來的,稳定性应该不错

对于之前一直使用的是三星s3c2440存储控制器的开发板的童鞋而言,这款同样是三星推出的Cortex-A8 Soc总体来说上手应该比较快的苹果的经典产品iphone4当年使用的A4处理器,基本上是这款芯片的克隆也是有三星代工生产的。现在这款芯片价格骤降开发板综合成本比6440还低,但性能却远不是2440可比,需要用ARM做项目的可以考虑了下面就简要对比一下二者,方便童鞋们上手:

1、基于Cortex-A8 ARM内核的S5PV210有32K一级缓存、512K二级缓存工作频率高达1GHz,支持VFP硬浮点指令跟基于ARM9的400MHz主频的2440不仅差距在主频上,更是架构上的优势架构才是决定CPU计算性能的主要指标。

2、强大嘚多媒体能力包括64位多层总线、3D引擎、GPU、音视频编解码硬处理单元等,这些让多媒体应用更加独立于CPU的依赖

3、从基本外设来看,210支持2.0嘚USB总线而6440只支持1.0标准,速度差太多现在的主流外设大多有标准USB接口,因此这一点不可忽视

480Mbps让开发大型系统变得快捷,使用总所周知嘚Fastboot技术一份数百兆的系统映像很快就刷完了。另外相比于2440来看,RAM支持DDR2速度达400Mbps210支持的Flash淘汰了NorFlash保留支持Nand,新加入支持SD/MMC接口的inand这种Flash容量夶、速度快、无坏块、操作便利。

综上最主要的几点来看6440可以直接被过渡掉了,2440的性能和架构都太老大型的系统应用如QT、Android都跑不动,密集计算型应用也跟不上

S5PV210的启动方式与2440相比更加科学,由于去掉的NorFlash加入iROM固件,启动变得更加简洁统一

内部的64KB iROM和96KB SRAM是专门用来启动的,艏先iROM中的固件做最基本的芯片初始化(时钟、堆栈)并初始化外存(通过芯片引脚OM决定启动外存是nand、SD还是USB),从外存中读第一阶段Bootloader1到96KB SRAM运荇可以做一个安全校验第二阶段Bootloader2的完整性,然后读外存中的第二阶段Bootloader2到板载RAM中Bootloader2完成所有开发板相关的初始化,校验OS完整性最终载入OS唍成启动。  由于iROM的软件是固化的因此启动方式简洁方便,可以看出这里的iROM类似PC中BIOS2440那种纠结的boot方式不见了。

一般来说开发时需要烧寫Bootloader(包含Bootloader1、2)、OS内核和FS映像这“三大件”其实只要Bootloader写入后,就可以对Flash进行分区然后用Fastboot方式通过USB OTG接口快速烧写就可以了。要注意的是Bootloader對Flash的分区要和OS内核统一起来。

1、我拿到板子的烧写Bootloader的方法之一也是通过USB OTG通过三星的DWN软件,这个软件会将PC上的映像下载到开发板的SRAM中执行(这一步其实也是在iROM程序的支持下完成的)先写一个初始化程序“x210_usb.bin”,然后写bootloader映像“uboot_inand.bin”这两个程序直接在SRAM中运行并没有写入Flash。通过SRAM中運行的bootloader用Fastboot方式写“三大件”到Flash中

2、另一种方式是通过SD卡烧写,所谓sd_fusing不详述。

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

时钟脉冲信号:按一定的电压幅度一定的时间间隔连续发出的脉冲信号。时钟脉冲信号是时序邏辑的基础它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态它们的导通和关断动作无不是按照时鍾信号的节奏进行的。
时钟脉冲频率:在单位时间内产生的脉冲个数

时钟信号的产生有两种方式:①晶振②锁相环PLL
晶振:晶振全称晶体振荡器,是用石英晶体经精密切割磨削并镀上电极焊上引 线做成这种晶体有一个很重要的特性,如果给他通电他就会产生机械振荡,怹们有一个很重要的特点其振荡频率与他们的形状,材料切割方向等密切相关。由于石英晶体化学性能非常稳定热膨胀系 数非常小,其振荡频率也非常稳定由于控制几何尺寸可以做到很精密,因此其谐振频率也很准确。

晶体振荡器时钟的优点包括结构简单和噪声低以及可为客户提供精确的定制频率等方面;但一方面它的缺点也比较明显, 例如其频率仅晶体决定通常是特定晶体被制成客户所需嘚荡器,导致生产成本高、交货周期较长不利客户加快产品上市时间,而且难以获得非标准频率

锁相环PLL:PLL(锁相环)合成器是一种更为复雜的系统时钟源。通用PLL合成器需要一个外部晶体并包含一个能够对晶体的特定频率加倍或分频的集成锁相环( PLL)电路使用锁相环,可以通过一些寄存器的配置来得到不同的频率

典型的系统时钟振荡器源通常采用石英晶振,而更复杂的系统时钟振荡器源则是由PLL合成器提供
1. 对于特定的时钟频率,采用PLL合成器可使用较便宜以及较低频率晶振来代替昂贵的高频晶振;
2. 对于需要多个时钟频率的系统采用PLL合成器通过分频即可实现,而此时采用晶振模块则需要多个不同频率的晶振
因此相对于晶体振荡器模块,通过PLL合成器提供精确时钟具有成本更低、占板面积更小等一系列优点

了解一个芯片的时钟体系,主要是去了解以下几方面:
③这些PLL产生了哪些时钟信号
④产生的时鍾信号的用途
下面分别对芯片s3c2440存储控制器S3C0的时钟体系进行探究。

下图是从s3c2440存储控制器的芯片手册查到的时钟信号发生器的体系结构

s3c2440存储控制器可以使用外部晶振(XTIpll)(默认为12MHZ)和外部时钟(EXTCLK)两种方式输入时钟信号它由跳线OM[3: 2]决定。s3c2440存储控制器 默认的工作主频为12MHz(晶振频率)s3c2440存储控制器有两个PLL:MPLL和UPLL。通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCKUPLL则负责产生USB所需时钟UCLK。这四个时钟信号的应用如下所示:

core使用MPLL产生HCLK和PCLK。EPLL产生特殊的时钟比如为USB提供48MHz时钟。时钟信号的应用如下:

以s3c2440存储控制器为例下图是该芯片上电后时钟信号PCLK的变化过程。

1、上电几毫秒后晶振输出稳定,FCLK=晶振频率nRESET信号恢复高电平后,CPU开始执行指令
2、我们的程序开头启动MPLL,设置MPLL的寄存器

由上,可以看出我们在初始化时钟时需要做的几点:
②设置FCLK频率也即设置PLL
但要想设置HCLK、PCLK的频率,还需要设置分频系数比如设置分頻比为:FCLK:HCLK:PCLK=1:2:4,则此时只要FCLK的频率确定则HCLK、PCLK的频率也相应确定,其中HCLK频率为FCLK的一半PCLK的频率为FCLK的四分之一。
通过阅读数据手册还可以发现,如果HDIVN≠0(也即频率FCLK≠HCLK)则需要设置cpu总线模式为异步模式。使用指令(s3c2440存储控制器)为:
因此可以得到时钟初始化思维导图:

该寄存器控制UPLL和MPLL的lock time默认值为0xFFFFFFFF,我们采用默认值因此不需要去设置。
分频系数不是任意的必须符合下图:

S3C6410设置cpu总线模式不再是通过设置CP15来进行設置,而是通过Others control register来设置并且,从上图可以看出还需要设置CLK_SRC寄存器,MISC_CON寄存器来选择脉冲通道

这篇博客里面的很多东西都是基於S5PV210_UM的英文手册当然也加入了一些自己的理解。

先对S5PV210的ADC的主要特征做个简单介绍:

注意:A/D的转换频率最大可达5MHz,所以A/D转换时间最大可达1MSPS

对于官方手册上所说的A/D转换时间的计算,可能我们第一次看的时候会不太理解会什么要1MHz/5cycles?

原因是这样的,因为A/D转换时间包括A/D建立时间1位1位轉换时间,保存数据时间等等加起来一共是5个时钟周期,所以会是1MHz/5cycles

所以当最大转换频率达到5MHz时A/D转换时间可达1MSPS(SPS为每秒的采样率)

接着就是介绍涉及ADC操作的一些寄存器

     操作AIN[0],在编写ADC的驱动代码的时候一般情况下只需考虑三个寄存器,分别是


上面表格即是操作AIN[0]时需要用到的三個寄存器对于上面的映射地址,在编写驱动代码的时候可使用ioremap的形式进行映射然后强制转为(volatile unsigned long *)指针形式,接下来就可以直接操作寄存器叻(具体使用方式见前面博客adc的驱动代码里面有具体操作)

操作AIN[1],在编写ADC的驱动代码的时候一般情况下只需考虑三个寄存器,分别是

对于AIN[1]嘚使用方式与AIN[0]的使用完全一样需要修改的只是映射地址而已。

最后介绍一下ADC的操作流程其实熟悉s3c2440存储控制器或者S3C6410的人来看S5PV210的ADC,就会发覺很简单其实他们的操作流程基本上是一样的

2.设置ADCCON的工作方式,预分频比之类的

3.当开始读取数据值时开启ADC转换,判断是否开始转换判断是否转换完成,最终读取数据返回给用户空间

对于熟悉s3c2440存储控制器的人,会发觉一点S5PV210的控制寄存器,是没有通道选择的因为在使用之前,直接用ioremap进行地址的映射时就相当于选择了不同的通道,所以无需通道选择了

以上只是对S5PV210的ADC做了个简单介绍,详细信息请参看S5PV210_UM手册

我要回帖

更多关于 s3c2440存储控制器 的文章

 

随机推荐