《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > MAX1233/MAX1234触摸屏控制器入门

MAX1233/MAX1234触摸屏控制器入门

2008-01-29
作者:美信公司

摘 要:本应用笔记介绍怎样使用MAX1233/MAX1234" title="MAX1233/MAX1234">MAX1233/MAX1234触摸屏控制器的功能。所提供的简化控制台菜单系统支持对MAX1233/MAX1234器件寄存器的底层直接访问。每一寄存器在32个SPI?时钟周期内完成读写操作。软件对每一寄存器使用简短的助记名。使用MAX1234评估板" title="评估板">评估板(EV Kit)和MINIQUSB+命令模块时,软件支持最大底层控制。在随附的zip文件中,提供所有源代码。
MAX1233的工作方式和
MAX1234一致,只是MAX1233采用3.3V供电,而不是5.0V。MAX1234评估板上的跳接器JU1使MAX1234工作在3.3V,以仿真MAX1233。

注意:符号"/" (例如,/CS)表示CS、PENIRQ、KEYIRQ和BUSY引脚为低电平有效。

内容目录
MAX1233/MAX1234触摸屏控制器入门
1.1) 需要的硬件
1.2) MINIQUSB+固件" title="固件">固件更新说明
1.3) 设置
1.4) 步骤
1.5) 解释SPI data in实例格式
2) 模拟I/O实例
2.1) 控制DAC输出电压
2.2) 选择ADC基准电源模式
2.3) 测量外部电压输入" title="电压输入">电压输入AUX1和AUX2
2.4) 将AUX1和AUX2转换结果译为物理值
2.5) 测量外部电压输入BAT1和BAT2
2.6) 将BAT1和BAT2转换结果译为物理值
2.7) 测量内部温度TEMP1和TEMP2
2.8) 将TEMP1转换结果译为物理值
2.9) 将TEMP1和TEMP2转换结果译为物理值
2.10) 测量外部电压输入AUX1、AUX2、BAT1、BAT2和温度
3) 触摸屏实例
3.1) 低成本商用触摸屏
3.2) 连接触摸屏和评估板
3.3) 验证触摸屏的连接
3.4) 检测触摸屏操作:根据需要扫描
3.5) 检测触摸屏操作:自动扫描
4) 键盘和通用输入/输出引脚
4.1) 配置键盘和GPIO引脚
4.2) 读写GPIO引脚
4.3) 检测按键:自动扫描
4.4) 从键盘中屏蔽单个按键
4.5) 从键盘中屏蔽一列
5) 管理功耗
6) 菜单系统
6.1) 寄存器读/写命令
6.2) 中断和状态引脚命令
6.3) 加入到更新后的MINIQUSB+固件中的命令
7) 结论

1.1) 需要的硬件
Maxim MAX1234评估板 (MAX1234EVKIT)
Maxim MINIQUSB+ (包括USB A-B电缆和MINIQUSB-X+扩展板)
Windows? 2000/XP PC,支持USB。
四线阻性触摸屏(例如,PDA数字转换器/玻璃屏等)
可选:测量DAC输出电压的DMM
可选:驱动AUX和BAT输入的电压源
可选:示波器,用于观察/PENIRQ和/KEYIRQ引脚上的自动扫描中断脉冲。
1.2) MINIQUSB+固件更新说明
MAX1233/MAX1234要求/CS引脚在第一次转换结束之前,解除高电平置位;否则,ADC将无法存储转换结果。在使用本应用笔记之前,必须更新标准MINIQUSB+模块固件,使SPI接口/CS引脚在第32个SCLK 1.4μs内解除置位。在2MHz时,32位自动/CS受控模式将/CS保持低电平21.70μs。只需要对MAXQ2000微控制器非易失闪存MINIQUSB+固件更新一次。这一新固件和标准01.05.39基本固件后向兼容。

除了提高SPI接口的/CS时序之外,固件更新还包括中断驱动脉冲累加器,在MAX1233/MAX1234配置为自动扫描模式时,支持验证/PENIRQ和/KEYIRQ是否发送其自清除中断脉冲。/PENIRQ的持续时间取决于所配置的ADC转换率,/KEYIRQ的持续时间取决于所配置的开关反弹时间。


1.3) 设置
下载并解压缩应用笔记文件 (ZIP, 2.4MB)。

根据图1来组装硬件。

按照表1连接MAX1234评估板连接器J1和MINIQUSB-X+扩展电路板(包含在MINIQUSB+中)。可以采用3M?内部连接器922576-40来替代连接MAX1234评估板的焊线,将其插入到J1中,以提供方便的连接点。不要连接终端模块TB1。

表1. MAX1234评估板和MINIQUSB+电路板之间的连接设置 MAX1234 Signal MAX1234 EV Kit MINIQUSB-X+ MINIQUSB Signal
GND J1-1 H2-8 GND
VCC J1-7 H2-1 3.3V supply from MINIQUSB+
BUSY-Bar J1-27 H2-7 GPIO-K7 (MAXQ2000-INT2)
PENIRQ-Bar J1-29 H1-3 GPIO-K6 (MAXQ2000-INT1)
KEYIRQ-Bar J1-31 H1-8 GPIO-K5 (MAXQ2000-INT0)
DOUT J1-35* H2-2 MISO (SPI master in, slave out)
DIN J1-36* H2-5 MOSI (SPI master out, slave in)
SCLK J1-37* H2-3 SCLK (SPI clock)
CS-Bar J1-38 H2-4 CS-bar (SPI chip select)
USB+5V J1-5 J4-7 USB+5V supply from PC
* 注释:必须通过连接器J1来驱动MAX1234评估板数字输入,不能直接将其驱动至U1周围的测试点。必须采用板上MAX1841电平转换器来驱动MAX1234评估板数字信号。


将MINIQUSB+插入到扩展板的顶部。
连接MINIQUSB+和PC的USB端口。如果这是MINIQUSB+第一次和PC连接,将出现即插即用向导。指南窗口将提示器件驱动器(它包含在随附zip文件中)的安装位置。
启动固件更新批处理文件FWUPDATE.BAT来更新MINIQUSB+固件。
固件更新完成后,从PC的USB端口断开MINIQUSB+。

图1. 硬件配置(在后面章节中连接触摸屏)。


