本应用笔记介绍如何使用MAXQ2000微控制器评估(EV)板上的MAXQ串行驱动器库开发应用。MAXQ串行驱动器可用于MAXQ的IAR嵌入式工作台和Rowley Associates的MAXQ交叉工作台®,这是使用C语言和汇编语言的MAXQ应用的两个集成开发和调试环境。C语言示例代码演示了MAXQ串行驱动器的使用和限制,以及如何使用MAXQ串行驱动器实现RTS/CTS流控制。
MAXQ串行驱动器概述
MAXQ串行驱动器提供了一组C函数,使用户能够配置MAXQ UART进行串行通信。这些功能列在MAXQ2000评估板的源文件maxq_serial.h中。
MAXQ串行驱动器具有以下特性。
偶数、奇数和无奇偶校验。
独立的发送和接收内部缓冲区。这些缓冲区的大小是在编译时定义的。
非阻塞serial_write和serial_read例程。
一个 serial_isr() 函数,应由用户应用程序作为中断处理程序的一部分调用。它将奇偶校验计算为“每个配置”,并在串行线路上发送/接收数据。
支持应用程序级别的流控制。函数 serial_stopTx() 停止串行数据的传输,serial_restartTx() 重新启动串行传输。
MAXQ2000串行驱动器的源代码可
在此处
获得。通过修改一些配置参数,可以将驱动程序移植到其它MAXQ器件,如下所示。
maxq_config.h 包含特定于编译器的配置参数。修改文件中的以下行以适合您的设备和编译器: 以上两行指定驱动程序将针对IAR和MAXQ2000进行编译。要编译MAXQ的CrossWorks驱动程序,请按如下方式修改行:
// user configurable options here #define COMPILER_IAR #define DEVICE_MAXQ2000
// user configurable options here #define COMPILER_ROWLEY #define DEVICE_MAXQ2000
#define RX_RNG_SIZE 256 #define TX_RNG_SIZE 256
// specify which serial port you are using #define SERIAL_PORT0
#define XTAL_CLK 16000000 // 16,000,000Hz
硬件和软件要求
为了运行本应用笔记中提供的应用,需要MAXQ2000评估板、最小容量为5mA的+200V电源、带两个串行端口的PC(一个用于将应用下载到评估板上,另一个用于MAXQ应用与PC应用之间的通信)、直通串行电缆、MAXQ开发工具集(IAR嵌入式工作台或CrossWorks 1.0)。 以及 PC 上的 Java™ 运行时环境(包括 commApi 和 BlackBox 示例)。
硬件设置
MAXQ2000评估板应设置为与RTS/CTS流控制进行串行通信。跳线和 DIP 开关设置如下:
将开关 SW3 1-8 设置为关闭位置。
将开关 SW1 1、2、5 和 6 设置为关闭位置,将 SW3、4、7 和 8 设置为打开位置。
将开关 SW6、3 和 8 设置为打开位置,并将静止设置为关闭位置。
这些开关设置将MAXQ0评估板串行连接器的RTS、TXD0、RXD2000和CTS信号连接到微控制器,使SW4 DPST将微控制器的INT11信号拉至地。参见图1。
JU1: connect Pins 1 and 2 JU2: connect Pins 1 and 2 JU3: connect Pins 1 and 2 JU4: open JU5: closed JU6: closed JU7: closed JU8: closed JU9: closed JU10: open JU11: closed (The MAXQ2000 EV kit is powered by a JTAG interface board which is powered by a +5V power supply.)
连接MAXQ2000评估板和PC串行端口之间的串行电缆。
图1.MAXQ2000评估板的开关设置可实现与RTS/CTS流控的串行通信。
软件设置
下载演示软件。
安装开发工具集(IAR嵌入式工作台用于MAXQ,CrossWorks用于MAXQ)。
下载并安装 Java 运行时环境和 Java 通信 API。
在 Java 通信 API 发行版中运行 BlackBox 示例。如果这工作正常,那么您应该能够看到您的主机串行端口。
MAXQ串行驱动器入门
要开始使用开发工具,请查看两个应用笔记中的任何一个。关于MAXQ的Rowley CrossWorks,参见应用笔记3698:“Rowley CrossWorks和MAXQ2000评估板入门”,或者关于MAXQ的IAR嵌入式工作台,参见应用笔记3378:“IAR编译器和MAXQ2000评估板入门”。
在您的 PC 上执行 Java BlackBox 示例应用程序,并将其配置为 115200 波特、8 个数据位、1 个停止位和无奇偶校验。通过单击所选串行端口的“Xmt”复选框来启用 RTC/CTS 流控制。黑盒设置如图 2 所示。请注意,RTS 和 CTS 行为绿色,表示硬件流控制已关闭。
从之前下载的演示软件中,打开相应的项目 (.IAR的EWW和CrossWorks的.hzp)。编译应用并下载到MAXQ评估板。有关将应用程序下载到MAXQ的详细说明,请参见上述应用笔记。打开MAXQ评估板的电源,应该可以看到MAXQ的串行输出打印到BlackBox GUI上。在输入窗口中输入一些字符,并观察黑盒输出窗口中打印的字符相同。键控字符从PC传输到MAXQ评估板,然后回显到PC。MAXQ应用程序报告接收的字节数,该字节数应与发送字节数的BlackBox报告相匹配。
向MAXQ评估板发出停止发送字符的信号
单击黑盒 GUI 中的 RTS 文本。该事件向评估板发出停止发送字符的信号。请注意,黑盒中的打印停止。再次点击RTS文本,使MAXQ能够发送字符,并看到测试字符串继续更新。
向 PC 发出停止发送字符的信号
按下MAXQ评估板上的SW4开关。这表示PC(黑盒应用程序)停止发送字符。GUI 上的 CTS 文本应从绿色变为黑色。在黑盒应用程序中输入一些字符,并查看这些字符未回显。再次按下 SW4 开关,CTS 信号将变回绿色。之前键入的字符应回显。
图2.要在电脑上运行的黑盒示例应用程序。
应用概述
文件 sample_serial.c 包含应用程序的主要例程和中断服务例程 (ISR),用于处理串行中断和外部中断。固件执行以下操作:
serial_init() 初始化串行驱动程序。
serial_setparameters() 为 115200/8/1/N 配置串行驱动程序。您可以根据应用需求配置这些参数。
配置外部中断 10(Int10 连接到 RTS 线路)和 11(SW6 #3 打开)。
启用模块 1(外部中断)和模块 2(UART)的中断。
启用全局中断。
通过 serial_read() 和 serial_write() 循环从/写入串行端口。
中断服务例程处理 RTS/CTS 控制流。(按下SW4按钮可置位或取消置位评估板的RTS线路;PC的RTS线路停止/重新启动串行传输。
局限性和发展问题
MAXQ串行驱动器不支持流量控制(软件/硬件)。应用程序负责实现流控制。本应用笔记中提供的示例应用描述了硬件(RTS/CTS)流控制。
提供的MAXQ串行驱动器针对MAXQ2000和16MHz晶体配置进行编译。改变晶体频率将改变驱动器的波特率计算。
MAXQ串行驱动器内部发送和接收缓冲器的大小在编译时固定为256字节。
结论
IAR和Rowley Associates提供的MAXQ编译器以及Maxim提供的库允许用C语言编写的应用访问MAXQ器件的电源和功能。MAXQ系列将使用户能够部署使用MAXQ UART的应用程序。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !