首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

AT91M55800调试手记[转帖]

AT91M55800调试手记[转帖]

AT91M55800开发板调试手记
一、电源篇
动手之前我们先复习一下基础知识,温故而知新嘛
AT91M55800有五种类型的电源引脚
1)VDDCORE引脚,为芯片内核供电
2)VDDIO 引脚,为I/O口线供电
3)VDDPLL 引脚,为振荡器和PLL单元供电
4)VDDA 引脚,为模拟外围ADC和DAC供电
5)VDDBU 引脚,为RTC、32.768KHz振荡器和APMC的关电逻辑供电
对应地引脚为:VDDCORE/VDDIO------GND
VDDPLL-------------GNDPLL
VDDA---------------GNDA
VDDBU--------------GNDBU
好了,现在可以给板子通电了。(这里认为以完成焊接,基本功吗,大家应该都会的)
通电前先看一下上面各组电源和地有没有短路情况,没有就先上电试试看,如果有什么
异常,比如冒烟了、芯片烫的厉害了或者其他更神奇的情况,一定要以迅雷不及掩耳盗铃之势赶快趴到桌子底下,把电源线拔掉。
有一点要注意一下,就是VDDBU一定要有,因为32.768KHz振荡器靠它供电呢,没了它可是什么都玩不起来。当然VDDCORE和VDDIO是不可缺少的,VDDPLL和VDDA暂时没有也无所谓。
OK,现在已经通了电了,也没有什么异常,用示波器看XIN32和XOUT32引脚是否有32.768KHz的
振荡频率,如果有,第一步就成功了。下一步我们来尝试下载程序到内部RAM

************************************

二、程序下载篇

二、程序下载篇
1)程序下载篇之内部RAM
AT91M55800有8KB片内SRAM,所以程序不能超过8K,我把IAR提供的例子改了一下,可以用来下载运行,原来的太大了。
55800复位后片内SRAM映射在0X00300000开始的地方,这里我们来一次重映射,重映射后从0X00000000开始的1MB固定为内部RAM区。

开始时我们可以只焊接电源、复位等必须电路,当然还有55800,就可以进行简单的调试;以确保CPU是正常工作的,然后再把外部SRAM、FLASH等其他电路加上去。这样可以降低调试难度。

首先要做的是重映射,我们用OCD Debugger(可WWW.MACRAIGOR.COM下载)来完成。运行OCD Debugger,在弹出的对话框做如下设置,
Target Processor:ARM ARM7xxx ;
OCD Interface Device:Wiggler;
OCD Speed:1
然后确定;可能会提示没有连接、不能进入调试状态等错误,先检查复位电路;没有问题的话一般就是焊接问题了,当然也不排除其他问题。正常连接后可以查看CPU状态等等(
具体使用看帮助吧),这里我们点击Macro,在弹出的对话框中选择at91.raa中的W.MAC文件、确定,执行后就完成了重映射了。
现在我们运行IAR,打开下面的工程文件at91.rar
点击浏览该文件(在3.30A下编译通过,运行正确),然后设置一下WIGGLER相关的参数(具体怎么设置我会做个动画演示的,现在省略,最好的方法就是看帮助了)。最后编译、运行就可以了。由于是内部RAM,所以一般不存在下载不成功的情况,只要重映射可以正常进行就不会有问题。

2)程序下载篇之外部RAM
首先确保SRAM与CPU的连接没有问题,用万用表看有没有虚焊;如果是用的128KB的SRAM要将JP111的1、2脚短接,如果是512KB的SRAM则短接2、3脚。检查无误后用上面提到的方法进行重映射(用OCD Debugger)。

然后打开IAR Systems\Embedded Workbench 3.2\ARM\src\examples\Atmel\AT91EBxx\at91_ebxx.eww,编译、DEBUG就可以进行下载了(已设置好WIGGLER)
方法和下载到内部RAM是一样的,不同的只是*.XCL的设置。at91_ebxx.eww中有两个XCL FILE,一个在flash sources下面,用来生成可烧写文件;一个在ram sources下面,用来生成可以下载到SRAM中调试的代码。都有很详细的注释,看一下就明白了,一般来说只要修改ROM、RAM地址配置部分和目标板硬件对应就可以了。
************************************
最大定时时间:Tmax = 65535/FTC
定时分辨率:  Treso =  1/FTC

Table 1. Maximum Counter Duration for Various MCK
MCK       5MHz     10MHz    20MHz     33MHz    66MHz
MCK/2    26.21ms  13.10ms  6.55ms    3.97ms   1.98ms
MCK/8    104.8ms  52.4ms   26.22ms   14.89ms  7.45ms
MCK/16   419.4ms  209.7ms  104.86ms  63.86ms  31.98ms
MCK/128  1.68s    838.8ms  420.4ms   254.2ms  127.1ms
MCK/1024 13.42s   6.71s    3.36ms    2.03s    1.02s

首先根据上面的表格,选择FTC的值
如,我们要在AT91M55800上实现1ms的定时,则可以选择FTC = MCK/2

然后根据下面的公式计算RC的值:RC = (t * FTC) - 1
t为想要的定时时间,单位为秒,这里为0.001S
假定MCK为32MHz    则 RC = 0.001*(32000000/2)- 1 = 15999

hao

hao
老早写的贴子,让大家见笑了
嵌入式专业网站 http://www.51usb.com
返回列表