图2. 系统图片,使用一个3M内部连接器来连接MINIQUSB+和MAX1234评估板。


1.4) 步骤
将MAX1234评估板跳接器JU1设置到“MAX1234”位置。
将MINIQUSB+连接至PC的USB端口。确定DACOUT电压 = mid-scale (2.2V)。
启动DEMO1234.EXE程序。屏幕上将出现控制台。
在控制台中输入下面的" title="面的">面的命令序列。
表2. 连接并验证命令序列 DEMO1234 Command*
Expected Program Output SPI data in
 Verification**
C
 Board connected.

Got board banner: Maxim MINIQUSB V01.05.41 >
  Firmware version is OK.
 (configured for SPI auto-CS 4-byte mode) (SCLK=2MHz) ...

  
T W DD FF
 Write_Register(regAddr=0x000b wr_DAC_data        ,
 data=0x00ff
        {(no bits defined for this register)}) result = 1

 0x000b 0x00ff DACOUT = full-scale (4.5V)
T R DD
 Read_Register(regAddr=0x800b wr_DAC_data         ) result = 1,
 buffer = 0x00ff = 255
        {(no bits defined for this register)}

 0x800b 0x0000 Data buffer = 0x00ff
T W DD 80
    
Write_Register(regAddr=0x000b wr_DAC_data        ,
 data=0x0080
        {(no bits defined for this register)}) result = 1

 0x000b 0x0080 DACOUT = mid-scale (2.2V)
T R DD
 Read_Register(regAddr=0x800b wr_DAC_data         ) result = 1,
 buffer = 0x0080 = 128
        {(no bits defined for this register)}

 0x800b 0x0000 data buffer = 0x0080
* DEMO1234 Command命令列出了输入到DEMO1234.exe程序中的命令。
** Verification列出了可以进行的物理测试,验证所执行的命令。


1.5) SPI data in实例格式
SPI data in一列列出了驱动至MAX1233/MAX1234 DIN引脚的SPI数据,采用了十六进制格式,最高有效字节在前。例如,序列0x000b 0x00ff中的SPI数据表示同步输入到DIN的32位序列是0000 0000 0000 1011 0000 0000 1111 1111。第一位0用于寄存器写操作,1用于寄存器读操作。

寄存器写操作是0000 0000 a7-a0 d15-d0格式的32位SPI传送过程。
寄存器读操作是1000 0000 a7-a0 0000 0000格式的32位SPI传送过程,在最后16位,接收到的数据从DOUT同步输入。


2) 模拟I/O实例
下面的例子介绍了怎样使用DEMO1234.EXE程序来控制DAC输出,配置基准电压,测量AUX1/AUX2/BAT1/BAT2电压输入,以及测量内部MAX1234温度。


2.1) 控制DAC输出电压
由两个寄存器来控制DAC。写入DAC数据寄存器来设置输出电压。写入DAC控制寄存器来关断或者对DAC上电。默认上电状态是DAC加电,DAC输出位于量程中部。DAC满量程电压通常为AVDD的90% (最小85%,最大95%)。

对于AVDD = 3.3V ±5%,DACOUT满量程范围在2.65V和3.27V之间,通常为2.96V。
对于AVDD = 5.0V ±5%,DACOUT满量程范围在4.02V和4.97V之间,通常为4.48V。

表3. DAC输出命令 DEMO1234 Command
 Action SPI data in
 MAX1233 (3.3V) MAX1234 (5.0V)
T W DD FF
 DACOUT = full-scale 0x000b 0x00ff
 DACOUT = 2.96V DACOUT = 4.48V
T W DD 00
 DACOUT = 0V 0x000b 0x0000
 DACOUT = 0.0V DACOUT = 0.0V
T W DD 80
 DACOUT = mid-scale 0x000b 0x0080
 DACOUT = 1.485V DACOUT = 2.25V
T W DC 8000
 Disable DAC 0x0042 0x8000
 DACOUT = 0.0V DACOUT = 0.0V
T W DC 0
 Enable DAC 0x0042 0x0000
 DACOUT = 1.485V DACOUT = 2.25V


2.2) 选择ADC基准电源模式
ADC需要一个基准电压。对于典型的嵌入式系统工作,默认设置是fine。在自动上电模式(ADC3210 = 0000,RES10 = 00)下,MAX1233/MAX1234提供自己的内部基准电压。在每次测量之前,内部基准自动上电,测量完成后关断。

对于第一次诊断,保持上电模式(ADC3210 = 0000,RES10 = 01)支持使用手持式DVM对基准电压进行外部验证。

ADC扫描选择位设置为0000,写入ADC控制寄存器(0x40),来设置ADC基准电源模式。RES1/RES0位选择基准电源模式,基准控制位RFV选择内部1.0V或者2.5V基准(请参考MAX1233/MAX1234数据资料的表13)。

ADC控制字:x x 0 0 0 0 RES1 RES0 x x x x x x x RFV

表4. 内部基准命令 DEMO1234 Command
 Action SPI data in
 Verification
T W AC 0100
 Internal 1V reference always powered; write ADC control word with
ADC3210 = 0000,
RES10 = 01,
RFV = 0 0x0040 0x0100
 Voltage at pin 12 REF is between 0.98V and 1.02V
T W AC 0101
 Internal 2.5V reference always powered; write ADC control word with
ADC3210 = 0000,
RES10 = 01,
RFV = 1 0x0040 0x0101
 Voltage at pin 12 REF is between 2.47V and 2.53V
T W AC 0001
 Internal 2.5V reference powered when needed; write ADC control word with
ADC3210 = 0000,
RES10 = 00,
RFV = 1 0x0040 0x0001
 Voltage at pin 12 REF will be powered only briefly as necessary

表5. 外部基准命令 DEMO1234 Command
 Action SPI data in
 
T W AC 0300
 External reference must be provided;
ADC_control_wr_demand_scan:(write)demand scan
ADC_control_AD0000:configure reference
ADC_control_RES11:external reference 0x0040 0x0300
 


2.3) 测量外部电压输入AUX1和AUX2
表6. ADC测量命令序列 DEMO1234 Command
 Action (Triggered by A/D3210 Bits) SPI data in
 
T M8
 Measure AUX1 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x2301


0x8007 0x0000
 
