当前位置:文档之家› 机器人控制器(CM-6)说明书

机器人控制器(CM-6)说明书

机器人控制器(CM-6)说明书
注意:本控制器除了采用适配器电源供电方式外,还可以采用电池供电,采用的是SANYO 的12V可充电镍氢电池。

而且这种电路设计有个特点:接上适配器时,电池就跟电路断开了,所以就算电池插上了也不会接入电路,有效的保护了电池。

D1为电源指示灯。

在用电池供电时,注意电池的极性,防止反接。

一、程序的编写和编译
采用WINAVR软件进行编译。

安装完之后,打开“Programmers Notepad(WinAVR)”,开始程序的编写。

1. 新建一个工程
2..新建一个c语言源文件并另存为“XX.c”文件,例如main.c
3接下来要把main.c添加到main这个项目中,
4.在main.c中写程序,并保存。

5.makefile的制作。

由于WinA VR没有像Keil uVision那样的集成IDE,所以我们需要写一个叫做makefile的文件来管理程序的编译链接。

Makefile是脚本文件,一个标准的可执行文件makefile.exe负责解析它并根据脚本内容来调用编译器、连接器或其他的工具。

WinA VR的编译需要一个makefile文件,并需要把这个文件放到当前工程的目录下,这样才能正确编译。

Makefile可以直接拷贝本目录下的makefile文件到项目文件夹下,然后用“Programmers Notepad(WinAVR)”打开makefile文件。

修改过程中,只需要修改“TARGET”和“SRC”这两项,把TARGET修改为刚才的源文件(.C文件)的文件名,本例中为“main“,相应地把SRC改为“main.c”即可。

修改完之后保存即可。

①Makefile必须放在项目文件夹下面,而且文件名必须为makefile,不能修改。

②makefile里只需要修改SRC和TARGET这两项即可。

6.接下来进行程序的编译。

在编译前还需要把makefile也添加到项目中去,过程跟添加源文件一样
编译的时候选择“TOOLS/[WinA VR]Make All”,
编译的结果显示在下面的“Output”窗口中。

如果窗口显示“Errors:none”,则表示编译通过。

编译成功后,原来只有2个文件的目录,现在变成了如图所示的文件列表。

至此,程序的编译就完成了。

其中,main.elf包含调试信息,供AVRStudio调试与仿真的文件。

main.hex是二进制可执行文件,为最终下载到AVR芯片里的目标文件。

二、程序的仿真下载
AVR Studio支持一下目标文件格式:aps、hex、d90、obj、cof、dbg和elf,其中,hex 格式是二进制可执行文件,为最终下载文件;elf格式(excutable and linkable format)的执行文件包含调试信息,它在被载入后,可以显示原来的高级语言代码,而不是汇编的内容,这样任何调试执行和操作都是直接针对高级语言进行的。

1.软件级仿真与调试
在没有连接目标板的情况下用软件进行模拟仿真,就是通过软件模拟单片机的实际运行。

首先打开AVR Studio,打开main.elf调试文件,选择AVR Simulator软件模拟器,器件选择ATmega128,如图所示:
图仿真平台及器件选择界面
点击Finish即进行模拟仿真界面,然后执行【Debug】|【AVR Simulator Options】,选择Frequency为16MHz,开始仿真与调试。

调试过程中,合理的使用“Step Into”、“Step Over”、“Step Out”等指令实现进入子函数、越过子函数、跳出子函数等操作;为了看一看在执行到某一步时的各个变量的情况,可以设置断点,程序运行到断点处暂停;可以在“Watch”窗口观察变量的值,同时还提供专门的观察窗口用于观察MCU的数据存储器、程序存储器、I/O 寄存器等各个内部资源的数据以及数据变化,便于进行硬件调试,根据这些观察值能很容易的判断是硬件故障还是软件故障问题。

调试界面如图5-2所示:
图5-2 软件级调试界面
2. 芯片级仿真与调试
芯片级仿真时程序是在单片机内部执行的。

(1)硬件连接
首先把仿真器的USB口接到电脑上,然后把JTAG口接到控制器上,给控制器供电,把仿真器和控制器的电源打开,硬件就算连接好了。

(2)仿真与调试
当JTAGICE连接好目标板之后就可以打开电源,先打开目标板电源和仿真器电源,最后启动AVRStudio。

点击“File/Open File”,找到WinAVR编译生成的文件夹,打开main.elf,并保存
选择JTAGICE mkII调试平台、ATmega128芯片,如图所示:
点击“Finish”进入硬件级仿真界面,如图所示,调试过程和调试工具跟软件级仿真一样。

程序的下载
JTAGICE不但可以片内调试,还能为MCU烧录程序,也就是利用编程设备将调试好的运行代码写入芯片的程序存储器中。

下载时需要使用编程设备改写和配置ATmega128的熔丝位。

那么什么是熔丝位呢?熔丝位是ATMEL公司AVR单片机的独到特性,在每一种型号的AVR单片机内部都有一些特定含义的熔丝位,其特性表现为可多次擦写的EEPROM。

用户通过配置(编程)熔丝位,可以固定地设置AVR的一些性能、参数以及I/O配置等,也可以对片内运行的代码进行加密。

对熔丝位的使用包括已变成(Programmed)和未编程(Unproarammed)两种状态,Unprogrammed表示熔丝状态为1(禁止);Programmed表示熔丝状态0(允许)。

首先查看其熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,将整个熔丝位的状态记录备案。

熔丝位的配置中主要有:Watchdog、片上调试、JTAG接口。

串口下载编程、EEPROM选项、Flash启动区、电压、晶振时钟等。

熔丝位相关配置如图5-5
所示:
图5-5 熔丝位设置界面
一定注意,不要禁止JTAG Enable熔丝位。

使用JTAGICE时,两个相关的熔丝位必须激活,才能通过JTAG进行仿真调试活烧录程序。

两个熔丝位在出厂时设为激活状态。

如果被禁止,就要通过其他的ISP工具激活两个熔丝位才能使用JTAG接口。

另外,由于控制板选用的是外部16MHz的晶振所以要选择“Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms”。

点击菜单栏里的“”按钮,
出现如下界面:
点击“main”旁边的“program”,进入如下界面:
选择main.hex文件后,点击“”,在下面出现”OK”即表示下载成功。

三、串口调试助手的运用
串口调试助手可以用于查看控制器给舵机发送的指令以及舵机给控制器发送的指令。

1.把PC机和控制器的串口连接上
2.打开串口调试助手
3.并设置串口、波特率(57600)
串口号可以从设备管理器看到,
4.打开控制器电源就能看到控制器发送和接受的指令了。

相关主题