用PC機(jī)測試MAX7300/MAX7301的端口擴(kuò)展功能
掃描二維碼
隨時(shí)隨地手機(jī)看文章
MAX7300和MAX7301是通用的28端口、通用輸入/輸出口(GPIO)處理器外設(shè)。通過高速SPI"串行接口(MAX7301)或I²C串行接口 (MAX7300)進(jìn)行控制。該應(yīng)用筆記介紹了一個(gè)實(shí)用程序,PC機(jī)可以通過它來控制MAX7301或MAX7300驅(qū)動(dòng)器。工程師們也可以用它熟悉驅(qū)動(dòng)器的寄存器和功能。此外,在設(shè)備的軟件完成之前,它可以用來直接控制MAX7301或MAX7300的寄存器,“驗(yàn)證”實(shí)驗(yàn)板原型。
系統(tǒng)要求:
一臺(tái)PC機(jī),運(yùn)行操作系統(tǒng)為Windows® 95、98、98SE、ME、NT、2000或XP;一個(gè)并行打印端口,配置為LPT1或LPT2。
說明
該軟件是Visual Basic 5應(yīng)用程序,文件名為MAX7300.EXE,為保證正常運(yùn)行,需要標(biāo)準(zhǔn)的Visual Basic運(yùn)行環(huán)境庫文件MSVBVM50.DLL。該程序使用DriverLINX"并口驅(qū)動(dòng)免費(fèi)軟件DLPortIO.DLL,提供Win32 DLL的硬件I/O功能,這是標(biāo)準(zhǔn)的Visual Basic所不提供的。Windows NT
和2000用戶還要求DLPortIO.SYS內(nèi)核模式驅(qū)動(dòng)。這些驅(qū)動(dòng)軟件的版權(quán)都?xì)wScientific Software Tools, Inc. (www.driverlinx.com)所有。DriverLINX是Scientific Software Tools, Inc.的注冊商標(biāo)。
安裝
在Windows 95、98、98SE和ME平臺(tái)上安裝時(shí),下載MAX7300-01.EXE文件(812kB),這是一個(gè)WinZIP自動(dòng)解壓縮文件,其中包括ReadMe.txt、ReadMeSST.txt、MAX7301.EXE、DLPortIO.DLL和 MSVBVM50.DLL。默認(rèn)的下載保存目錄為C:MAX7300。如果您的計(jì)算機(jī)已經(jīng)注冊有庫文件,則可以刪除MSVBVM50.DLL。
在Windows NT、2000或XP平臺(tái)安裝時(shí),下載MAX7300-NT.EXE文件(2.3MB),這也是一個(gè)WinZIP自動(dòng)解壓縮文件,其中包括ReadMe.txt、ReadMeSST.txt、MAX7300.EXE、PORT95NT.EXE和MSVBVM50.DLL。默認(rèn)的下載保存目錄為C:MAX7300。PORT95NT.EXE是DriverLINX驅(qū)動(dòng)器的安裝程序,通過它可以安裝、注冊DLPortIO.DLL庫和DLPortIO.SYS驅(qū)動(dòng)器。PORT95NT.EXE可以在安裝后刪除。如果需要,Windows 95、98、98SE和ME用戶也可以使用這個(gè)安裝程序。
MAX7300或MAX7301與并口的連接
該程序利用八根并口打印輸出線中的三根,模擬SPI串行接口,另外兩根輸出線用來模擬I²C串行總線。并口控制輸入線用于讀取SPI數(shù)據(jù)、Isup2;C數(shù)據(jù)和中斷狀態(tài)??梢酝瑫r(shí)對多片MAX7301 (多達(dá)16片,菊花鏈連接)和/或多片MAX7300 (多達(dá)16個(gè),配置為不同的Isup2;C地址)進(jìn)行操作。軟件可以選擇LPT1或LPT2端口。該端口可以為標(biāo)準(zhǔn)方式、ECP或EPP方式。并口連接如圖1所示。
圖1. MAX7300和MAX7301與并口的連接
程序啟動(dòng)時(shí)打開三個(gè)窗口,它們分別是主控窗口、I/O控制窗口和端口控制窗口。啟動(dòng)過程中寄存器設(shè)置映射為MAX7300和MAX7301的上電狀態(tài)。
主控窗口如下面的圖2所示。通過'Driver type'單選按鈕選擇軟件的傳送對象:MAX7301 (使用SPI連接)或MAX7300 (使用Isup2;C連接)。
圖2. 啟動(dòng)時(shí)的程序顯示
SPI模式下,軟件可以最多控制16個(gè)MAX7301驅(qū)動(dòng)器。假定各驅(qū)動(dòng)器都是級連的(即第一個(gè)MAX7301的DOUT引腳和第二個(gè)MAX7301的DIN引腳相連,第二個(gè)MAX7301的DOUT引腳和第三個(gè)MAX7301的DIN引腳相連,依此類推)。MAX7301驅(qū)動(dòng)器的總數(shù)由'Number of Drivers'滑動(dòng)條設(shè)定,該值大于1時(shí),'Enable global driver write'和'Enable auto-increment'為可選項(xiàng)。如果清除'Enable global driver write'選擇,執(zhí)行寫命令時(shí),只對'Current Driver'滑動(dòng)條選定的MAX7301驅(qū)動(dòng)器進(jìn)行寫操作,其它驅(qū)動(dòng)器只接收到空操作指令;如果選中'Enable global driver write'項(xiàng),則所有的MAX7301都將接收同樣的數(shù)據(jù)。如果選擇'Enable auto-increment'項(xiàng),每次寫操作后當(dāng)前驅(qū)動(dòng)器號碼自動(dòng)遞增。使得用戶可以對一串MAX7301驅(qū)動(dòng)器快速傳送數(shù)據(jù)。
在程序運(yùn)行時(shí),可以通過'Port Connections and Help...'下的'Test Stream'工具測試SPI接口與并口的連接。'Test Stream'程序不斷地向MAX7301 (數(shù)量由'Number of Drivers'滑動(dòng)條設(shè)定)傳送空指令,能夠在不影響各寄存器內(nèi)容的情況下驗(yàn)證接口連接。
Isup2;C模式下,軟件可以最多控制16片MAX7300驅(qū)動(dòng)器。假定第一個(gè)驅(qū)動(dòng)器地址設(shè)為1000000x,其余的器件地址依次加1,最后一個(gè)地址為1001111x。例如,如果要對一個(gè)地址為1001111x的驅(qū)動(dòng)器進(jìn)行配置,只需設(shè)定'Number of Drivers'滑動(dòng)條為16,然后選擇'Current Driver'滑動(dòng)條的值為16,即可對1001111x地址進(jìn)行操作。Isup2;C模式的主窗口如圖3所示。
圖3. Isup2;C程序顯示
在程序運(yùn)行時(shí),可以通過'Port Connections and Help...'下的'Test Stream'工具測試Isup2;
C接口與并口的連接。'Test Stream'程序不斷地向MAX7300 (數(shù)目由'Number of Drivers'滑動(dòng)條設(shè)定)傳送空指令,可以在不改變各寄存器內(nèi)容的情況下驗(yàn)證連接接口。
'Fast serial interface'選項(xiàng)框可以設(shè)定SPI和Isup2;C接口的串口速度。選中該項(xiàng)時(shí),串行接口全速運(yùn)行,速度取決于機(jī)器特性,最高可達(dá)1M比特/秒;該項(xiàng)沒有被選上時(shí),速度最高只能達(dá)到500比特/秒。在長距離電纜連接時(shí)低傳輸率是很有用的。
按下'Write'或'Read'按鈕時(shí),程序?qū)⑴c選中的驅(qū)動(dòng)器進(jìn)行通信。然而,程序會(huì)自動(dòng)對連接到并口第13引腳的中斷輸出端進(jìn)行監(jiān)視。它的狀態(tài)顯示在主窗口,為“High”或“Low”。
選中'Automatic Update control'項(xiàng)時(shí),程序?qū)⒉粩鄬?8個(gè)端口輸入寄存器和中斷寄存器位進(jìn)行查詢。讀操作的速度取決于'Fast serial interface'的設(shè)置,可以是一秒鐘數(shù)次(高速),或幾秒鐘一次(低速)。注意:低速方式非常緩慢!'Reading driver x'滑動(dòng)條允許用戶設(shè)定自動(dòng)讀取的器件,不受'Current driver'控制驅(qū)動(dòng)器讀取操作的影響。
從主窗口中可以退出程序運(yùn)行。在主窗口中按下Exit按鈕或按下Esc鍵將關(guān)閉所有三個(gè)窗口。在其它兩個(gè)窗口激活的情況下按下Esc鍵可以使用戶回到主窗口;因此,兩次按下Esc鍵可以迅速關(guān)閉該程序。在關(guān)閉前,程序?qū)⑵骷渲玫淖詈笠淮卧O(shè)置保存到MAX7300.ini文件內(nèi),該文件與運(yùn)行程序存放在同一目錄下。該操作對Windows的注冊表沒有任何影響。設(shè)置包括三個(gè)窗口的位置,主窗口的接口設(shè)置。如果文件MAX7300.ini不存在,它將新建一個(gè),否則,文件將被刷新。如需恢復(fù)程序的默認(rèn)設(shè)置,或者,該文件已經(jīng)被破壞,只需將其刪除。
圖4和圖5是另外兩個(gè)窗口的視圖。
圖4. I/O配置窗口
圖5. 端口寄存器窗口