T W AC 2301
 Trigger ADC scan of AUX1;
ADC control word 0x2301 means:
ADC_control_wr_demand_scan
ADC_control_AD1000 /* measure AUX1 */
ADC_control_RES11 /* 12-bit resolution */
ADC_control_AVG00 /* no averaging */
ADC_control_CNR00 /* conversion rate 3.5μs */
ADC_control_RFV /* RFV=1: VREF=2.5V */ 0x0040 0x2301
 
T R A1
 Read AUX1 result AUX1_code 0x8007 0x0000
 
T M9
 Measure AUX2 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x2701


0x8008 0x0000
 


2.4) 将AUX1和AUX2转换结果译为物理值
下面的C/C++伪代码片断总结了DEMO1234程序是怎样解释AUX1和AUX2转换结果的。

    /* ADC control resolution value selects num_codes 4096 (12-bit), 1024 (10-bit), or 256 (8-bit) */
    int num_codes = 4096; /* ADC_control_RES11: 12-bit resolution */

    /* Voltage that corresponds to the full-scale ADC code; may be internal 1V or 2.5V ref, or ext ref. */
    double ADC_fullscale_voltage = 2.5; /* ADC_control_RFV=1: VREF=2.5V.  RFV=0: VREF=1.0V. */

    /* AUX1_code is the 16-bit result read by SPI command 0x8007 */
    double AUX1_Voltage = (AUX1_code * ADC_fullscale_voltage) / num_codes;
   
    /* AUX2_code is the 16-bit result read by SPI command 0x8008 */
    double AUX2_Voltage = (AUX2_code * ADC_fullscale_voltage) / num_codes;

2.5) 测量外部电压输入BAT1和BAT2
表7. ADC测量命令序列 DEMO1234 Command
 Action (Triggered by A/D3210 Bits) SPI data in
 
T M6
 Measure BAT1 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x1b01


0x8005 0x0000
 
T W AC 1b01
 Trigger ADC scan of BAT1;
ADC control word 0x1b01 means:
ADC_control_wr_demand_scan
ADC_control_AD0110 /* measure BAT1 */
ADC_control_RES11 /* 12-bit resolution */
ADC_control_AVG00 /* no averaging */
ADC_control_CNR00 /* conversion rate 3.5μs */
ADC_control_RFV /* RFV=1: VREF=2.5V */ 0x0040 0x1b01
 
T R B1
 Read BAT1 result BAT1_code 0x8005 0x0000
 
T W AC 1b21
 Trigger ADC scan of BAT1;
ADC control word 0x1b21 means:
ADC_control_wr_demand_scan
ADC_control_AD0110 /* measure BAT1 */
ADC_control_RES11 /* 12-bit resolution */
ADC_control_AVG00 /* no averaging */
ADC_control_CNR10 /* conversion rate 10μs */
ADC_control_RFV /* RFV=1: VREF=2.5V */ 0x0040 0x1b21
 
T R B1
 Read BAT1 result BAT1_code 0x8005 0x0000
 
T M7
 Measure BAT2 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x1f01


0x8006 0x0000
 


2.6) 将BAT1和BAT2转换结果译为物理值
下面的C/C++伪代码片断总结了DEMO1234程序是怎样解释BAT1和BAT2转换结果的。注意:通过一个4:1输入分配器来测量BAT1和BAT2。
    /* ADC control resolution value selects num_codes 4096 (12-bit), 1024 (10-bit), or 256 (8-bit) */
    int num_codes = 4096; /* ADC_control_RES11: 12-bit resolution */

    /* Voltage that corresponds to the full-scale ADC code; may be internal 1V or 2.5V ref, or ext ref. */
    double ADC_fullscale_voltage = 2.5; /* ADC_control_RFV=1: VREF=2.5V.  RFV=0: VREF=1.0V. */

    /* Note: BAT1 and BAT2 measure through a 4:1 input divider. */

    /* BAT1_code is the 16-bit result read by SPI command 0x8005 */
    double BAT1_Voltage = 4 * (BAT1_code * ADC_fullscale_voltage) / num_codes;

    /* BAT2_code is the 16-bit result read by SPI command 0x8006 */
    double BAT2_Voltage = 4 * (BAT2_code * ADC_fullscale_voltage) / num_codes;

2.7) 测量内部温度TEMP1和TEMP2
表8. ADC测量命令序列 DEMO1234 Command
 Action (Triggered by A/D3210 Bits) SPI data in
 
T MA
 Measure TEMP1 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x2b01


0x8009 0x0000
 
T W AC 2b01
 Trigger ADC scan of TEMP1;
ADC control word 0x2b01 means:
ADC_control_wr_demand_scan
ADC_control_ AD1010 /* measure TEMP1 */
ADC_control_RES11 /* 12-bit resolution */
ADC_control_AVG00 /* no averaging */
ADC_control_CNR00 /* conversion rate 3.5μs */
ADC_control_RFV /* RFV=1: VREF=2.5V */ 0x0040 0x2b01
 
T R T1
 Read TEMP1 result TEMP1 _code 0x8009 0x0000
 
T MC
 Measure TEMP1, TEMP2 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x3301


0x8009 0x0000


0x800a 0x0000
 
T W AC 3301
 Trigger ADC scan of TEMP1 and TEMP2;
ADC control word 0x3301 means:
ADC_control_wr_demand_scan
ADC_control_ AD1100 /* measure TEMP1,TEMP2 */
ADC_control_RES11 /* 12-bit resolution */
ADC_control_AVG00 /* no averaging */
ADC_control_CNR00 /* conversion rate 3.5μs */
ADC_control_RFV /* RFV=1: VREF=2.5V */ 0x0040 0x3301
 
T R T1
 Read TEMP1 result TEMP1 _code 0x8009 0x0000
 
T R T2
 Read TEMP2 result TEMP2 _code 0x800a 0x0000
 


