首先说一说为什么写这个教程,转眼间就毕业了,学校的日子还没有过够。就要工作了,由于需要想要搞一搞ARM M3,很显然芯片选型落在了STM32 和NXP 的LPC17XX 上了。最后选择了LPC1768 这款型号,买开发板、学习(以前我只用过单片机和一点点STM32),学习的过程还算顺利,找到了ZLG 翻译的中文资料和3 个版本的例程。学习开始了,从LED 灯、串口、AD、到内部定时器等等。学习的过程夹杂着心酸和喜悦,在学习的过程中发现网络上还没有现成的学习资料。市场上的开发板的一部分不是自己开发的都是参考的NXP 和ARM 公司的官方版本,其实这本身并没有什么不好,但是后面的问题出来了,程序注释不详细,除了手册就没有参考资料了。所以在学习的过程中就在想要是把自己学习的过程总结一下,出一点资料,为那些奋斗在学习一线的电子爱好者出一份力,这是一件多么令人高兴的事呀!于是有了今天这个教程的诞生。关于同是ARM M3 内核的STM32 和LPC17XX 比较,我想大家争论最大的地方是价格。我想说的是LPC17XX 是NXP 公司推出的基于M3 内核比较高端的芯片。应该拿STM32 中高端芯片和LPC17XX 比较。我曾经买过几片stm32f103VET6 是100 脚512KB flash、64KB SRAM、72MHz、AD、DA、定时器、USB 从机和FSMC。而LPC1768,100 脚、512KB flash、64KB SRAM、100MHz、AD、DA、32 位定时器、USB 主/从/OTG、以太网、电机控制PWM、正交编码器接口等。STM32 有FSMC 的优势,LPC1768有以太网、USB 主机等优势。可能你要说stm32F105 和stm32f107 也有带USB 主机,以太网的。可是看看价格也差不多,这几个芯片目前的价格都在40 元左右。还有编程,stm32 有库,而NXP 没有,但是我觉得NXP 的寄存器操作也很简单,不信试试就知道了。 第一部分 LPC1768介绍
1.1简介
LPC1768 是NXP 公司推出的基于ARM Cortex-M3 内核的微控制器LPC17XX 系列中的一员。LPC17XX 系列Cortex-M3 微处理器用于处理要求高度集成和低功耗的嵌入式应用。LPC1700 系列微控制器的操作频率可达100MHz(新推出的LPC1769 和LPC1759 可达120MHz)。ARM Cortex-M3 CPU 具有3 级流水线和哈佛结构。LPC17XX 系列微控制器的外设组件包含高达512KB 的flash 存储器、64KB 的数据存储器、以太网MAC、USB 主机/从机/OTG 接口、8 通道DMA 控制器、4 个UART、2 条CAN 通道、2 个SSP 控制器、SPI 接口、3 个IIC 接口、2 输入和2 输出的IIS 接口、8 通道的12 位ADC、10
位DAC、电机控制PWM、正交编码器接口、4 个通用定时器、6 输出的通用PWM、带有独立电池供电的超低功耗RTC 和多大70 个的通用IO 管脚。
1.2 特性(部分)
64KB 片内SRAM 包括:
32KB 可供高性能CPU 通过本地代码/数据总线访问;
2 个16KB SRAM 模块、带独立访问路径、可进行更高吞吐量的操作。这些SRAM 可用于以太网、USB、DMA 存储器,以及通用指令和数据存储。
串行接口:
以太网MAC 带RMII 接口和相关的DMA 控制器;USB 2.0 全速从机/主机/OTG 控制器,带有用于从机、主机功能的片内PHY 和相关的DMA 控制器;
4 个UART、带小数波特率发生功能、内部FIFO、DMA 支持和RS-485支持。1 个UART 带有modem 控制IO 并支持RS-485,全部的UART都支持IrDA;
CAN 控制器,带有2 个通道;
|