Rowley CrossWorks和MAXQ2000评估板入

摘要:maxq2000是功能强大的低成本、低功耗微控制器,具备支持多种应用系统的丰富外设。rowley associates提供了强大的maxq开发环境crossworks,在该工具的支持下,可以用c语言编写复杂应用程序并进行调试。本应用笔记说明了如何设置maxq2000评估板以及crossworks工具的使用入门。作为应用实例,利用lcd显示一个简单计数器,以演示maxq2000评估板和crossworks的功能。
概述 maxq微控制器开发平台得到rowley associates的crossworks编程工具的支持。本应用笔记说明怎样使用crossworks v.1.0和maxq2000评估板来创建、构建和调试面向maxq平台的c应用程序。这些说明对以后的crossworks版本仍然适用。maxq2000微控制器的特性会在下面的“设置”部分进行说明。 设置maxq2000评估板 写代码前,必须先连接maxq2000评估板。
评估板包括3块电路板,其中一块带有小型lcd屏。图1为连接有lcd子板的最大电路板,这就是实际的maxq2000评估板,稍后我们将进行讨论。将lcd连接到maxq2000评估板(见图1)上标号为j3的接头上。
图1. 安装了lcd板的maxq2000评估板
maxq2000加载器和调试引擎使用jtag协议进行通信。因为实际上没有用于个人计算机的商业、通用jtag适配器,所以dallas semiconductor提供了一个串口-jtag转换电路板,即第三块电路板。使用评估板带的小型10芯电缆,将maxq2000评估板上标号为j4的接头与jtag板上标号为p2的接头连接。见图2。注意,连接器红色一侧对应两个板上的引脚1和2。
图2. maxq2000评估板与jtag板连接
maxq2000评估板上应该有3个跳线。连接头ju1的引脚1和2应使用跳线相连。同样,ju2的引脚1和2,以及ju3的引脚1和2也应使用跳线相连。另外,确保高频晶振安装在y1上(靠近电路板上的微控制器)。本应用笔记的演示代码假定采用16mhz晶振,评估板上安装了该晶振。jtag电路板应该也在jh1、jh2和jh3接头上安装了3个跳线。
该设置还需要一个中心为正的5v ±5%直流电源。关于电源要求的更多信息请参考maxq2000评估板文档。将电源连接到jtag板的电源插孔j2上。
最后,将pc串口与jtag板相连。使用常规的9芯直通串口电缆,将计算机的一个串口与jtag板的串口相连。注意:不要连接到maxq2000评估板上的串口。图3所示为正确连接。
图3. 串口电缆与jtag板的正确连接
现在可以开始使用crossworks工具了。 在crossworks中创建maxq2000工程 rowley associates为maxq提供全功能crossworks (30天评估许可),可以从www.rowley.co.uk/maxq/index.htm下载。按照提示安装,安装位置和其它选项选择缺省值。注意,rowley associates的maxq crossworks目前只有基于windows平台的版本。需要发电子邮件给rowley associates,索取30天产品激活密钥,才能继续安装。遵循rowley associates网站“支持” (support)栏的指导说明:评估crossworks (evaluating crossworks)。
安装完成后,按下列操作运行maxq crossworks,从开始菜单起,依次选择rowley associates limited,然后crossworks maxq 1.0,最后crossstudio。主窗口打开后会显示crossworks的功能概要。
创建工程时,首先选择file,然后是new,再选择new project。在出现的对话框中,从模板中选择c executable,输入新工程的名称和位置,点击ok (见图4)。
图4. 新工程选项对话窗口
在接下来的工程设置对话框(见图5)中,确认target processor选项为maxq2000。其它设置可以保留缺省值。点击finish产生新的maxq2000工程。
图5. 新工程设置对话窗口
随后,需要输入足够的代码,让maxq2000评估板做一些有趣的事情。如果工程管理器窗口没有打开,选择view,然后选择project explorer打开它。现在可以在工程管理器窗口内双击打开main.c文件。输入下列代码(先将main.c原来的代码删除)。 #include void main(void) { int i = 0; int j = 0; int k = 1; lcra = 0x03e0; // set lcd configuration lcfg = 0xf3; // set up all segments as outputs, normal operation // mode, and enable display. while (1) { for (i = 0; i < 500; i++) { for (j = 0; j < 500; j++) { // delay loop } } k = (k <= 10000) lcd4 = 0x40; else lcd4 = 0; lcd3 = getlcddigit((value / 1000) % 10); lcd2 = getlcddigit((value / 100) % 10); lcd1 = getlcddigit((value / 10) % 10); lcd0 = getlcddigit((value) % 10); return 0; } 去抖按钮输入 按钮sw4和sw5是本应用程序的另外两个人机交互元件,分别通过dip开关部件sw6与端口引脚p5.2和p7.1相连。(reset开关不需要编程支持,它直接与maxq2000低电平有效复位引脚连接)。
所有maxq2000端口引脚(对应jtag 接口的p4.0到p4.3除外)的上电缺省模式都为输入模式,端口引脚和vddio之间具有内部弱上拉。sw4和sw5开关的连接方式是当按下时将端口引脚拉到地,因此端口引脚已经是我们需要的配置方式了。端口引脚状态可以非常简单地通过检查端口引脚输入位(sw4为pi5.2,sw5为pi7.1)来获得;位值为0时表示按钮按下,为1时表示按钮松开。
然而,因为这些开关是机械结构的,所以单次按下操作可能造成多次0到1的转换。为避免这种情况发生,可以使用已有的主循环和延迟作为功能模块,实现一些简单的去抖操作。 while(1) { for (i = 0; i 19999) { counter = 0; } if (counter 0) && ((pi5 & 0x04) == 0x04)) { debounce1--; } if ((debounce2 > 0) && ((pi7 & 0x02) == 0x02)) { debounce2--; } } 当开关由高变低时,设置一个去抖计数器。开关的高状态必须保持20个主计数器计数周期,才会接受下一次高向低的转换。去抖计数器除提供开关去抖功能外,还保证了按钮一直按下时不会重复功能操作;开关必须松开以重新按下。 使用crossworks调试器 因程序已经在maxq2000上运行,我们可以检查crossworks调试系统的功能。向maxq2000加载代码的jtag接口还支持许多硬件调试功能。包括以下一些示例: 指令单步执行 执行地址断点(可以同时有4个有效断点) 直接读写寄存器 代码和栈存储器浏览 数据存储器浏览和直接编辑 maxq2000 (以及其它maxq微控制器)在底层支持这些调试性能,可以进行在系统调试,而几乎不会对提供给应用程序的处理器资源产生任何影响。采用了完成该功能的专用jtag接口,与主机系统通信就不必再使用其它接口(如maxq2000上的uart口)。另外,断点机制完全在后台运行,只要调试器不停止maxq2000,它将一直全速运行。在maxq2000运行时,甚至可以加入、删除或修改断点,完全是后台方式。
crossworks使用这些硬件调试功能提供c和汇编级源代码调试,具有完备的调试功能,如设置断点、观察变量和寄存器,以及存储器浏览和编辑模式。要进行程序调试,首先选择build,接着选择菜单中的build and debug。将进行应用程序编译、下载到maxq2000评估板,最终在main()函数(见图7)内停止运行。
图7. crossworks调试模式
在图7中可看到crossworks调试器的多项功能。 页面左边有一个黄色箭头表示当前的执行位置。所有可执行位置(不包括注释、空白区和一些括号)由左边的蓝色三角形示出。 局部变量和它们的值也在应用代码的右侧示出。这些值可通过点击数值和输入新值来进行编辑。 屏幕最下方的maxq serial to jtag标记右边的红灯表示应用程序停止。此时,有多种选择来继续执行。 step into (f11)执行一行,可以单步执行代码。如果该行含有函数调用,将单步进入该函数,转到该函数的开始位置。 step over (f10)也是执行一行,如果该行不包括函数调用的话。如果有函数调用,则连续执行该函数(执行该函数,而不是跳过它),并在该函数调用的下一行停止。 step out (shift+f11)只能在某一函数(不是最上层函数main())内使用。该功能将连续执行完该函数的其余部分,停在调用该函数行的下一行。 run to cursor (control+f10)执行到光标所在位置。光标必须处在可执行代码行上,才能使用该功能。 也可以选择go (f5),以正常速率运行程序。这时,可正常运行而脱离调试控制。程序运行时,底部的maxq serial to jtag标志旁的指示灯为绿色,指示应用程序在自由运行,但是必要时调试器可以中断并停止程序运行。有两种主要方法来暂停应用程序运行和重新进行调试控制。 break命令(control+.)将使应用程序立即停止运行,无论当时处在什么位置。 左键单击任何可执行代码行的蓝色三角标记,可在应用程序的相应位置设置断点。这样蓝色三角形会变成红色圆圈。应用程序运行到断点后会停止运行,并重新进入调试模式。程序停止或运行时可以设置或清除多达4个断点。(注意,因为不同的步进调试功能占用一个断点,如果采用单步调试模式,只能设置3个断点)。 最后,选择stop (shift+f5)可终止调试过程,使应用程序恢复自由运行。
在调试模式下,有3种不同方法查看应用程序: li>源代码模式(control+t, s)仅以c代码形式显示程序。 汇编模式(control+t, a)以汇编语言方式显示。单步执行和断点功能可以用于单个汇编行。 交错模式(control+t, i) (见图8)在同一个窗口内同时显示c和汇编代码。
图8. 在交互模式下进行调试 使用寄存器窗口 应用程序在调试模式下停止运行时,可以查看并直接编辑maxq2000的寄存器(见图9)。要打开该显示窗口,选择debug,再选择菜单中的debug windows和registers (1,2,3,4)。可快速浏览4个不同寄存器窗口;通过点击左上部的组(groups)图标,可以配置窗口以显示不同组的寄存器。
图9. 寄存器窗口 使用call stack (堆栈使用)窗口 另一个调试窗口显示了应用程序当前的堆栈使用情况(见图10)。该窗口列出了到达代码当前执行点的所有调用函数。当前正在执行的函数显示在列表最后,调用当前函数的上一个函数显示在上一行。依次类推,一直按这一显示模式进行显示,最后是main()显示在第一行。要打开此窗口,选择debug,再选择debug windows,最后选择call stack,或者按下control+alt+s。
图10. call stack窗口 使用变量和观察窗口 debug和debug windows菜单中还提供其它调试窗口。locals和globals窗口分别显示局部变量(当前函数或显示范围内)值和全局变量值。局部变量显示窗口见上面图7。还有一个watch窗口,不仅可以用来显示变量值,而且可以显示任意c表达式的值(见图11)。然而,这些表达式中不能有maxq2000寄存器。可以定义4个watch窗口,每个都有独自的变量和表达式列表。
图11. 观察(watch)窗口 查看代码和数据存储器 存储器窗口(选择debug,再选择debug windows,最后选择memory (1,2,3,4))可以进行配置,以显示任意代码段和数据存储器的当前值。这些值在每步执行后或者停在断点处时都将更新(见图12)。另外,可直接点击数据存储器值并输入新值进行编辑。
图12. 数据存储器窗口 支持选项 maxq平台提供多种支持选项。dallas semiconductor开发者管理着一个在线讨论论坛 (english only),回答用户提出的问题。该论坛也是开发者的新闻发布窗口,它包含最新的可用工具信息和其它感兴趣的问题。
对不适合公开讨论的问题,dallas semiconductor工程师们提供两个email地址。 micro.software@dalsemi.com (english only)由软件工程师管理,他们可以帮助解决maxq微控制器的编程问题,对使用如rowley associates'的crossworks等软件工具提供帮助。 micro.support@dalsemi.com (english only)由应用工程师管理,他们可以协助解决电路中使用maxq微控制器碰到的硬件和设计问题。 为获取通用新闻和信息,以及了解maxq2000、maxq平台和未来maxq器件的基本信息,请参考maxq主页。 故障排除 使用任何新器件时都会碰到一些常见问题。通过检查本文档前半部分的操作说明,许多问题可以迎刃而解(如电路板连接和工程配置)。下面是另外一些常见问题和解决方法。
problem possible solution
when i compile my application, i get an undeclared identifier error each place i use a maxq2000 register. make sure you have the line
#include
at the start of your application.
when i select connect maxq serial to jtag, i get a device is not responding error. make sure: that both boards are connected and powered up; that the jtag cable connects with the red wire going to pin 1 on both sides; and that jumpers p2 (on the serial-to-jtag board) and ju11 (on the maxq2000 board) are both closed.
when i select connect maxq serial to jtag, i get a cannot open serial link error. make sure no other software is using the com port you have selected. often, pda software will own the serial port from the time you boot your computer. you can either choose a different com port, or turn off your pda software.
the lcd segments are scrambled when i run the demo application. make sure that the lcd daughterboard is hanging off the top side of the maxq2000 evaluation kit, not in the position where it hangs downward over the center of the board.
结论 maxq2000是功能强大的低成本、低功耗微控制器,具备支持多种应用系统的丰富外设。在rowley associates提供的maxq开发环境crossworks的支持下,可以用c语言编写复杂应用程序,并借助这个强大的工具进行调试。这样,可快速向市场推出高质量的产品。

我国电子信息产业企稳回升趋势基本明朗
PCB布局八卦阵分析思路
如何看待我国芯片自主化?
基于3AX81型三极管实现光控停电报警器电路
机器学习的100天作战计划与教程
Rowley CrossWorks和MAXQ2000评估板入
深度解析沃尔沃S60底盘
同步检波器助力精密低电平测量
油烟克星 烹饪无忧 四季沐歌背吸式油烟机全面评测
游戏手柄控制电路
简述网关的作用与设计
美国有一种新型的5G,而AT&T是第一个拥有这种5G的国家
3G手机补贴发展可行性分析
振动监测系统在船舶辅机设备的应用
百度南渡 人工智能护航泉州水务的产业智能化征程
将古代地图转换成卫星图像的人工智能
平面电视设计中的灵巧集成技术介绍与应用
华为荣耀9与小米6对比评测:高颜值高性能,荣耀9和小米6哪个值得入手?
2021年第一季度,全球半导体市场涨价潮已开启
宜百利教你冬季三大家用电器的保养秘诀