Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1969320
  • 博文数量: 610
  • 博客积分: 11499
  • 博客等级: 上将
  • 技术积分: 5511
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 19:27
文章分类

全部博文(610)

文章存档

2016年(5)

2015年(18)

2014年(12)

2013年(16)

2012年(297)

2011年(45)

2010年(37)

2009年(79)

2008年(101)

分类: LINUX

2008-04-18 22:35:11





怎么让设计的at91rm9200开发板工作起来?-这里有几个需要注意的地方!(作者:gliethttp)

  at91rm9200开发板从工厂拿回来之后,将9200芯片焊上去,将18.432MHz晶振接到XIN、XOUT引脚上,之后就是焊两个电容,接下来 将9200工作电源、复位电路焊上去,这些工作完成之后,你想看看DBGU口是不是可以蹦C,把BMS引脚拉高,之后呢?你肯定不能在DBGU口上观测到 “C”的出现,为什么?这时你可能怀疑自己的电路是不是设计的有问题,然后自然而然的想到用示波器测测XIN、XOUT是不是输出18.432MHz的正 弦波了,你肯定测不到波形!
  首先你的硬件设计很少会有问题,问题到底出在哪里?对于刚接触at91rm9200的兄弟们可能不知道at91rm9200的一些软硬件特性,下面说说怎 么让9200蹦出“C”:9200上电之后,在nrst引脚要有至少92µs的低电平保持,之后XIN、XOUT引脚内部的起振电路默认情况下不会工作, 需要软件控制CKGR_MOR主振荡器寄存器的MOSCEN域,所以这就需要程序,但是蹦“C”的部分是由固化在9200内部ROM中的程序完成的,那么 为什么XIN、XOUT引脚还是不能测到波形呢?这就需要清楚,9200CPU上电之后的系统时钟情况了,我们都知道CPU的运行在于CPU的clock 的驱动,那么没有clock的cpu,是没有时序上的概念的,那么9200上电后工作的PMC主机时钟来自哪里呢,CKGR_MOR的MOSCEN域默认 情况是不让XIN、XOUT引脚起振的,必须由软件程序使能MOSCEN域,那我们写的程序的第一条语句都是跳转指令,都不是上来对MOSCEN域赋值, 所以上电后9200默认工作的时钟断然不是XIN、XOUT时钟,通过PMC主机时钟寄存器的CSS主机时钟选择域可以证实我们的这种假设,CSS域的上 电默认选择是“慢时钟sclk”,这时可能恍然大悟了,原来我们还少焊了一个9200上电后到MOSCEN域使能之间运行程序使用的PMC-“慢时钟 sclk”,9200规定XIN32、XOUT32引脚之间的慢时钟晶振是9200系统中唯一的一个不变的时钟-其值固定为32.768 kHz,好了,把32.768 kHz的晶振和两个电容焊到XIN32、XOUT32引脚上,就可以在DBGU口接收到“C”了,因为蹦“C”程序将MOSCEN域使能,所以XIN、 XOUT引脚上也能测到波形了:)大家好运~~

阅读(1301) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~