1、概念解析
1.1时钟脉冲信号
1.2时钟脉冲频率
1.3时钟源(提供时钟脉冲信号)
a、晶振
b、锁相环PLL
2、时钟体系
2440:
晶振的频率、时钟体系有多少个PLL、这些PLL分别产生了哪些时钟、产生的时钟用来做什么的。
采用的是12MHZ,总共有2个PLL分别是MPLL、UPLL,MPLL产生了FCLK、HCLK、PCLK,UPLL产生了UCLK。
6410:
12MHZ晶振,有三个PLL:APLL(产生ARMCLK)、MPLL(产生HCLK、PCLK)、EPLL(产生SCLK);
3、思维导图设计
1)、时钟初始化流程图
2440与6410:
一上电cpu以晶振频率运行,所以要利用软件对PLL进行配置,使cpu工作在高频,配置完锁相环之后,有一段lock time时间,处理器是不工作的,经过这个lock time时间后,cpu就会按照配置的高频运行了。
配置:
4、代码编写
1)设置lock time一般我们选择默认值,
2)设置分频系数(FCLK、HCLK以及PCLK的比例关系)
初学者不知道怎么选择这个稀疏,一般参考uboot(选择的是1:4:8)。
3)设置异步模式
因为让最高两位做或的操作,就是让他们都为1.
5、设置ARM核的频率
6410:
1、lock time的设置
2、配置分频系数
3、设置CPU工作在异步模式
OTHERS寄存器的第六位也要为0,因为
4、设置APLL以及MPLL的输出频率
5、选择后续时钟源
6、代码如下:
补充:时钟源的选择---当外部复位信号被声明时,OM[4:0]引脚决定了S3C6410的操作模式。OM[0]引脚选择外部时钟源,例如,如果OM[0]是0,则XXTIPll(外部晶体)被选择。否则,XEXTCLK被选择。友善之臂的电路图如下:
它的启动模式选择电路图如下:
关键字:时钟初始化 时钟体系
引用地址:
Part7-时钟初始化_lesson1
推荐阅读最新更新时间:2024-11-12 10:21
jz2440裸机开发与分析:内存控制器4之SDRAM设置
LDR R0,=0X30000000 ➡CPU发给内存控制器:①发出nGCS6;②根据(SDRAM)类型拆分地址:a,BANK地址,b,行地址, c,列地址 ;③读数据 LDR R1, 问题:如何拆分?行地址几条?列地址几条? 2440内存控制器设置 1、BWSCON寄存器配置=0x22000000 2、BANKCON6寄存器配置 3、REFRESH刷新寄存器配置 4、BANHSIZE配置 5、MRSRB6 SDRAM中有一个MR寄存器(含有CL),用来确定列地址到发出数据中间间隔的时间,而2440内的MRSRB6寄存器也有一个CL,2440根据内部CL设定的值,再通过发送数据去确定SDRAM中的C
[单片机]
u-boot-2009.08在mini2440上的移植 增加yaffs2文件系统
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-eabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 5.1,添加Yaffs2镜像烧写功能 由于现在很多使用Nand Flash 的系统,在Linux 下都用Yaffs2作为存储数据的文件系统,甚至是根文件系统。所以在BootLoader 下能够烧写Yaffs2 映像文件变得很必要。对于Yaffs2 映像烧写的支持其实
[单片机]
2440/2410上将usb device改成usb host
之前的开发,要在2440上使用两个usb host口,一个接摄像头,一个接无线网卡。但友善之臂mini2440板子只有一个usb host口,曾想通过外接一个usb hub来解决,无线网卡接hub没有问题,但是摄像头插到hub上总是有错误: usb 1-1: reset full speed USB device using s3c2410-ohci and address 3 usb 1-1.2: new full speed USB device using s3c2410-ohci and address 4 usb 1-1.2: device descriptor read/64, error
[单片机]
S3C2440 UART使用笔记
Uart_Init(0,115200); ////////////////////////////////********************************************************************//////////////////////////////////////////////// void Uart_Init(int pclk,int baud) { int i; if(pclk == 0) pclk = PCLK; rUFCON0 = 0x0; //UART channel 0 FIFO control register, FIFO disable
[单片机]
mini2440 dm9000 网卡驱动详解 (三)
*dm9000_get_drvinfo() 该函数去的设备的基本信息(设备名,版本,总线名)传给ethtool_drvinfo结构体变量。代码清单如下: static void dm9000_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { board_info_t *dm = to_dm9000_board(dev); /*to_dm9000_board实际上就是调用了netdev_priv(dev)*/ strcpy(info- driver, CARDNAME);
[单片机]
S3C2440 中断控制寄存器
1、 SUBSRCPND 寄存器(SUB SOURCE PENDING) SUBSRCPND 寄存器被用来标识 INT_RXD0、INT_TXD0 等中断(S3C2410中这类中断有 11 个,而 S3C2440 中有 15 个)是否已经发生,每位对应一个中断。当这些中断发生并且没有被 INTSUBMSK 寄存器屏蔽,则它们中的若干位将“汇集”出现在 SRCPND 寄存器的一位上。比如 SUBSRCPND 寄存器中的 3 个中断 INT_RXD0、INT_TXD0、INT_ERR0,只要有一个发生了并且它没有被屏蔽,则 SRCPND 寄存器中的 INT_UART0 位被置 1。 要清楚中断时,往 SUBSRCPND 寄存器中某
[单片机]
JZ2440串口打印字符作为调试
/* * 初始化UART0 * 57600,8N1,无流控 */ void uart0_init(void) { GPHCON |= 0xa0; // GPH2,GPH3用作TXD0,RXD0 GPHUP = 0x0c; // GPH2,GPH3内部上拉 ULCON0 = 0x03; // 8N1(8个数据位,无较验,1个停止位) UCON0 = 0x05; // 查询方式,UART时钟源为PCLK UFCON0 = 0x00; // 不使用FIFO UMCON0 = 0x00; // 不使用流控 UBRDIV0 = UART_BRD; // 波特率为115200 }
[单片机]
基于S3C2440A设计的视频监控系统
目前,嵌入式系统在视频监控中的应用越来越广泛。伴随着网络的强大功能,视频监控更侧重网络监控方案,要求体积小、远程化、成本低、功耗小、操作界面人性化等。本系统基于嵌入式Linux 平台上利用USB 摄像头采集视频图像,通过视频图像压缩及结合网络进行视频图像传输,使远程监控成为可能。 1 系统概述 视频图像监控系统由4 部分组成, 分别为视频图像采集、视频图像处理、视频图像传输、视频图像显示。视频图像采集部分由数字摄像头、USB 通道和嵌入式处理器构成、视频图像处理主要是视频图像压缩,由算法实现、视频图像传输主要利用视频服务器来实现、视频图像显示主要是在远程的主机上实现视频图像的浏览、保存和处理等,Linux 主机上由
[单片机]