摘要:本应用笔记是快速入门。它解释了怎样安装并配置IAR Embedded Workbench®。此外,它提供简要的说明来编译、链接、调试MAXQ7665微控制器评估套件中的几个实例工程。问题排查部分可以帮助确定评估板的工作状况。
安装了IAR工具箱后,安装中建立的MAXQ7665功能文件包括:
查看详细图片
图1. MAXQ7665的这一工作区列出了软件中包含的工程。
图2. 工程选项菜单使您能够配置每一工程的选项。
JTAG串口是实例工程唯一需要设置的选项。如果选择了JTAG,将出现图3所示的截屏显示。在这个例子中,我们使用COM1作为PC至MAXQ7665评估板的通信端口。如果需要使用不同的端口,将COM改为对应的串口。
图3. 通过JTAG接口来建立IAR工具箱和MAXQ7665之间的通信。
在建立MAXQ7665评估板新工程或者目标应用程序时,必须设置某些重要选项。使用特殊文件来建立MAXQ7665可选链接器和调试器配置。
图4. 在这一屏幕显示上配置工程的链接器选项。
图5. 在这一屏幕显示上,您可以配置调试选项。
这一选择打开了一个MAXQ7665评估板工作区,它含有几个工程。找到标有MAXQ7665 EV Kit LED Demo (窗口底部;右键单击)的标签,高亮显示MAXQ7665 EV Kit Led Demo-Debug。如果还没有设置,则右键单击,选择Set as Active Project (在屏幕上以粗体显示)。
再次右键单击,选择Options。在这里存储工程设置。注意:必须设置串口。选择JTAG。在COM Port下,如果您使用的不是COM1,则输入使用的串口。注意:必须使用COM#,而不能只是端口号。有些笔记本计算机并没有RS-232端口,但是有USB至RS-232转换器。
在Project菜单中,选择Rebuild All。如果正确定位了所有文件,消息框中将显示Errors: None以及Warnings: None。
完成了上面所述的步骤,并且没有错误后,在Project菜单中选择Debug。将应用代码下载到MAXQ7665评估板上。
一旦下载了应用程序文件,在“main”声明中启动调试器。在Debug菜单中,单击Go命令,LED将仿真流量信号。
>I (初始化调试引擎,按下回车键。)
>D (输入调试背景模式,按下回车键。)
>E (输入调试模式,按下回车键。)
>G (获得所有寄存器,按下回车键。)
如果MAXQ7665工作正常,它应该以图6中所示的寄存器映射进行响应。注意,寄存器开始是Module 0 Register 0,然后是Module 0 Register 1,依此类推。还需要注意,可以在一行上组合多条命令。例如,>IDEG会产生同样的结果。
图6. 如果MAXQ7665配置正确,寄存器映射应该以Module 0,Register 0开始。
从上面的寄存器映射中,Module 0和Index 0 M[00,00]的第一个寄存器是Port 0 Output Register (PO0)。该寄存器的上电复位值(POR)是0x3F,这是正确的。后面的两个寄存器是Port 1 M[01,00] 和Port 2 M[02,00]输出寄存器,其POR值是0xFF,也是正确的。
如果没有得到图6所示的寄存器映射,而是得到了图7所示的寄存器映射,那么按下并释放SW10,复位MAXQ7665。一旦进行这一操作后,重复IDEG命令,应该得到图6所示的寄存器映射。注意,图7所示的寄存器映射也是调试引擎可以接受的状态。
图7. 另一种Get寄存器映射
如果成功完成了前面的步骤,那么PC至微控制器JTAG至MAXQ7665调试引擎的通信链路工作正常。您应该能够关闭MTK的通信端口,关闭MTK应用程序。IAR Embedded Workbench可以下载代码,调试MAXQ7665评估板的应用程序代码。
图8. IDEG屏幕上的:02表明MAXQ7665密码锁定。
图9. 屏幕显示擦除MAXQ7665闪存的步骤。
如果在擦除闪存时,上面的步骤没有成功,则重复整个过程。去掉直流电源,按下复位开关,输入上面的命令。如果擦除成功,利用上面说明的IDEG命令,您应该能成功“Get”所有的寄存器。IAR Embedded Workbench应能够下载应用程序代码。
引言
MAXQ7665微控制器评估(EV)板包括串口至JTAG的连接,用于编程和调试。IAR Embedded Workbench通过JTAG和MAXQ7665进行连接,在调试期间使用。这一快速入门完善了评估板数据资料,记录了IAR工具箱的使用。IAR工作台简介
IAR Embedded Workbench是MAXQ7665微控制器和其他MAXQ®微控制器的集成开发环境。IAR工具箱包括文本编辑器、C语言编辑器、串行下载以及功能强大的调试器等。IAR工作台安装
通过IAR网站,在PC上安装IAR Embedded Workbench。在IAR主页上选择“Chip manufacturer”框。然后,从“Please select chip manufacturer”下拉框中选择Maxim/Dallas Semiconductor,单击OK按钮。出现新的页面,它包括超级链接。单击“IAR Embedded Workbench for Maxim MAXQ”,出现另一页面,它含有高亮显示的Download框。选择“30–day evaluation version”。出现一个产品注册页面,必须完成该页面才能开始下载Maxim MAXQ的IAR Embedded Workbench。一旦下载完成后,可在30天内使用这一评估版嵌入式工作台,以后则需要购买永久许可。安装了IAR工具箱后,安装中建立的MAXQ7665功能文件包括:
maxq7665_A64K.ddf maxq7665_A128K.ddf lnkmaxq7665_A64K.xcl lnkmaxq7665_A128K.xcl lnkmaxq7665_cbl_A64K.xcl maxq7665.hex maxq7665.sfr
maxq7665_A64K.menu maxq7665_A128K.menu maxq7665_cbl_A64K.menu
iomaxq766x.h
-
a) Config文件夹: b) Config/Devices文件夹: c) Include文件夹:
硬件安装
连接MAXQ7665评估板和交流适配器。采用RS-232串口电缆连接PC和评估板的DB–9连接器,它标有PC RS232 JTAG。IAR工作区
文件组织IAR结构需要一个工程工作区。这一工作区可以包括C语言和汇编源代码文件,以实现特定任务。可以分别对每一工程进行编译、调试和运行。下面的图1所示为MAXQ7665评估板工作区及其包括的工程。请参考IAR Embedded Workbench应用程序Help菜单中的IAR Embedded Workbench User's Guide,了解详细信息。查看详细图片
图1. MAXQ7665的这一工作区列出了软件中包含的工程。
设置IAR工程选项
必须设置工作区中每一工程的选项。如果加入了一个新工程,必须配置其选项。评估板中包含的实例工程已经配置好了各个选项。如果需要查看或者改变工程选项,右键单击Overview屏幕中高亮显示的工程,或者单击屏幕底部的工程标签,使工程“激活”。工程名称将以粗体显示,如图1所示。下一步,在Project菜单中,选择Options,出现如下的截屏显示。可以设置每一类别的选项,如图2所示。图2. 工程选项菜单使您能够配置每一工程的选项。
JTAG串口是实例工程唯一需要设置的选项。如果选择了JTAG,将出现图3所示的截屏显示。在这个例子中,我们使用COM1作为PC至MAXQ7665评估板的通信端口。如果需要使用不同的端口,将COM改为对应的串口。
图3. 通过JTAG接口来建立IAR工具箱和MAXQ7665之间的通信。
在建立MAXQ7665评估板新工程或者目标应用程序时,必须设置某些重要选项。使用特殊文件来建立MAXQ7665可选链接器和调试器配置。
IAR链接器选项
在Options窗口中,选择Linker一类和Config标签,如图4所示。在XCL文件名部分,选择“Override default”框,在配置目录中找到lnkmaxq7665_A64K.xcl链接器文件。图4. 在这一屏幕显示上配置工程的链接器选项。
IAR调试器选项
在设置调试器选项时,选择Debugger一类。选择“Device description file”中的“Use device description file” (图5),找到配置目录中的maxq7665_A64K.ddf文件。图5. 在这一屏幕显示上,您可以配置调试选项。
实例工程
评估板的快速启动CD包括几个实例工程。实例代码演示了MAXQ7665和评估板的功能。实例工程是可以编译、链接和运行的程序。用户可以建立工作区和工程,然后,复制实例工程代码部分,构建应用程序。下面是对实例工程的简要说明。ADC
该工程含有软件来建立MAXQ7665的模数转换器(ADC)。很容易修改ADC参数,如果采用中断,可以将这些参数传递给ADC_Convert_Int函数。当转换完成,数据准备好之后,将在中断服务例程中返回ADC数据。如果采用了ADC轮询,将ADC_Convert_Poll函数注释掉。当ADC已经完成了转换,数据准备好之后,将ADC转换值返回给函数。CAN
CAN工程含有软件来建立CAN控制器。实例工程设置全局CAN参数,然后,建立接收和发送消息中心。如果需要验证这一操作,可以将CAN控制器设置为autobaud (环回)模式,将CAN数据从发送消息中心传送至接收消息中心。DAC
该工程含有配置数模转换器(DAC)的函数,可从每个DAC产生连续正弦波输出。LED演示
LED演示工程设置并清除驱动LED的MAXQ7665端口比特。结果是使用LED简单流量信号仿真。温度转换
MAXQ7665含有内部温度传感器,评估板有两个外部温度感应器件。温度转换工程可以测量内部或者外部温度。定时器
定时器工程演示建立8位和16位脉冲宽度调制定时器,其频率和占空比可调。还提供使用定时器0的延时定时器,精度达到1ms。UART
UART工程支持评估板和RS-232串口的接口。MAXQ7665设置UART参数,控制串行数据交换。电压监测器
亮度调节监测器工程含有演示功能和使用亮度调节监视器探测威廉希尔官方网站 的软件。程序设置亮度调节中断的电压阈值;可以将中断服务例程断点移到待测电压所需的断点上。然后,用户按下评估板PC威廉希尔官方网站 板上的按键,触发所需的亮度调节中断。启动IAR Embedded Workbench
C:\Program Files\IAR Systems\Embedded Workbench 4.0\MAXQ\src\MAXQ7665 EV Kit目录,或者安装源文件的目录。选择工作区文件MAXQ7665 EV Kit.eww,单击open。这一选择打开了一个MAXQ7665评估板工作区,它含有几个工程。找到标有MAXQ7665 EV Kit LED Demo (窗口底部;右键单击)的标签,高亮显示MAXQ7665 EV Kit Led Demo-Debug。如果还没有设置,则右键单击,选择Set as Active Project (在屏幕上以粗体显示)。
再次右键单击,选择Options。在这里存储工程设置。注意:必须设置串口。选择JTAG。在COM Port下,如果您使用的不是COM1,则输入使用的串口。注意:必须使用COM#,而不能只是端口号。有些笔记本计算机并没有RS-232端口,但是有USB至RS-232转换器。
在Project菜单中,选择Rebuild All。如果正确定位了所有文件,消息框中将显示Errors: None以及Warnings: None。
完成了上面所述的步骤,并且没有错误后,在Project菜单中选择Debug。将应用代码下载到MAXQ7665评估板上。
一旦下载了应用程序文件,在“main”声明中启动调试器。在Debug菜单中,单击Go命令,LED将仿真流量信号。
基本问题排查
在尝试进行MAXQ7665评估板通信时,如果出现了错误消息,则需要关闭并重新打开IAR Embedded Workbench。如果重新启动IAR并没有解决问题,则尝试断开和评估板连接的RS-232电缆,再次上电,复位评估板。然后,重新连接RS-232电缆,加电,打开IAR工具箱。如果IAR还不能和MAXQ7665评估板建立通信,请参考下面的高级问题排查一节。高级问题排查
这一部分介绍安装并使用Maxim的微控制器工具包(MTK),以及通过RS-232连接来调试MAXQ7665评估板的步骤。如果IAR Embedded Workbench不能下载到MAXQ7665评估板上,则需要进行调试。需要的硬件和软件
- Windows® PC,具有RS-232端口。
- MAXQ7665评估板
- MAXQ7665评估板安装CD
- 交流到直流转换器,提供12V输出。
- DB–9至DB–9 RS-232电缆
软件安装
MTK目录中MAXQ7665评估板的安装CD提供MTK实用程序。请运行SETUPEX.exe文件,安装MTK应用程序。硬件安装
连接MAXQ7665评估板和交流电源适配器。采用RS-232串口电缆连接PC和评估板的DB–9连接器,该连接器标有PC RS232。启动MTK实用程序
一旦安装了应用程序,打开它,从下拉菜单中选择DS89C430。该器件用于PC的RS-232端口和MAXQ7665的JTAG连接之间的通信。设置MTK选项
选择Options,然后是Configure Serial Port。输入使用的串口,将速率设置为115,200波特率。同时选择“Toggle DTR on connect/disconnect”、“Save working directory on exit”和“Save COM Port Settings on Exit” (如果还没有进行这些设置)。连接至MAXQ7665评估板
选择Target,然后是“Open COMx at 115200 baud”,其中x是上面选项所配置的串口。按下键盘的回车键来测试RS-232接口。每次按下回车键时,MAXQ7665评估板应该以提示符“>”做出响应。如果这一步正常,表明评估板上的微控制器能够识别输入,准备好接收输入。如果这一步不正常,请参考下面的没有提示符一节。连接至MAXQ7665调试引擎
有一个简单的方法来确定MAXQ7665的状态:“Get”所有的内部寄存器。Get命令向调试引擎发送几个基本命令,使MAXQ7665发送其所有的内部寄存器。MTK目录中快速启动CD的protocol.txt文件中含有该命令。使用下面的命令来获得所有的寄存器。请确定使用了大写键(CAP),因为MTK区分大小写。圆括号中的是注释。>I (初始化调试引擎,按下回车键。)
>D (输入调试背景模式,按下回车键。)
>E (输入调试模式,按下回车键。)
>G (获得所有寄存器,按下回车键。)
如果MAXQ7665工作正常,它应该以图6中所示的寄存器映射进行响应。注意,寄存器开始是Module 0 Register 0,然后是Module 0 Register 1,依此类推。还需要注意,可以在一行上组合多条命令。例如,>IDEG会产生同样的结果。
图6. 如果MAXQ7665配置正确,寄存器映射应该以Module 0,Register 0开始。
从上面的寄存器映射中,Module 0和Index 0 M[00,00]的第一个寄存器是Port 0 Output Register (PO0)。该寄存器的上电复位值(POR)是0x3F,这是正确的。后面的两个寄存器是Port 1 M[01,00] 和Port 2 M[02,00]输出寄存器,其POR值是0xFF,也是正确的。
如果没有得到图6所示的寄存器映射,而是得到了图7所示的寄存器映射,那么按下并释放SW10,复位MAXQ7665。一旦进行这一操作后,重复IDEG命令,应该得到图6所示的寄存器映射。注意,图7所示的寄存器映射也是调试引擎可以接受的状态。
图7. 另一种Get寄存器映射
如果成功完成了前面的步骤,那么PC至微控制器JTAG至MAXQ7665调试引擎的通信链路工作正常。您应该能够关闭MTK的通信端口,关闭MTK应用程序。IAR Embedded Workbench可以下载代码,调试MAXQ7665评估板的应用程序代码。
调试引擎状态
调试引擎还返回其状态以及上面的数据。例如,第一个寄存器M[00,00]是003F:03。左面四个字符是寄存器的十六进制数值。不管寄存器长度如何,返回的数据总是16位宽。在这个例子中,有一个冒号和03。03是主机和调试引擎之间的握手信号。在这个例子中,03表示调试有效。下表列出了可能的状态。Status | Condition |
00 | Default Condition. Background mode or debug engine inactive (MAXQ7665 in reset) |
01 | Debug Idle. Ready to receive data from the host (ready for download and debug) |
02 | Debug Busy. Debug engine is busy without valid data (Password Lock State) |
03 | Debug Valid. Debug engine is busy with valid data (ready for download and debug) |
问题排查
如果上面的操作不起作用,或者得到的结果与这里显示的不同,那么需要进行以下操作。没有提示符
如果不能从MAXQ7665评估板得到提示符,从评估板断开RS-232电缆,拔下直流电源插头。然后,重新连接RS-232电缆和直流电源插头。如果需要,重复这一过程。同时还要确定Options菜单中的串口选择是您正在使用的端口。如果需要了解可用的串口,运行下面的应用程序。打开控制面板System application,选择Hardware标签。选择Device Manager和Ports (COM和LPT),查看可用的串口。无效数据–调试忙
有时IDEG返回的数据和下面的数据相似,例如调试引擎状态数据含有:02。这一数值通常表明锁定了MAXQ7665的密码,防止擦除闪存,防止IAR Embedded Workbench和MAXQ7665之间的任何通信。请参考图8。图8. IDEG屏幕上的:02表明MAXQ7665密码锁定。
擦除MAXQ7665闪存
可以利用MTK接口来擦除MAXQ7665闪存。图9详细介绍了擦除所需要的步骤。图9. 屏幕显示擦除MAXQ7665闪存的步骤。
>I | (Type I. Initialize the debug engine and press Enter.) |
$ | (Debug engine replies.) |
>L | (Type L. Enter the bootstrap loader and press Enter.) |
r R r | (Loader replies.) |
>00 | (Type 00. Press Enter.) |
0000:00 | (Loader replies.) |
>02 | (Type 02. Erase the flash and press Enter.) |
0000:02 | (Debug engine replies still busy if unsuccessful.) |
003E:03 | (Debug engine replies debug valid. Flash is erased.) |
如果在擦除闪存时,上面的步骤没有成功,则重复整个过程。去掉直流电源,按下复位开关,输入上面的命令。如果擦除成功,利用上面说明的IDEG命令,您应该能成功“Get”所有的寄存器。IAR Embedded Workbench应能够下载应用程序代码。
评论
查看更多