2.8) 将TEMP1转换结果译为物理值
下面的C/C++伪代码片断总结了DEMO1234程序是怎样解释TEMP1转换结果的。
    /* ADC control resolution value selects num_codes 4096 (12-bit), 1024 (10-bit), or 256 (8-bit) */
    int num_codes = 4096; /* ADC_control_RES11: 12-bit resolution */

    /* Voltage that corresponds to the full-scale ADC code; may be internal 1V or 2.5V ref, or ext ref. */
    double ADC_fullscale_voltage = 2.5; /* ADC_control_RFV=1: VREF=2.5V.  RFV=0: VREF=1.0V. */

    /* TEMP1_code is the 16-bit result read by SPI command 0x8009 */
    double TEMP1_Voltage = (TEMP1_code * ADC_fullscale_voltage) / num_codes;
   
    /* Calibration values */
    const double Temp1V_Room = 0.590; // temp1 voltage at room temperature 25C
    const double Temp1K_Room = 298.15;  // Room temperature Kelvins (298.15K=25C)
    const double Temp1V_Per_K = -0.002; // TempCo -2mV per degree C
   
    /* Convert to absolute temperature */
    double Kelvin = (TEMP1_Voltage - Temp1V_Room) / Temp1V_Per_K + Temp1K_Room;
   
    /* Optional conversion to commonly used temperature units */
    double Centigrade = Kelvin - 273.15;
    double Fahrenheit = (Centigrade * 9.0 / 5.0) + 32;

2.9) 将TEMP1和TEMP2转换结果译为物理值
下面的C/C++伪代码片断总结了DEMO1234程序是怎样解释TEMP1和TEMP2转换结果的。TEMP2只在和TEMP1对比时才有意义。
    /* ADC control resolution value selects num_codes 4096 (12-bit), 1024 (10-bit), or 256 (8-bit) */
    int num_codes = 4096; /* ADC_control_RES11: 12-bit resolution */

    /* Voltage that corresponds to the full-scale ADC code; may be internal 1V or 2.5V ref, or ext ref. */
    double ADC_fullscale_voltage = 2.5; /* ADC_control_RFV=1: VREF=2.5V.  RFV=0: VREF=1.0V. */

    /* TEMP1_code is the 16-bit result read by SPI command 0x8009 */
    double TEMP1_Voltage = (TEMP1_code * ADC_fullscale_voltage) / num_codes;
   
    /* TEMP2_code is the 16-bit result read by SPI command 0x800a */
    double TEMP2_Voltage = (TEMP2_code * ADC_fullscale_voltage) / num_codes;
   
    /* Calibration values */
    const double K_Per_Temp21_Delta_V = 2680.0; // nominal 2680 5/27/2002
   
    /* Convert to absolute temperature */
    double Kelvin = (TEMP2_Voltage - TEMP1_Voltage) * K_Per_Temp21_Delta_V;
   
    /* Optional conversion to commonly used temperature units */
    double Centigrade = Kelvin - 273.15;
    double Fahrenheit = (Centigrade * 9.0 / 5.0) + 32;

2.10) 测量外部电压输入AUX1、AUX2、BAT1、BAT2和温度
表9. ADC测量命令序列 DEMO1234 Command
 Action (Triggered by A/D3210 Bits) SPI data in
 
T MB
 Measure BAT1/4, BAT2/4, AUX1, AUX2, TEMP1, TEMP2 with 12-bit resolution and 3.5μs conversion rate 0x0040 0x2f01


0x8005 0x0000


0x8006 0x0000


0x8007 0x0000


0x8008 0x0000


0x8009 0x0000


0x800a 0x0000
 
T W AC 2f01
 Trigger ADC scan of BAT1-2, AUX1-2, TEMP1-2;
ADC control word 0x2f01 means:
ADC_control_wr_demand_scan
ADC_control_ AD1011 /* measure AUX1 etc. */
ADC_control_RES11 /* 12-bit resolution */
ADC_control_AVG00 /* no averaging */
ADC_control_CNR00 /* conversion rate 3.5μs */
ADC_control_RFV /* RFV=1: VREF=2.5V */ 0x0040 0x2f01
 
T R B1
 Read BAT1 result BAT1 _code 0x8005 0x0000
 
T R B2
 Read BAT2 result BAT2_code 0x8006 0x0000
 
T R A1
 Read AUX1 result AUX1 _code 0x8007 0x0000
 
T R A2
 Read AUX2 result AUX2 _code 0x8008 0x0000
 
T R T1
 Read TEMP1 result TEMP1 _code 0x8009 0x0000
 
T R T2
 Read TEMP2 result TEMP2 _code 0x800a 0x0000
 


3) 触摸屏实例
下面的例子解释了怎样使用DEMO1234.EXE程序来获得触摸屏数据。


3.1) 低成本商用触摸屏
在互联网上搜索"PDA Digitizer/Glasstop",寻找合适的替代触摸屏。高清触摸屏玻璃的价格范围在50美元至10美元之间,价格取决于型号以及玻璃是否全部贴在显示屏上。


3.2) 连接触摸屏和评估板
MAX1234评估板提供突出插头H5/H6来连接10mm柔性电缆或者长度更短的电缆。H6连接器的间距是0.5mm,比实际触摸屏柔性电缆间距更精细。把柔性电缆插入H6,上锁,选择位于四条柔性电缆中每一电缆中心位置的H5引脚。跳接器连接H5和标有U1的X+、Y+、X-以及Y-测试点。


3.3) 检验触摸屏的连接
第一次连接触摸屏时,通过下面的步骤来验证X和Y连接是否正确。可以有几个触摸屏交叉连接,但大部分不会正常工作。在这些例子中,我们假设X- = left,X+ = right,Y- = top,Y+ = bottom。

表10. 触摸屏物理连接验证命令序列 DEMO1234 Command
 Action SPI data in
 Verification
  Connect DVM to X+/GND    
T MD
 No measurement; drive Y+,Y- 0x0040 0x3701
 
 Touch top left  X+ = approx. Y-
 Touch top right  X+ = approx. Y-
 Touch bottom left  X+ = approx. Y+
 Touch bottom right  X+ = approx. Y+
 Connect DVM to Y+/GND  
T ME
 No measurement; drive X+,X- 0x0040 0x3b01
 
 Touch top left  Y+ = approx. X-
 Touch top right  Y+ = approx. X+
 Touch bottom left  Y+ = approx. X-
 Touch bottom right  Y+ = approx. X+

