本應用筆記介紹如何使用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的應用程序。
審核編輯:郭婷
-
驅動器
+關注
關注
53文章
8288瀏覽量
147140 -
嵌入式
+關注
關注
5095文章
19189瀏覽量
307957 -
編譯器
+關注
關注
1文章
1642瀏覽量
49317
發布評論請先 登錄
相關推薦
評論