用PC機測試MAX7300/MAX7301的端口擴展功能
MAX7300和MAX7301是通用的28端口、通用輸入/輸出口(GPIO)處理器外設。通過(guò)高速SPI串行接口(MAX7301)或I²C串行接口 (MAX7300)進(jìn)行控制。該應用筆記介紹了一個(gè)實(shí)用程序,PC機可以通過(guò)它來(lái)控制MAX7301或MAX7300驅動(dòng)器。工程師們也可以用它熟悉驅動(dòng)器的寄存器和功能。此外,在設備的軟件完成之前,它可以用來(lái)直接控制MAX7301或MAX7300的寄存器,“驗證”實(shí)驗板原型。
本文引用地址:http://dyxdggzs.com/article/193524.htm系統要求:
一臺PC機,運行操作系統為Windows® 95、98、98SE、ME、NT、2000或XP;一個(gè)并行打印端口,配置為L(cháng)PT1或LPT2。
說(shuō)明
該軟件是Visual Basic 5應用程序,文件名為MAX7300.EXE,為保證正常運行,需要標準的Visual Basic運行環(huán)境庫文件MSVBVM50.DLL。該程序使用DriverLINX并口驅動(dòng)免費軟件DLPortIO.DLL,提供Win32 DLL的硬件I/O功能,這是標準的Visual Basic所不提供的。Windows NT
和2000用戶(hù)還要求DLPortIO.SYS內核模式驅動(dòng)。這些驅動(dòng)軟件的版權都歸Scientific Software Tools, Inc. (www.driverlinx.com)所有。DriverLINX是Scientific Software Tools, Inc.的注冊商標。
安裝
在Windows 95、98、98SE和ME平臺上安裝時(shí),下載MAX7300-01.EXE文件(812kB),這是一個(gè)WinZIP自動(dòng)解壓縮文件,其中包括ReadMe.txt、ReadMeSST.txt、MAX7301.EXE、DLPortIO.DLL和 MSVBVM50.DLL。默認的下載保存目錄為C:MAX7300。如果您的計算機已經(jīng)注冊有庫文件,則可以刪除MSVBVM50.DLL。
在Windows NT、2000或XP平臺安裝時(shí),下載MAX7300-NT.EXE文件(2.3MB),這也是一個(gè)WinZIP自動(dòng)解壓縮文件,其中包括ReadMe.txt、ReadMeSST.txt、MAX7300.EXE、PORT95NT.EXE和MSVBVM50.DLL。默認的下載保存目錄為C:MAX7300。PORT95NT.EXE是DriverLINX驅動(dòng)器的安裝程序,通過(guò)它可以安裝、注冊DLPortIO.DLL庫和DLPortIO.SYS驅動(dòng)器。PORT95NT.EXE可以在安裝后刪除。如果需要,Windows 95、98、98SE和ME用戶(hù)也可以使用這個(gè)安裝程序。
MAX7300或MAX7301與并口的連接
該程序利用八根并口打印輸出線(xiàn)中的三根,模擬SPI串行接口,另外兩根輸出線(xiàn)用來(lái)模擬I²C串行總線(xiàn)。并口控制輸入線(xiàn)用于讀取SPI數據、Isup2;C數據和中斷狀態(tài)??梢酝瑫r(shí)對多片MAX7301 (多達16片,菊花鏈連接)和/或多片MAX7300 (多達16個(gè),配置為不同的Isup2;C地址)進(jìn)行操作。軟件可以選擇LPT1或LPT2端口。該端口可以為標準方式、ECP或EPP方式。并口連接如圖1所示。