表11. 纠正触摸屏连接问题 Symptom Correction
Touch coordinates are mirrored top-to-bottom Swap the Y+ and Y- connections
Touch coordinates are mirrored left-to-right Swap the X+ and X- connections
Touch coordinates are rotated 180 degrees Swap the X+ and X- connections, and swap the Y+ and Y- connections
Touch coordinates are mirrored diagonally Swap the X+ and Y+ connections, and swap the X- and Y- connections
Touch coordinates do not seem to track, and the distortion is not a simple flip/rotate/mirror transformation Swap the X+ and Y+ connections;
if distortion persists, swap the X+ and Y- connections;
if distortion still persists, disconnect touch screen and use DVM to verify X+ to X- resistance and Y+ to Y- resistance;
verify with no touch X+ and X- are isolated from Y+ and Y-


3.4) 检测触摸屏的操作:根据需要扫描
在配置MAX1234检测触摸屏操作,根据需要数字化接触屏的位置时,写入寄存器0x40 (ADC控制),其PENSTS=0,ADSTS=0 (请参考MAX1233/MAX1234数据资料的表6)。读取寄存器0x00 (X轴)后,检测到后续的触摸屏操作时,/PENIRQ信号锁存至低电平,在写入ADC控制寄存器测量X、Y轴之前,保持低电平。

表12. 触摸屏检测命令序列:根据需要扫描 DEMO1234 Command
 Action SPI data in
 Verification
T W AC 0b01
 Demand scan 0x0040 0x0b01
 
T R AX
 Read conversion result register X 0x8000 0x0000
 
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 1
 Touch the touch screen  
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 0
T M2
 Measure X,Y,Z1,Z2 0x0040 0x0b01


0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 1
 Touch and hold the touch screen  
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 0
T M2
 Measure X,Y,Z1,Z2 0x0040 0x0b01


0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 0
T M2
 Measure X,Y,Z1,Z2 0x0040 0x0b01


0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 0
 Release the touch screen  
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 0
T M2
 Measure X,Y,Z1,Z2 0x0040 0x0b01


0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 
P R 6
 Read PENIRQ-bar pin status  PENIRQ = 1


3.5) 检测触摸屏操作:自动扫描
在检测触摸屏操作,配置MAX1234,自动数字化触摸屏的接触位置时,写入寄存器0x40 (ADC控制),其PENSTS=1,ADSTS=0 (请参考MAX1233/MAX1234数据资料的表6)。第一次接触屏幕时,/PENIRQ信号暂时变为低电平,并在读取X寄存器之前不会变化。

表13. 触摸屏检测命令序列:自动扫描 DEMO1234 Command
 Action SPI data in
 Verification
 Optional: connect oscilloscope to PENIRQ-bar  
I C 1 3
 Configure PENIRQ-bar pulse accumulator: falling-edge trigger  
I 0 1
 Reset the pulse accumulator  
I R 1
 Read the number of times PENIRQ-bar has pulsed low  count = 0
T W AC 8bff
 Wait for touch, then scan X,Y,Z1,Z2 0x0040 0x8bff
 
 Touch the touch screen  PENIRQ pulse
I R 1
 Read the number of times PENIRQ-bar has pulsed low  count has increased
T R P
 Read X,Y,Z1,Z2 conversion results 0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 
 Touch the touch screen  PENIRQ pulse
I R 1
 Read the number of times PENIRQ-bar has pulsed low  count has increased
T R P
 Read X,Y,Z1,Z2 conversion results 0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 
 Touch the touch screen  PENIRQ pulse
I R 1
 Read the number of times PENIRQ-bar has pulsed low  count has increased
T R P
 Read X,Y,Z1,Z2 conversion results 0x8000 0x0000


0x8001 0x0000


0x8002 0x0000


0x8003 0x0000
 


4) 键盘和通用输入/输出引脚
下面的例子介绍了怎样使用DEMO1234.EXE程序来扫描键盘,怎样使用GPIO键盘扫描引脚。


4.1) 配置键盘和GPIO引脚
GPIO控制寄存器将每个C1–C4和R1–R4引脚分别配置为输入、输出或者是键盘的一部分(请参考MAX1233/MAX1234数据资料的表26和表27)。此外,写入GPIO上拉禁止寄存器,将输出引脚配置为开漏输出。

表14. 键盘和GPIO配置实例 DEMO1234 Command
 Action SPI data in
 
T W GC FFFF
 Keypad: none;
GPIO outputs: C4,C3,C2,C1,R4,R3,R2,R1;
GPIO inputs: none 0x004f 0xffff
 
T W GC FF00
 Keypad: none;
GPIO outputs: none;
GPIO inputs: C4,C3,C2,C1,R4,R3,R2,R1 0x004f 0xff00
 
T W GC 0000
 Keypad: (C4,C3,C2,C1) x (R4,R3,R2,R1);
GPIO outputs: none;
GPIO inputs: none 0x004f 0x0000
 
T W GC C8C0
 Keypad: (C2,C1) x (R3,R2,R1);
GPIO outputs: C4,C3;
GPIO input: R4 0x004f 0xc8c0
 
T W GP 4000
 GPIO pullup disable: C3 0x004e 0x4000
 


4.2) 读写GPIO引脚
GPIO数据寄存器读取GPIO输入引脚,写入GPIO输出引脚。注意:在这些例子中,C3、C4和R4是引脚名称,而不是元件名称。

表15. GPIO实例 DEMO1234 Command
 Action SPI data in
 Verification
T W GC C8C0
 Keypad:
(C2,C1) x (R3,R2,R1);
GPIO outputs: C4,C3;
GPIO input: R4 0x004f 0xc8c0
 
T W GP 4000
 GPIO pullup disable: C3 0x004e 0x4000
 
 Connect external resistor between C3 pin and DVDD  
 Connect DVM to C4 pin  
T W GD 8000
 GPIO write C4 = 1 0x000f 0x8000
 C4 pin = high
T W GD 0000
 GPIO write C4 = 0 0x000f 0x0000
 C4 pin = low
T W GD 8000
 GPIO write C4 = 1 0x000f 0x8000
 C4 pin = high
T W GD 0000
 GPIO write C4 = 0 0x000f 0x0000
 C4 pin = low
 Connect DVM to C3 pin  
T W GD 4000
 GPIO write C3 = 1 0x000f 0x4000
 C3 pin = high
T W GD 0000
 GPIO write C3 = 0 0x000f 0x0000
 C3 pin = low
