LPC2000系列ARM PLL配置详解及代码示例
需积分: 16 102 浏览量
更新于2024-08-24
收藏 1.6MB PPT 举报
"PLL设置和LPC2000系列ARM微控制器的硬件结构"
在嵌入式系统中,PLL(Phase-Locked Loop,锁相环)是一种关键的时钟频率合成器,用于提高系统时钟速度或改变系统时钟频率。在LPC2000系列ARM微控制器中,PLL的配置对于优化系统性能至关重要。本文通过一个具体的例子展示了如何设置PLL。
PLL配置过程主要包括以下几个步骤:
1. **计算PLL分频值**:PLLSet函数接受Fcclk(期望的系统时钟频率),Fosc(晶振频率),和Fcco(PLL输出频率)作为参数。首先计算出分频比i = Fcco / Fcclk,然后根据这个比例选择合适的分频配置。
2. **参数合法性检查**:根据分频比i,选择适当的PLL分频设置。例如,当i等于2、4、8或16时,分别设置PLLDAT寄存器的不同位。如果i不在这些范围内,函数返回错误。
3. **使能PLL**:设置PLLCON寄存器,初始化PLL。
4. **设置PLL分频值**:将计算得到的PLLDAT值写入PLLCFG寄存器,定义PLL的工作模式。
5. **PLL馈送序列**:为了确保PLL配置的生效,需要执行两次写操作(PLLFEED = 0xaa, PLLFEED = 0x55)。
6. **等待PLL锁定**:通过循环检查PLLSTAT寄存器的锁定标志,直到PLL稳定并锁定。
7. **连接PLL**:最后,设置PLLCON寄存器为3,连接PLL到系统时钟。
LPC2000系列是基于ARM7TDMI-S CPU核心的微控制器,支持ARM和Thumb指令集。这个系列包括多个子系列,如LPC2100、LPC2200、LPC2300、LPC2400和LPC2800,每个子系列提供了不同数量的引脚、片上RAM、Flash存储和外设接口,比如GPIO、UART、I2C、SPI、定时器、A/D转换器等。这些特性使得LPC2000系列广泛应用于工业控制、医疗设备、安全系统和销售点终端等领域。
LPC2000系列的硬件结构包括但不限于:
- **系统控制模块**:管理系统时钟、复位和其他系统级功能。
- **存储器加速模块(MAM)**:优化高速数据处理。
- **外部存储器控制器(EMC)**:支持与外部RAM和ROM的通信。
- **引脚连接模块**:提供灵活的I/O配置。
- **向量中断控制器(VIC)**:处理系统中的中断请求。
- **GPIO**:通用输入输出端口,用于与其他硬件交互。
- **UART**:用于串行通信。
- **I2C**和**SPI接口**:支持多种总线协议的通信。
- **定时器**:用于计时和事件检测。
- **A/D转换器**:模拟信号转数字信号的接口。
- **实时时钟**:保持精确的时间跟踪。
- **看门狗定时器**:确保系统在异常情况下能正常运行。
- **PWM**:用于生成脉宽调制信号。
了解和掌握这些硬件模块以及如何配置PLL,对于开发基于LPC2000系列的嵌入式系统至关重要。通过精心的配置,可以优化系统的性能、功耗和稳定性,满足不同应用的需求。
2012-03-25 上传
2012-11-03 上传
2013-01-11 上传
2014-12-17 上传
2008-09-02 上传
2012-04-27 上传
2013-01-16 上传
2024-11-29 上传
2024-11-29 上传
2024-11-29 上传
theAIS
- 粉丝: 59
- 资源: 2万+
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践