圖1. MAX7300和MAX7301與并口的連接
程序啟動(dòng)時(shí)打開(kāi)三個(gè)窗口,它們分別是主控窗口、I/O控制窗口和端口控制窗口。啟動(dòng)過(guò)程中寄存器設置映射為MAX7300和MAX7301的上電狀態(tài)。
主控窗口如下面的圖2所示。通過(guò)'Driver type'單選按鈕選擇軟件的傳送對象:MAX7301 (使用SPI連接)或MAX7300 (使用Isup2;C連接)。
圖2. 啟動(dòng)時(shí)的程序顯示
SPI模式下,軟件可以最多控制16個(gè)MAX7301驅動(dòng)器。假定各驅動(dòng)器都是級連的(即第一個(gè)MAX7301的DOUT引腳和第二個(gè)MAX7301的DIN引腳相連,第二個(gè)MAX7301的DOUT引腳和第三個(gè)MAX7301的DIN引腳相連,依此類(lèi)推)。MAX7301驅動(dòng)器的總數由'Number of Drivers'滑動(dòng)條設定,該值大于1時(shí),'Enable global driver write'和'Enable auto-increment'為可選項。如果清除'Enable global driver write'選擇,執行寫(xiě)命令時(shí),只對'Current Driver'滑動(dòng)條選定的MAX7301驅動(dòng)器進(jìn)行寫(xiě)操作,其它驅動(dòng)器只接收到空操作指令;如果選中'Enable global driver write'項,則所有的MAX7301都將接收同樣的數據。如果選擇'Enable auto-increment'項,每次寫(xiě)操作后當前驅動(dòng)器號碼自動(dòng)遞增。使得用戶(hù)可以對一串MAX7301驅動(dòng)器快速傳送數據。
在程序運行時(shí),可以通過(guò)'Port Connections and Help...'下的'Test Stream'工具測試SPI接口與并口的連接。'Test Stream'程序不斷地向MAX7301 (數量由'Number of Drivers'滑動(dòng)條設定)傳送空指令,能夠在不影響各寄存器內容的情況下驗證接口連接。
Isup2;C模式下,軟件可以最多控制16片MAX7300驅動(dòng)器。假定第一個(gè)驅動(dòng)器地址設為1000000x,其余的器件地址依次加1,最后一個(gè)地址為1001111x。例如,如果要對一個(gè)地址為1001111x的驅動(dòng)器進(jìn)行配置,只需設定'Number of Drivers'滑動(dòng)條為16,然后選擇'Current Driver'滑動(dòng)條的值為16,即可對1001111x地址進(jìn)行操作。Isup2;C模式的主窗口如圖3所示。
圖3. Isup2;C程序顯示
在程序運行時(shí),可以通過(guò)'Port Connections and Help...'下的'Test Stream'工具測試Isup2;
C接口與并口的連接。'Test Stream'程序不斷地向MAX7300 (數目由'Number of Drivers'滑動(dòng)條設定)傳送空指令,可以在不改變各寄存器內容的情況下驗證連接接口。
'Fast serial interface'選項框可以設定SPI和Isup2;C接口的串口速度。選中該項時(shí),串行接口全速運行,速度取決于機器特性,最高可達1M比特/秒;該項沒(méi)有被選上時(shí),速度最高只能達到500比特/秒。在長(cháng)距離電纜連接時(shí)低傳輸率是很有用的。
按下'Write'或'Read'按鈕時(shí),程序將與選中的驅動(dòng)器進(jìn)行通信。然而,程序會(huì )自動(dòng)對連接到并口第13引腳的中斷輸出端進(jìn)行監視。它的狀態(tài)顯示在主窗口,為“High”或“Low”。
選中'Automatic Update control'項時(shí),程序將不斷對28個(gè)端口輸入寄存器和中斷寄存器位進(jìn)行查詢(xún)。讀操作的速度取決于'Fast serial interface'的設置,可以是一秒鐘數次(高速),或幾秒鐘一次(低速)。注意:低速方式非常緩慢!'Reading driver x'滑動(dòng)條允許用戶(hù)設定自動(dòng)讀取的器件,不受'Current driver'控制驅動(dòng)器讀取操作的影響。
從主窗口中可以退出程序運行。在主窗口中按下Exit按鈕或按下Esc鍵將關(guān)閉所有三個(gè)窗口。在其它兩個(gè)窗口激活的情況下按下Esc鍵可以使用戶(hù)回到主窗口;因此,兩次按下Esc鍵可以迅速關(guān)閉該程序。在關(guān)閉前,程序將器件配置的最后一次設置保存到MAX7300.ini文件內,該文件與運行程序存放在同一目錄下。該操作對Windows的注冊表沒(méi)有任何影響。設置包括三個(gè)窗口的位置,主窗口的接口設置。如果文件MAX7300.ini不存在,它將新建一個(gè),否則,文件將被刷新。如需恢復程序的默認設置,或者,該文件已經(jīng)被破壞,只需將其刪除。
圖4和圖5是另外兩個(gè)窗口的視圖。
圖4. I/O配置窗口
圖5. 端口寄存器窗口
評論