T W GD 4000
 GPIO write C3 = 1 0x000f 0x4000
 C3 pin = high
T W GD 0000
 GPIO write C3 = 0 0x000f 0x0000
 C3 pin = low
 Connect R4 pin to DVDD  
T R GD
 GPIO read 0x800f 0x0000
 Buffer = 0x0800
 Connect R4 pin to GND  
T R GD
 GPIO read 0x800f 0x0000
 Buffer = 0x0000


4.3) 检测按键:自动扫描
可以配置键盘控制寄存器在探测到有按键按下时,自动扫描键盘。

表16. 按键命令序列:自动扫描 DEMO1234 Command
 Action SPI data in
 Verification
 Optional: connect oscilloscope to KEYIRQ-bar  
I C 0 3
 Configure KEYIRQ-bar pulse accumulator: falling-edge trigger  
I 0 0
 Reset the pulse accumulator  
I R 0
 Read the number of times KEYIRQ-bar has pulsed low  count = 0
T W GC 0000
 Keypad:
(C4,C3,C2,C1) x (R4,R3,R2,R1);
GPIO outputs: none;
GPIO inputs: none 0x004f 0x0000
 
T W KC bf00
 Wait for keypress;
maximum debounce and hold times 0x0041 0xbf00
 
 Press and release R1C1 (key "1")  KEYIRQ pulse
I R 0
 Read the number of times KEYIRQ-bar has pulsed low  count has increased
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0001 = R1C1 key
 Press and release R2C2 (key "5")  KEYIRQ pulse
I R 0
 Read the number of times KEYIRQ-bar has pulsed low  count has increased
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0020 = R2C2 key
 Press and release R3C2 (key "8")  KEYIRQ pulse
I R 0
 Read the number of times KEYIRQ-bar has pulsed low  count has increased
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0040 = R3C2 key


4.4) 从键盘中屏蔽单个按键
使用键盘屏蔽寄存器和键盘2结果寄存器来屏蔽每个按键。屏蔽掉的按键被扫描至KPD寄存器,但是不在键盘2结果寄存器中报告。

表17. 按键命令序列:屏蔽单个按键 DEMO1234 Command
 Action SPI data in
 Verification
T W GC 0000
 Keypad:
(C4,C3,C2,C1) x (R4,R3,R2,R1);
GPIO outputs: none;
GPIO inputs: none 0x004f 0x0000
 
T W KC bf00
 Wait for keypress;
maximum debounce and hold times 0x0041 0xbf00
 
T W KM 0020
 Mask only R2C2 key 0x0050 0x0020
 
 Press and release R1C1 (key "1")  
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0001 = R1C1 key
T R K2
 Read masked keypad result 0x8011 0x0000
 0x0001 = R1C1 key
 Press and release R2C2 (key "5")  
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0020 = R2C2 key
T R K2
 Read masked keypad result 0x8011 0x0000
 0x0000 = no key
 Press and release R3C2 (key "8")  
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0040 = R3C2 key
T R K2
 Read masked keypad result 0x8011 0x0000
 0x0040 = R3C2 key


4.5) 从键盘中屏蔽一列
使用键盘列寄存器来屏蔽所有列。不扫描屏蔽列,因此,KPD寄存器不会探测这些列中的按键。

表18. 按键命令序列:屏蔽键盘的一列 DEMO1234 Command
 Action SPI data in
 Verification
T W GC 0000
 Keypad:
(C4,C3,C2,C1) x (R4,R3,R2,R1);
GPIO outputs: none;
GPIO inputs: none 0x004f 0x0000
 
T W KC bf00
 Wait for keypress;
maximum debounce and hold times 0x0041 0xbf00
 
T W KK 2000
 Mask entire C2 column 0x0051 0x2000
 
 Press and release R1C1 (key "1")  
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0001 = R1C1 key
 Press and release R2C2 (key "5")  
T R KB
 Read raw keypad result 0x8004 0x0000
 (previous value)
 Press and release R3C2 (key "8")  
T R KB
 Read raw keypad result 0x8004 0x0000
 (previous value)
 Press and release R2C3 (key "6")  
T R KB
 Read raw keypad result 0x8004 0x0000
 0x0200 = R2C3 key


5) 电源管理
表19. 关断命令 DEMO1234 Command
 Action SPI data in
 Verification
T W AC C000
 Power off ADC 0x0040 0xc000
 —
T W AC 0300
 Power off internal reference 0x0040 0x0300
 REF = not driven
T W DC 8000
 Disable DAC 0x0042 0x8000
 DACOUT = 0.0V
T W KC C000
 Power off keypad 0x0041 0xc000
 —


6) 菜单系统
全部源代码实现下面的控制台菜单系统,它连接至MINIQUSB+模块。

CmodComm测试程序主菜单—在连接前
A) adjust timing parameters
L) CmodLog... functions
C) connect
D) Debug Messages
X) exit

对C (连接)命令的响应
C
Hardware supports optimized native SMBus commands.

Board connected.

Got board banner: Maxim MINIQUSB V01.05.41 >
Firmware version is OK.
(configured for SPI auto-CS 4-byte mode) (SCLK=2MHz) ...

主菜单—连接后有效
T) Test the device
8) CmodP8Bus... functions
A) adjust timing parameters
L) CmodLog... functions
P) CmodPin... functions
S) CmodSpi... functions
M) CmodSMBus... functions
$) CmodCommStringWrite list of hex codes

R) CmodBoardReset
D) Disconnect

测试菜单命令—连接后有效
R) Read register
W) Write register
M0) measure no measurement; configure reference
M1) measure X,Y
M2) measure X,Y,Z1,Z2
M3) measure X
M4) measure Y
M5) measure Z1,Z2
M6) measure BAT1/4
M7) measure BAT2/4
M8) measure AUX1
M9) measure AUX2
MA) measure TEMP1
MB) measure BAT1/4,BAT2/4,AUX1,AUX2,TEMP1,TEMP2
MC) measure TEMP1,TEMP2
MD) no measurement; drive Y+,Y-
ME) no measurement; drive X+,X-
MF) no measurement; drive Y+,X-
.) Exit this menu


6.1) 寄存器读/写命令
表20. 读取寄存器助记符 DEMO1234 Command
 Mnemonic SPI data in
 
