完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用LPC1850做了一块小板子,最近正在边焊接边调试,可是一开始就遇到了时钟问题,惆怅自不用提。此帖我会在调试过程中根据现象及问题不断更新,赘述请大家见谅,请尽量耐心的读,也许在您看来只是很低级的错误,请不吝指教。 首先问一个关键问题:LPC1850的XTAL1和XTAL2上是否必须要焊上12MHz的晶振且保证起振?不焊这个晶振能否用IRC(内部时钟)完成所有时钟要求? 下面进入正题。由于想要边焊接边调试,现在板子上只焊了LPC1850及其周围的滤波电容,DEBUG使能的上拉电阻,和#ISP的上拉电阻,JTAG调试接口,还将几个GPIO连接的LED焊上了。个人觉得目前这种情况应该能够进行JTAG调试了,事实是能开始调试,但调试有问题。经过对LPC1850用户手册的初步咀嚼,LPC1850的启动流程如下 首先将P2_9, P2_8, P1_2, P1_1全部上拉,即没有启动代码。此处是本人的疑惑点之一:启动流程上描述,启动失败后P1_1引脚会以1Hz平率变换60s(给NXP的官方专家发过信,此1Hz来自IRC),可是我检测P1_1并没有此变化,始终拉高。在这种情况下,只有将#ISP引脚拉低,复位进入ISP模式才能连接JTAG进入debug,否则Keil在debug时提示SWD Communication Failed。另外,根据我对用户手册的理解,进入ISP后,IRC和PLL1共同作用产生96MHZ的时钟,可是我的板子进入ISP后CLK0/1/2/3都是67~68MHz。如果不进入ISP,CLK0/1/2/3的输出是16~25MHz,且有明显的噪声干扰。 之后,我焊上外部NOR Flash,使{P2_9, P2_8, P1_2, P1_1} = 0011,个人觉得由于此时NOR Flash中没有烧任何东西,所以还是会启动失败,最后P1_1进行60S变换,事实是,检测不到P1_1的变换。不过在这种情况下,无论进没进ISP模式,都能连接JTAG进入DEBUG。时钟频率同上。 可是不管在哪种模式下进入debug后,通过JTAG读到的寄存器的值确实与手册中描述的寄存器复位值有出入。下面列举其一:PLL1_CTRL寄存器(PLL1控制寄存器,隶属于CGU(时钟产生单元模块))。根据手册中描述的该寄存器的复位值应该是01000003H,而我的板子上的该寄存器的复位值是01000000H。我尝试向PLL1_CTRL中写值,但其MSEL段(应该是倍频倍数)总是写不进去,且时能PLL1后,PLL1_STAT的锁定位也总是不能置1(个人觉得这里是关键,PLL1_CTRL不能配置,PLL1_STAT不能锁定也就不能提供正确的基础时钟)。 初步写的小测试程序只是想把连接LED的引脚拉高,点亮LED,可是我忽略以上所有的不正常去配置GPIO时,总是会进入HardFault_Handler中断。 继续的对user manual进行咀嚼,有一个新发现:(这是2014最新版的user manual,有一些变动,还没有找到中文版的) 1. After a power-up, reset, or when waking up from deep-power down mode. In these situations, the boot code executes. After the boot process has completed, the clock configuration of the part is as follows: – The core clock BASE_M3_CLK is connected to the outputof PLL1 and running at 96 MHz. – The clock source for the PLL1 is the 12 MHz IRC. 2. After wake-up from Deep-sleep or power-down modes. In this case, BASE_M3_CLK is connected to the IRC running at 12 MHz. 板子的时钟在两种方式下不一样:(1)上电、复位、从深度掉电中唤醒:基础时钟的时钟源是PLL1 = 96M;(2)从掉电或深度睡眠模式唤醒:基础时钟的时钟源是IRC = 12M。在进入DEBUG后,我读了一下BASE_M3_CLK寄存器的内容,发现他的CLK_SEL段的值是1,也就是选择IRC作为时钟源。此处疑惑难平:我每次都是关闭板子电源,在重新启动,或者按复位键复位,怎么分析都应该是第一种情况啊,为什么貌似进了第二种模式呢? 纠结神马的已是平常,只求专家们给点意见解救我于水火。可以加我QQ***,拜谢! 下面奉上LPC1850部分原理图 |
|
相关推荐
2 个讨论
|
|
只有小组成员才能发言,加入小组>>
1689个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
35784 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
3978 浏览 0 评论
5517 浏览 1 评论
6373 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
3853 浏览 0 评论
319浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
280浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
306浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
369浏览 2评论
379浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 23:51 , Processed in 0.589018 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号