Advertisement

AT91SAM9X35时钟设置步骤详解

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:DOC


简介:
本文详细介绍了如何为AT91SAM9X35微处理器进行时钟配置,涵盖各个关键步骤和注意事项,帮助开发者快速掌握相关知识。 AT91SAM9X35 是一款基于 ARM926EJ-S 内核的微处理器,由Atmel公司(现已被Microchip收购)设计,并广泛应用于嵌入式系统中。在该芯片的配置过程中,时钟管理是至关重要的一个环节,因为它直接影响到系统的性能和功耗。本段落将详细讲解AT91SAM9X35 的时钟配置原理和步骤。 首先,在配置开始阶段需要切换至主时钟源MAINCK,这通常指的是外部晶体振荡器。通过读写内存地址来实现这一操作。`PMC_MCKR.CSS = 1`表示选择主时钟源,而 `PMC_MOR = 0x10374009` 则用于配置外部12MHz晶振并启用。这里的具体数值包含了多个标志位,如ME、MSB、MORSTEN 和 MOSCXTEN 分别控制着晶体振荡器的启用和启动条件。 接下来是PLL(锁相环)的配置步骤以生成所需的频率输出。`CKGR_PLLAR.MULA = 199` 和 `CKGR_PLLAR.DIVA = 3` 的设置用于计算 PLL 输出频率,公式为 `MAINCK * (MULA + 1) / DIVA` ,这里得出PLLACK(即PLL A的输出)为800MHz。此外,UTMI字段被设为40以确保USB时钟达到480 MHz。 设定 MCK (主系统总线时钟)频率是下一个关键步骤。通过设置 `PMC_MCKR.PLLADIV2 = 1` 和 `PMC_MCKR.MDIV = 3` ,将PLLACK的输出分频,使得MCK最终为133MHz(即400 MHz 输入经MDIV=3 分频后的结果),这一频率通常用于DDR内存。 PCK (外设时钟)是针对特定外围设备设计的。通过设置 `PMC_MCKR.PRES` 来调整其频率,示例中将 PRES 设置为 0 ,不进行分频处理,因此 PCK 直接从 MCK 获取400MHz 的信号,供 CPU 使用。 最后一步是切换至 PLLACK(800 MHz)作为系统时钟源。通过设置 `PMC_MCKR.CSS = 2` 来使能PLL输出,确保所有之前配置的时钟设定生效,并让CPU及其他组件按照新的频率运行。 总结来说,AT91SAM9X35 的时钟配置涉及选择合适的主时钟源、调整锁相环生成所需频率以及对MCK和PCK进行分频设置以满足不同系统组件的需求。这一过程需要精确的计算与编程来确保系统的稳定性和性能表现。在实际应用中,还应考虑功耗、稳定性及兼容性等因素,进一步优化时钟配置方案。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • AT91SAM9X35
    优质
    本文详细介绍了如何为AT91SAM9X35微处理器进行时钟配置,涵盖各个关键步骤和注意事项,帮助开发者快速掌握相关知识。 AT91SAM9X35 是一款基于 ARM926EJ-S 内核的微处理器,由Atmel公司(现已被Microchip收购)设计,并广泛应用于嵌入式系统中。在该芯片的配置过程中,时钟管理是至关重要的一个环节,因为它直接影响到系统的性能和功耗。本段落将详细讲解AT91SAM9X35 的时钟配置原理和步骤。 首先,在配置开始阶段需要切换至主时钟源MAINCK,这通常指的是外部晶体振荡器。通过读写内存地址来实现这一操作。`PMC_MCKR.CSS = 1`表示选择主时钟源,而 `PMC_MOR = 0x10374009` 则用于配置外部12MHz晶振并启用。这里的具体数值包含了多个标志位,如ME、MSB、MORSTEN 和 MOSCXTEN 分别控制着晶体振荡器的启用和启动条件。 接下来是PLL(锁相环)的配置步骤以生成所需的频率输出。`CKGR_PLLAR.MULA = 199` 和 `CKGR_PLLAR.DIVA = 3` 的设置用于计算 PLL 输出频率,公式为 `MAINCK * (MULA + 1) / DIVA` ,这里得出PLLACK(即PLL A的输出)为800MHz。此外,UTMI字段被设为40以确保USB时钟达到480 MHz。 设定 MCK (主系统总线时钟)频率是下一个关键步骤。通过设置 `PMC_MCKR.PLLADIV2 = 1` 和 `PMC_MCKR.MDIV = 3` ,将PLLACK的输出分频,使得MCK最终为133MHz(即400 MHz 输入经MDIV=3 分频后的结果),这一频率通常用于DDR内存。 PCK (外设时钟)是针对特定外围设备设计的。通过设置 `PMC_MCKR.PRES` 来调整其频率,示例中将 PRES 设置为 0 ,不进行分频处理,因此 PCK 直接从 MCK 获取400MHz 的信号,供 CPU 使用。 最后一步是切换至 PLLACK(800 MHz)作为系统时钟源。通过设置 `PMC_MCKR.CSS = 2` 来使能PLL输出,确保所有之前配置的时钟设定生效,并让CPU及其他组件按照新的频率运行。 总结来说,AT91SAM9X35 的时钟配置涉及选择合适的主时钟源、调整锁相环生成所需频率以及对MCK和PCK进行分频设置以满足不同系统组件的需求。这一过程需要精确的计算与编程来确保系统的稳定性和性能表现。在实际应用中,还应考虑功耗、稳定性及兼容性等因素,进一步优化时钟配置方案。
  • STM32F103
    优质
    本文介绍了如何为STM32F103微控制器进行时钟配置,涵盖关键寄存器的初始化和系统时钟的选择与设定,帮助读者快速掌握时钟设置流程。 STM32F103系列单片机的时钟配置流程如下: 详细步骤: 1. 初始化系统时钟:首先需要初始化HSE(外部高速振荡器)或HSI(内部高速振荡器),然后根据需求选择主时钟源。 2. 配置AHB、APB1和APB2总线的预分频器,以调整外设的工作频率。 3. 使能并配置所需的外设时钟:如USART、SPI等。 相关知识点讲解: - HSE: High Speed External Clock(高速外部时钟) - HSI: High Speed Internal Clock(高速内部时钟) 目前已经有2.0版本可供下载。
  • Android系统间源代码
    优质
    本文详细介绍在Android操作系统中通过修改和编译源代码来设置系统时间的具体步骤,帮助开发者深入理解系统的内部机制。 Android 修改系统时间实例的源码及详细步骤说明文档如下: 1. 确定设备已获取root权限。 2. 在应用程序清单文件(`AndroidManifest.xml`)中添加以下权限: ```xml ``` 3. 创建一个Java类,例如 `SystemTimeChanger.java` ,编写修改系统时间的代码。示例代码如下: ```java import java.util.Calendar; import android.app.Activity; import android.content.Context; import android.os.Bundle; public class SystemTimeChanger extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取当前上下文环境对象 Context context = getApplicationContext(); Calendar calendar = Calendar.getInstance(); // 设置新的日期和时间(例如2023年1月1日 0时) calendar.set(2023, Calendar.JANUARY, 1, 0, 0); // 使用Service类或类似的系统服务方法来设置新时间 } } ``` 4. 在 `SystemTimeChanger.java` 类中,需要调用适当的API或者使用反射技术来更改设备的时间。由于直接访问系统时间属性可能受到安全限制,请查阅相关文档以了解如何在不同Android版本上实现这一功能。 5. 编译并运行应用程序,在测试环境中验证修改系统时间的功能是否正常工作。 6. 根据实际需求调整和优化代码,确保其符合项目要求及兼容性标准。
  • IPSec配
    优质
    本文将详细介绍IPSec的安全协议配置步骤,帮助读者掌握如何在不同的操作系统和网络环境中设置和管理IPSec连接。 IPSec(IP Security)是IETF制定的用于在Internet上传输数据的安全保密性框架协议,在网络层应用,并保护和认证使用IP的数据包。它是一个开放式的框架协议,各算法之间相互独立,提供信息机密性、数据完整性、用户验证以及防重放攻击的功能。此外,IPSec支持隧道模式和传输模式。
  • Android模拟器IP
    优质
    本教程详细介绍了如何在Android模拟器中正确配置IP地址,包括获取当前IP、更改网络设置及排查常见问题,帮助开发者顺利完成调试工作。 在进行Android开发时,使用模拟器是必不可少的工具之一。然而,在很多情况下,Android模拟器与电脑不在同一网段内,这使得测试过程变得复杂且困难,并且经常导致模拟器无法连接到互联网上。本段落将详细介绍如何设置Android模拟器IP地址的完整步骤。
  • Oracle Stream配
    优质
    本文详细介绍Oracle Stream的配置过程,包括环境准备、组件安装、参数设置及常见问题解决方法,帮助数据库管理员轻松掌握Stream配置技巧。 利用Oracle数据库Stream复制技术搭建主从数据库,实现读写分离等功能。
  • Cisco MDS9148配
    优质
    本教程详细介绍了如何配置Cisco MDS9148 SAN交换机的各项功能和参数,适合网络管理员参考学习。 本段落将详细介绍如何配置Cisco MDS9148交换机,供需要的朋友参考。
  • CentOS配Chrony间同服务器图示
    优质
    本文详细介绍了如何在CentOS系统中配置Chrony服务以实现精准的时间同步,并辅以图解说明。适合需要维护网络时间协议(NTP)服务器的技术人员阅读。 我的环境包括3台CentOS 7.5机器:master节点192.168.100.140、node1节点192.168.100.141以及node2节点192.168.100.142。所有这三台机器都安装了chrony服务,通过执行`yum -y install chrony`命令完成。 在master节点上,需要取消第26行和第29行的注释,并根据实际情况填写IP地址段(例如我的是192.168.100.0)。之后启动chronyd服务: ``` systemctl restart chronyd.service systemctl enable chronyd.service ``` 对于node1和node2节点,需要在这几行中添加注释,并增加master的相关配置。
  • Hadoop安装配
    优质
    本教程详细讲解了如何在计算机上安装和配置Hadoop环境,包括准备工作、下载安装包、配置文件设置等步骤,帮助初学者快速入门大数据处理技术。 这篇关于Hadoop安装配置的文章非常详细,步骤清晰易懂,只要有基本的操作能力和识字水平就能轻松学会。
  • Nginx集群配
    优质
    本文详细介绍了如何配置Nginx集群,包括各个步骤的操作指南和注意事项,帮助读者轻松实现高可用负载均衡。 Nginx集群配置的详细步骤如下: 1. 准备工作:确保所有服务器都已经安装了Nginx,并且可以正常运行。 2. 配置主节点:在一台作为主控机的服务器上,编辑nginx.conf文件,在http块中添加upstream模块来定义后端服务列表。例如: ``` upstream backend { server 192.168.0.1:80; server 192.168.0.2:80; } ``` 3. 配置从节点:在每台作为工作机的服务器上,也需要进行相应的配置。同样编辑nginx.conf文件,在server块中添加location模块来定义负载均衡规则,并引用上面创建的upstream。 4. 测试与验证:完成上述步骤后,重启Nginx服务并访问主控机提供的地址以测试集群是否正常工作。 以上就是基本的Nginx集群配置方法。根据实际情况可能需要进行更多细节上的调整和优化。