T R A1
 Test Read AUX1 register 0x8007 0x0000
 
T R A2
 Test Read AUX2 register 0x8008 0x0000
 
T R AC
 Test Read ADC_control register 0x8040 0x0000
 
T R AX
 Test Read X register 0x8000 0x0000
 
T R AY
 Test Read Y register 0x8001 0x0000
 
T R AZ1
 Test Read Z1 register 0x8002 0x0000
 
T R AZ2
 Test Read Z2 register 0x8003 0x0000
 
T R B1
 Test Read BAT1 register 0x8005 0x0000
 
T R B2
 Test Read BAT2 register 0x8006 0x0000
 
T R DC
 Test Read DAC_control register 0x8042 0x0000
 
T R DD
 Test Read DAC_data register 0x800b 0x0000
 
T R GC
 Test Read GPIO_control register 0x804f 0x0000
 
T R GD
 Test Read GPIO_data register 0x800f 0x0000
 
T R GP
 Test Read GPIO_pullup register 0x804e 0x0000
 
T R K1
 Test Read KPDATA1 register 0x8010 0x0000
 
T R K2
 Test Read KPDATA2 register 0x8011 0x0000
 
T R KB
 Test Read KPD register 0x8004 0x0000
 
T R KC
 Test Read KEY_control register 0x8041 0x0000
 
T R KK
 Test Read KPCOLMASK register 0x8051 0x0000
 
T R KM
 Test Read KPKEYMASK register 0x8050 0x0000
 
T R T1
 Test Read TEMP1 register 0x8009 0x0000
 
T R T2
 Test Read TEMP2 register 0x800a 0x0000
 

表21. 写入寄存器助记符 DEMO1234 Command
 Mnemonic SPI data in
 
T W AC hexValue
 Test Write ADC_control register 0x0040 hexValue
 
T W DC hexValue
 Test Write DAC_control register 0x0042 hexValue
 
T W DD hexValue
 Test Write DAC_data register 0x000b hexValue
 
T W GC hexValue
 Test Write GPIO_control register 0x004f hexValue
 
T W GD hexValue
 Test Write GPIO_data register 0x000f hexValue
 
T W GP hexValue
 Test Write GPIO_pullup register 0x004e hexValue
 
T W KC hexValue
 Test Write KEY_control register 0x0041 hexValue
 
T W KK hexValue
 Test Write KPCOLMASK register 0x0051 hexValue
 
T W KM hexValue
 Test Write KPKEYMASK register 0x0050 hexValue
 

表22. 触摸屏测量命令序列 DEMO1234 Command
 Action (Triggered by A/D3210 Bits) SPI data in Sequence
 
T M1
 Measure X,Y 0x0040 0x07010x8000 0x00000x8001 0x0000
 
T M2
 Measure X,Y,Z1,Z2 0x0040 0x0b010x8000 0x00000x8001 0x00000x8002 0x00000x8003 0x0000
 
T M3
 Measure X 0x0040 0x0f010x8000 0x0000
 
T M4
 Measure Y 0x0040 0x13010x8001 0x0000
 
T M5
 Measure Z1,Z2 0x0040 0x17010x8002 0x00000x8003 0x0000
 
T MD
 No measurement; drive Y+,Y- 0x0040 0x3701
 
T ME
 No measurement; drive X+,X- 0x0040 0x3b01
 
T MF
 No measurement; drive Y+,X- 0x0040 0x3f01
 


6.2) 中断和状态引脚命令
表23. 引脚状态读取命令 DEMO1234 Command
 Action SPI data in
 
P R 5
 Read KEYIRQ-bar pin status N/A
I C 0 3
 Enable KEYIRQ-bar falling-edge trigger pulse accumulator N/A
I C 0 1
 Enable KEYIRQ-bar rising-edge trigger pulse accumulator N/A
I C 0 0
 Disable KEYIRQ-bar pulse accumulator N/A
I R 0
 Read the number of times KEYIRQ-bar has pulsed low N/A
I 0 0
 Clear the KEYIRQ-bar pulse accumulator N/A
P R 6
 Read PENIRQ-bar pin status N/A
I C 1 3
 Enable PENIRQ-bar falling-edge trigger pulse accumulator N/A
I C 1 1
 Enable PENIRQ-bar rising-edge trigger pulse accumulator N/A
I C 1 0
 Disable PENIRQ-bar pulse accumulator N/A
I R 1
 Read the number of times PENIRQ-bar has pulsed low N/A
I 0 1
 Clear the PENIRQ-bar pulse accumulator N/A
P R 7
 Read BUSY-bar pin status N/A


6.3) 加入到更新后的MINIQUSB+固件中的命令
表24. 更新后MINIQUSB+固件01.05.40支持的SPI命令 DEMO1234 Command
 Action CPOL CPHA CS-Bar Control AF Length
S C L0
 Configure SPI for CPOL=0 0 — GPIO-K9 1 byte
S C L1
 Configure SPI for CPOL=1 1 — GPIO-K9 1 byte
S C A0
 Configure SPI for CPHA=0 — 0 GPIO-K9 1 byte
S C A1
 Configure SPI for CPHA=1 — 1 GPIO-K9 1 byte
S C C0
 Configure SPI for 8-bit — — GPIO-K9 1 byte
S C C1
 Configure SPI for 8-bit auto-CS-bar — — Automatic 1 byte
S C C2
 Configure SPI for 16-bit auto-CS-bar — — Automatic 2 bytes
S C C3
 Configure SPI for 24-bit auto-CS-bar — — Automatic 3 bytes
S C C4
 Configure SPI for 32-bit auto-CS-bar — — Automatic 4 bytes
$ 2 AE 00
 Configure SPI for 8-bit 0 0 GPIO-K9 1 byte
$ 2 AE 01
 Configure SPI for 8-bit 0 1 GPIO-K9 1 byte
$ 2 AE 02
 Configure SPI for 8-bit 1 0 GPIO-K9 1 byte
$ 2 AE 03
 Configure SPI for 8-bit 1 1 GPIO-K9 1 byte
$ 2 AE 08
 Configure SPI for 8-bit auto-CS-bar 0 0 Automatic 1 byte
$ 2 AE 09
 Configure SPI for 8-bit auto-CS-bar 0 1 Automatic 1 byte
