摘要: MAXQ串行驱动程序允许开发利用MAXQ UART外设的应用程序。串行驱动程序可用于“IAR Embedded workbench for MAXQ”和“Cross Works for MAXQ”这两个集成开发环境,用于使用C语言和汇编语言开发应用程序。
应用笔记演示了如何配置MAXQ2000微控制器EV套件和MAXQ串行通信开发环境。C语言的示例代码演示了MAXQ串行驱动程序的使用和限制,以及如何使用MAXQ串行驱动程序实现RTS/CTS流量控制。
本应用笔记描述了如何使用MAXQ2000微控制器评估(EV)套件上的MAXQ串行驱动程序库开发应用程序。MAXQ串行驱动程序可用于IAR Embedded Workbench for MAXQ和Rowley Associates的CrossWorks for MAXQ,这是两种使用C语言和汇编语言的MAXQ应用程序集成开发和调试环境。C中的示例代码演示了MAXQ串行驱动程序的使用和限制,以及如何使用MAXQ串行驱动程序实现RTS/CTS流量控制。
MAXQ串行驱动程序提供了一组C函数,使用户能够配置MAXQ UART进行串行通信。这些函数列在源文件中,maxq_serial.h,在MAXQ2000 EV套件中提供。
MAXQ串行驱动程序提供以下特性。
偶,奇,非奇偶。
分离发送和接收内部缓冲区。这些缓冲区的大小在编译时定义。
非阻塞serial_write和serial_read例程。
一个serial_isr 函数,该函数应作为中断处理程序的一部分被用户应用程序调用。它按“每个配置”计算奇偶校验,并在串行线上发送/接收数据。
在应用程序级别支持流控制。这个函数serial_stopTx 停止串行数据的传输,和serial_restartTx 重启串口传输。
MAXQ2000串行驱动程序的源代码可在这里获得。通过修改以下几个配置参数,可以将驱动程序移植到其他MAXQ设备。
maxq_config.h包含编译器特定的配置参数。修改文件中的以下行以适应您的设备和编译器:
//用户可配置的选项 #define COMPILER_IAR #define DEVICE_MAXQ2000
以上两行指定将为IAR和MAXQ2000编译驱动程序。为了编译MAXQ的CrossWorks驱动程序,修改以下行:
//用户可配置的选项 #define COMPILER_ROWLEY #define DEVICE_MAXQ2000
上面的两行代码允许用户为IAR或CrossWorks工具链包含特定于设备的文件。maxq_serial.h包含驱动特定的配置参数:驱动缓冲区大小,串口编号,晶体频率在Hz。更改以下代码以更改驱动程序缓冲区大小:
#define RX_RNG_SIZE 256 #define TX_RNG_SIZE 256
修改以下代码,指定需要配置驱动程序的串口(SERIAL_PORT0表示串口0,SERIAL_PORT1表示串口1):
//指定使用的串行端口 #define SERIAL_PORT0
修改以下代码以更改EV套件使用的水晶时钟。MAXQ2000 EV套件使用16MHz晶体:
#define XTAL_CLK 16000000 // 16,000,000Hz
运行应用程序提供在这个应用程序中,您需要一个MAXQ2000评估板,+ 5 v电源最小200 ma的能力,电脑有两个串行端口(一个用于downlo ng应用到评估板,和其他MAXQ应用程序之间的通信和计算机应用程序),直通串行电缆,MAXQ开发工具集(IAR嵌入式工作台或CrossWorks 1.0),在你的电脑和Java 运行时环境(包括commApi和黑箱的例子)。
MAXQ2000 EV套件应设置为与RTS/CTS流量控制串行通信。跳线和拨码开关设置如下:
设置交换机sw31 1-8为从的位置。
设置交换机SW1 1、2、5、6的位置从位置和SW3、4、7、8到在的位置。
设置交换机SW6、3、8的位置在位置,休息到从的位置。
这些开关设置将MAXQ2000 EV套件串行连接器的RTS, TXD0, RXD0和CTS信号连接到微控制器,并使SW4 DPST将微控制器的INT11信号拉到地。看到图1.
JU1:连接插脚1和2 JU2:连接插脚1和2 JU3:连接插脚1和2 JU4:开放JU5:关闭JU6:关闭JU7:关闭JU8:关闭JU9:关闭JU10:开放JU11:关闭(MAXQ2000评估板是由一个JTAG接口板是由一个+ 5 v电源。)
连接MAXQ2000 EV套件和PC串口之间的串口线。
图1所示。MAXQ2000 EV套件的开关设置可以与RTS/CTS流量控制进行串行通信。
下载演示软件。
安装开发工具集(用于MAXQ的IAR嵌入式工作台,用于MAXQ的CrossWorks)。
下载并安装Java运行时环境和Java通信API。
在Java通信API发行版中运行BlackBox示例。如果这正常工作,那么您应该能够看到您的主机串行端口。
要开始使用开发工具,请查看两个应用说明中的任何一个。对于用于MAXQ的Rowley CrossWorks,请参阅应用说明3698,“开始使用Rowley CrossWorks和MAXQ2000评估工具包”,或者用于MAXQ的IAR嵌入式工作台,请参阅应用说明3378,“开始使用IAR编译器和MAXQ2000评估工具包”。
在PC上执行Java BlackBox示例应用程序,并将其配置为115200波特、8个数据位、1个停止位和无奇偶校验。通过单击您选择的串口的“Xmt”复选框,启用RTC/CTS流量控制。BlackBox的设置见图2. 注意,RTS和CTS线是绿色的,表示硬件流控制处于关闭状态。
从前面下载的演示软件中,打开相应的项目(。IAR为EWW, CrossWorks为。hzp)。编译应用程序并将其下载到MAXQ EV套件中。有关将长应用程序下载到MAXQ的详细说明,请参阅上面提到的应用程序说明。打开MAXQ EV套件的电源,您应该看到MAXQ的串行输出打印到BlackBox GUI上。在输入窗口中输入一些字符,并观察在BlackBox输出窗口中打印相同的字符。关键字符从PC传输到MAXQ EV套件,并依次响应回PC。MAXQ应用程序报告接收到的字节数,它应该与BlackBox报告发送的字节数相匹配。
点击BlackBox GUI中的RTS文本。此事件向EV套件发出停止传输字符的信号。注意,黑盒中的打印停止了。再次单击RTS文本以启用MAXQ发送字符,并看到测试字符串继续更新。
按下MAXQ EV套件上的SW4开关。这向PC (BlackBox应用程序)发出停止发送字符的信号。GUI上的CTS文本应该从绿色变为黑色。在BlackBox应用程序中输入一些字符,看到这些字符没有回显。再次按下SW4开关,CTS信号变回绿色。之前输入的字符应该回显。
图2。要在PC上运行的BlackBox示例应用程序。
该文件sample_serial.c包含应用程序的主例程和中断服务例程(ISR),用于服务串行中断和外部中断。固件的功能如下:
serial_init 初始化串口驱动程序。
serial_setparameters 为115200/8/1/N配置串口驱动。您可以根据应用程序的需要配置这些参数。
配置外部中断10 (Int10连接到RTS线路)和11 (SW6 #3是ON)。
为模块1(外部中断)和模块2 (UART)启用中断。
启用全局中断。
通过循环从串行端口读写serial_read 和serial_write().
中断服务程序处理RTS/CTS控制流。(按SW4按钮从EV套件中确定或取消RTS线路;来自PC的RTS线停止/重新启动串行传输。)
MAXQ串行驱动程序不支持流量控制(软件/硬件)。实现流控制是应用程序的责任。本应用程序说明中提供的示例应用程序描述了硬件(RTS/CTS)流控制。
提供的MAXQ串行驱动程序是为MAXQ2000和16MHz晶体配置编译的。改变晶体频率将改变驱动的波特率计算。
MAXQ串行驱动程序内部发送和接收缓冲区的大小在编译时固定为256字节。
由IAR和Rowley Associates提供的MAXQ编译器和Maxim提供的库允许用C编写的应用程序访问MAXQ设备的功能和功能。MAXQ系列将使用户能够部署使用MAXQ UART的应用程序。
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308