应用笔记 2852

用PC机测试MAX7300/MAX7301的端口扩展功能


摘要 : 该应用笔记介绍了一个可以免费下载的PC程序,用于评估MAX7300和MAX7301 GPIO (扩展口)的功能。

MAX7300和MAX7301是通用的28端口、通用输入/输出口(GPIO)处理器外设。通过高速SPI™ (MAX7301)串行接口或I²C串行接口 (MAX7300)进行控制。该应用笔记介绍了一个实用程序,PC机可以通过它来控制MAX7301或MAX7300驱动器。工程师们也可以用它熟悉驱动器的寄存器和功能。此外,在设备的软件完成之前,它可以用来直接控制MAX7301或MAX7300的寄存器,“验证”实验板原型。

系统要求

一台PC机,运行操作系统为Windows® 95、98、98SE、ME、NT、2000或XP;一个并行打印端口,配置为LPT1或LPT2。

说明

该软件是Visual Basic 5应用程序,文件名为MAX7300.EXE,为保证正常运行,需要标准的Visual Basic运行环境库文件MSVBVM50.DLL。该程序使用DriverLINX™并口驱动免费软件DLPortIO.DLL,提供Win32 DLL的硬件I/O功能,这是标准的Visual Basic所不提供的。Windows NT和2000用户还要求DLPortIO.SYS内核模式驱动。这些驱动软件的版权都归Scientific Software Tools, Inc. (www.driverlinx.com)所有。DriverLINX是Scientific Software Tools, Inc.的注册商标。

安装

在Windows 95、98、98SE和ME平台上安装时,下载MAX7300-01.EXE文件(812kB),这是一个WinZIP自动解压缩文件,其中包括ReadMe.txt、ReadMeSST.txt、MAX7301.EXE、DLPortIO.DLL和MSVBVM50.DLL。默认的下载保存目录为C:\MAX7300。如果您的计算机已经注册有库文件,则可以删除MSVBVM50.DLL。

在Windows NT、2000或XP平台安装时,下载MAX7300-NT.EXE文件(2.3MB),这也是一个WinZIP自动解压缩文件,其中包括ReadMe.txt、ReadMeSST.txt、MAX7300.EXE、PORT95NT.EXE和MSVBVM50.DLL。默认的下载保存目录为C:\MAX7300。PORT95NT.EXE是DriverLINX驱动器的安装程序,通过它可以安装、注册DLPortIO.DLL库和DLPortIO.SYS驱动器。PORT95NT.EXE可以在安装后删除。如果需要,Windows 95、98、98SE和ME用户也可以使用这个安装程序。

MAX7300或MAX7301与并口的连接

该程序利用八根并口打印输出线中的三根,模拟SPI串行接口,另外两根输出线用来模拟I²C串行总线。并口控制输入线用于读取SPI数据、I²C数据和中断状态。可以同时对多片MAX7301 (多达16片,菊花链连接)和/或多片MAX7300 (多达16个,配置为不同的I²C地址)进行操作。软件可以选择LPT1或LPT2端口。该端口可以为标准方式、ECP或EPP方式。并口连接如图1所示。

图1. MAX7300和MAX7301与并口的连接
图1. MAX7300和MAX7301与并口的连接

程序启动时打开三个窗口,它们分别是主控窗口、I/O控制窗口和端口控制窗口。启动过程中寄存器设置映射为MAX7300和MAX7301的上电状态。

主控窗口如下面的图2所示。通过'Driver type'单选按钮选择软件的传送对象:MAX7301 (使用SPI连接)或MAX7300 (使用I²C连接)。

图2. 启动时的程序显示
图2. 启动时的程序显示

SPI模式下,软件可以最多控制16个MAX7301驱动器。假定各驱动器都是级连的(即第一个MAX7301的DOUT引脚和第二个MAX7301的DIN引脚相连,第二个MAX7301的DOUT引脚和第三个MAX7301的DIN引脚相连,依此类推)。MAX7301驱动器的总数由'Number of Drivers'滑动条设定,该值大于1时,'Enable global driver write'和'Enable auto-increment'为可选项。如果清除'Enable global driver write'选择,执行写命令时,只对'Current Driver'滑动条选定的MAX7301驱动器进行写操作,其它驱动器只接收到空操作指令;如果选中'Enable global driver write'项,则所有的MAX7301都将接收同样的数据。如果选择'Enable auto-increment'项,每次写操作后当前驱动器号码自动递增。使得用户可以对一串MAX7301驱动器快速传送数据。

在程序运行时,可以通过'Port Connections and Help...'下的'Test Stream'工具测试SPI接口与并口的连接。'Test Stream'程序不断地向MAX7301 (数量由'Number of Drivers'滑动条设定)传送空指令,能够在不影响各寄存器内容的情况下验证接口连接。

I²C模式下,软件可以最多控制16片MAX7300驱动器。假定第一个驱动器地址设为1000000x,其余的器件地址依次加1,最后一个地址为1001111x。例如,如果要对一个地址为1001111x的驱动器进行配置,只需设定'Number of Drivers'滑动条为16,然后选择'Current Driver'滑动条的值为16,即可对1001111x地址进行操作。I²C模式的主窗口如图3所示。

图3. I2C程序显示
图3. I²C程序显示

在程序运行时,可以通过'Port Connections and Help...'下的'Test Stream'工具测试I²C接口与并口的连接。'Test Stream'程序不断地向MAX7300 (数目由'Number of Drivers'滑动条设定)传送空指令,可以在不改变各寄存器内容的情况下验证连接接口。

'Fast serial interface'选项框可以设定SPI和I²C接口的串口速度。选中该项时,串行接口全速运行,速度取决于机器特性,最高可达1M比特/秒;该项没有被选上时,速度最高只能达到500比特/秒。在长距离电缆连接时低传输率是很有用的。

按下'Write'或'Read'按钮时,程序将与选中的驱动器进行通信。然而,程序会自动对连接到并口第13引脚的中断输出端进行监视。它的状态显示在主窗口,为“High”或“Low”。

选中'Automatic Update control'项时,程序将不断对28个端口输入寄存器和中断寄存器位进行查询。读操作的速度取决于'Fast serial interface'的设置,可以是一秒钟数次(高速),或几秒钟一次(低速)。注意:低速方式非常缓慢! 'Reading driver x'滑动条允许用户设定自动读取的器件,不受'Current driver'控制驱动器读取操作的影响。

从主窗口中可以退出程序运行。在主窗口中按下Exit按钮或按下Esc键将关闭所有三个窗口。在其它两个窗口激活的情况下按下Esc键可以使用户回到主窗口;因此,两次按下Esc键可以迅速关闭该程序。在关闭前,程序将器件配置的最后一次设置保存到MAX7300.ini文件内,该文件与运行程序存放在同一目录下。该操作对Windows的注册表没有任何影响。设置包括三个窗口的位置,主窗口的接口设置。如果文件MAX7300.ini不存在,它将新建一个,否则,文件将被刷新。如需恢复程序的默认设置,或者,该文件已经被破坏,只需将其删除。

图4图5是另外两个窗口的视图。

图4. I/O配置窗口
图4. I/O配置窗口

图5. 端口寄存器窗口
图5. 端口寄存器窗口