$ 2 AE 0A
 Configure SPI for 8-bit auto-CS-bar 1 0 Automatic 1 byte
$ 2 AE 0B
 Configure SPI for 8-bit auto-CS-bar 1 1 Automatic 1 byte
$ 2 AE 18
 Configure SPI for 16-bit auto-CS-bar 0 0 Automatic 2 bytes
$ 2 AE 19
 Configure SPI for 16-bit auto-CS-bar 0 1 Automatic 2 bytes
$ 2 AE 1A
 Configure SPI for 16-bit auto-CS-bar 1 0 Automatic 2 bytes
$ 2 AE 1B
 Configure SPI for 16-bit auto-CS-bar 1 1 Automatic 2 bytes
$ 2 AE 28
 Configure SPI for 24-bit auto-CS-bar 0 0 Automatic 3 bytes
$ 2 AE 29
 Configure SPI for 24-bit auto-CS-bar 0 1 Automatic 3 bytes
$ 2 AE 2A
 Configure SPI for 24-bit auto-CS-bar 1 0 Automatic 3 bytes
$ 2 AE 2B
 Configure SPI for 24-bit auto-CS-bar 1 1 Automatic 3 bytes
$ 2 AE 38
 Configure SPI for 32-bit auto-CS-bar 0 0 Automatic 4 bytes
$ 2 AE 39
 Configure SPI for 32-bit auto-CS-bar 0 1 Automatic 4 bytes
$ 2 AE 3A
 Configure SPI for 32-bit auto-CS-bar 1 0 Automatic 4 bytes
$ 2 AE 3B
 Configure SPI for 32-bit auto-CS-bar 1 1 Automatic 4 bytes
$ 2 AF xx
 Perform an 8-bit SPI transfer (CS-bar = GPIO or auto-CS-bar = 1-byte) — — — 1 byte
$ 3 AF xx xx
 Perform a 16-bit SPI transfer (requires auto-CS-bar = 2-byte mode) — — — 2 bytes
$ 4 AF xx xx xx
 Perform a 24-bit SPI transfer (requires auto-CS-bar = 3-byte mode) — — — 3 bytes
$ 5 AF xx xx xx xx
 Perform a 32-bit SPI transfer (requires auto-CS-bar = 4-byte mode) — — — 4 bytes
$ 2 F9 0
 Drive CS-bar pin low — — GPIO-K9 —
$ 2 F9 1
 Drive CS-bar pin high — — GPIO-K9 —

表25. 更新后MINIQUSB+固件01.05.41中的中断脉冲累加器命令 DEMO1234 Command
 Action Int GPIO Input Firmware Command
 
$ 2 C3 00
 Query which of the C3 commands are supported; the return value is a 2-byte bitmap of commands C300 to C30F, msb first — — C3 00
 
I Q 0
 Query configuration of pulse accumulator INT0 GPIO-K5 C3 01 00
 
I Q 1
 Query configuration of pulse accumulator INT1 GPIO-K6 C3 01 01
 
I Q 2
 Query configuration of pulse accumulator INT2 GPIO-K7 C3 01 02
 
I Q 3
 Query configuration of pulse accumulator INT3 GPIO-K8 C3 01 03
 
I C 0 0
 Configure pulse accumulator: disable interrupt INT0 GPIO-K5 C3 02 00 00
 
I C 1 0
 Configure pulse accumulator: disable interrupt INT1 GPIO-K6 C3 02 01 00
 
I C 2 0
 Configure pulse accumulator: disable interrupt INT2 GPIO-K7 C3 02 02 00
 
I C 3 0
 Configure pulse accumulator: disable interrupt INT3 GPIO-K8 C3 02 03 00
 
I C 0 1
 Configure pulse accumulator: rising-edge trigger INT0 GPIO-K5 C3 02 00 01
 
I C 1 1
 Configure pulse accumulator: rising-edge trigger INT1 GPIO-K6 C3 02 01 01
 
I C 2 1
 Configure pulse accumulator: rising-edge trigger INT2 GPIO-K7 C3 02 02 01
 
I C 3 1
 Configure pulse accumulator: rising-edge trigger INT3 GPIO-K8 C3 02 03 01
 
I C 0 3
 Configure pulse accumulator: falling-edge trigger INT0 GPIO-K5 C3 02 00 03
 
I C 1 3
 Configure pulse accumulator: falling-edge trigger INT1 GPIO-K6 C3 02 01 03
 
I C 2 3
 Configure pulse accumulator: falling-edge trigger INT2 GPIO-K7 C3 02 02 03
 
I C 3 3
 Configure pulse accumulator: falling-edge trigger INT3 GPIO-K8 C3 02 03 03
 
I R 0
 Read pulse accumulator INT0 GPIO-K5 C3 03 00
 
I R 1
 Read pulse accumulator INT1 GPIO-K6 C3 03 01
 
I R 2
 Read pulse accumulator INT2 GPIO-K7 C3 03 02
 
I R 3
 Read pulse accumulator INT3 GPIO-K8 C3 03 03
 
I 0 0
 Clear pulse accumulator INT0 GPIO-K5 C3 04 00
 
I 0 1
 Clear pulse accumulator INT1 GPIO-K6 C3 04 01
 
I 0 2
 Clear pulse accumulator INT2 GPIO-K7 C3 04 02
 
I 0 3
 Clear pulse accumulator INT3 GPIO-K8 C3 04 03
 
I S 0 xx
 Set pulse accumulator count xx = 0 to 255 INT0 GPIO-K5 C3 05 00 xx
 
I S 1 xx
 Set pulse accumulator count xx = 0 to 255 INT1 GPIO-K6 C3 05 01 xx
 
I S 2 xx
 Set pulse accumulator count xx = 0 to 255 INT2 GPIO-K7 C3 05 02 xx
 
I S 3 xx
 Set pulse accumulator count xx = 0 to 255 INT3 GPIO-K8 C3 05 03 xx
 


7) 结论
这些实例简要介绍了怎样使用MAX1233/MAX1234的主要功能模块,利用简化的控制台C++程序来测量并控制硬件。如果需要深入了解详细信息,请参考MAX1233/MAX1234数据资料。
Windows是Microsoft Corp.的注册商标。
SPI是Motorola, Inc.的商标。
3M是3M Company的注册商标。

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。