MAX1441双通道接近检测与触摸屏传感器的SPI接口设计指南

Abstract

MAX1441为双通道接近检测与触摸屏传感器,本文介绍了在产品开发过程中如何使用其接口固件,以简化MAX1441的性能评估。本文假设用户已熟悉MAX1441及其评估系统MAX1441EVSYS,了解MAX-IDE集成开发环境或类似工具,能够把应用固件下载到MAX1441EVSYS闪存。关于接近检测与触摸屏传感器的更多信息和详细规范,请参考MAX1441数据资料;关于MAX1441EVSYS的使用,以及如何利用MAX-IDE将程序下载到MAX1441闪存,请参考MAX1441EVSYS数据资料。

MAX1441的SPI接口固件为独立的程序单元,包含初始化程序,用于设定MAX1441寄存器的初始值(包括范围、转换速率、激励频率),程序需要通过USB/JTAG口装载到MAX1441,这是唯一需要固化到闪存内的程序,供嵌入式内核运行。
CMAXQUSB+控制器板用于连接MAX1441评估板(MAX1441EVSYS+)与计算机,可从Maxim的网站下载驱动程序,请选择与操作系统相匹配的USB驱动程序。
图1给出了系统各部件之间的连接,可以利用另一USB口提供电源,用于主板上MAX1441的供电。用户接口程序位于PC机,用户可通过MAX1441控制台(MAX1441_Console)的命令窗口方便地操作MAX1441的通信。MAX1441与CMAXQUSB+板之间的通信速率固定为31.25kHz。
图1.  硬件系统框图
图1. 硬件系统框图

硬件安装

  1. 确认MAX1441评估板的JU105位于2–3。
  2. 将SPI接口程序Interface_Rxx装载到MAX1441闪存(使用MAX-IDE或类似工具)。
  3. 移除跳线JU120至JU124。
  4. 用电缆连接CAMXQUSB接口板和MAX1441评估板。
  5. 通过外部电源或USB为MAX1441评估板供电:
      a.如果通过USB口供电,则需要2条USB电缆:一个用于CMAXQUSB板的供电和通信,另一个用于MAX1441供电。
      b.如果通过外部电源供电,请将跳线JU4置于2–3位置,电源电压在6V至28V之间。
    1. 利用USB电缆连接CMAXQUSB+接口板和PC。
    2. 运行MAX1441_Console.exe程序。
图4给出了MAX1441EVSYS+和CMAXQUSB板之间的引脚连接。
注:进行SPI接口操作之前,必须首先去除MAX1441评估板上的跳线JU120、JU121、JU122、JU123和JU124。

MAX1441_Console控制台程序的使用

一旦SPI接口固件写入MAX1441闪存,并且建立了SPI通信的硬件连接,启动MAX1441_Console.exe程序,即可通过读、写命令修改并查询MAX1441内部寄存器的状态,表1列出了可供使用的MAX1441_Console命令。
表1. MAX1441_Console控制命令
Command Description Example Return
Init System will search the USB ports with CMAXQUSB board connected Init CMD: init
Found or Not Found message
logfile on Will create and opens a log file "MAX1441log.txt"
(If file already exists, it will be cleared)
logfile on CMD: logfile on
logfile off Will close the MAX1441log.txt file logfile off CMD: logfile off
delay value Will cause a delay of value between each CS-cycle (value is in seconds) Delay 3 CMD: delay 3
w address value Write value to the register specified by address. Value is always in hexadecimal format w 3 22 CMD: w 3 22
r address #ofData #ofCS-cycles Read #ofData times for each #ofCS-cycles from register at address r 0 2 3 CMD: r 0 2 3
Time(s),CS,Data#,Data
0,1,1,0xXXXX
0,1,2,0xXXXX
0,1,3,0xXXXX
0,2,1,0xXXXX
0,2,2,0xXXXX
0,2,3,0xXXXX
写入一个内部寄存器时,必须先发送写命令“w”;同样,读取一个内部寄存器时,也必须先发出读命令“r”,大小写均可。除了上表列出的指令以外,其它命令都会在MAX1441_Console窗口产生错误消息,而且不会产生任何操作。MAX1441_Console向CMAXQUSB板每发送一次读/写命令,MAX1441EVSYS板的片选(CS)线就会重复一次低电平/高电平循环,片选周期取决于所请求的数据点数。
图2. MAX1441_Console窗口
图2. MAX1441_Console窗口

写命令

写命令格式为w Address Value,此处Address是表2给出的寄存器地址,Value是需要写入Address指定寄存器的内容。例如,命令w 5 2把“2”写入C01寄存器,Value为hex格式。

读命令

读命令格式为r Address #ofData #ofCS-cycles,此处Address是要读取的寄存器地址,#ofData为一个CS周期对Address指定寄存器的读取次数,#ofCS-cycles为CS的循环次数。
在一个CS周期中,最多可以对MAX1441进行62次的16位数据读取,每读取一次16位数据需要大约600µs的时间。每个命令最多规定1000次CS循环。参数#ofData#ofCS-cycles适用于所有寄存器,不过,CRSLT1H、CRSLT1L、CRSLT2H和CRSLT2L等寄存器使用比较频繁。delay命令用来检测MAX1441的长期工作性能,在delay命令中规定的value值(秒数)在每次CS循环后有效。对读命令的响应格式为Time, data#, cycle#, Data,此处Time为测试开始之后的秒数,data#是对应于#ofData的计数器,cycle#是对应于#ofCS-cycle的计数器。表2列出了可以通过MAX1441_Console读/写的寄存器及对应地址,请参阅MAX1441数据资料获得各寄存器的详细定义和功能。
表2. 读/写命令的寄存器地址
Address Register Affected By Write Command Register(s) Content Reported in Response to Read Command Description
High Byte Low Byte
0 CRSLT2H CRSLT1H Channel 2 and Channel 1 conversion results (4 LSBs and Overflow bits not reported)
1 CRSLT1H CRSLT1L Channel 1 conversion results
2 CRSLT2H CRSLT2L Channel 2 conversion results
3 CRNG 0x00 CRNG Input capacitance range
4 FEL 0x00 FEL Excitation Frequency
5 FEB 0x00 FEB Bandwidth of the spread spectrum modulation
6 DSB 0x00 DSB Standby conversion rate
7 SSB2 0x00 SSB2 Channel 2 standby conversion rate subdivider
8 CO1 0x00 CO1 Channel 1 capacitance offset
9 CO2 0x00 CO2 Channel 2 capacitance offset
10 AT1H 0x00 AT1H Channel 1 absolute threshold
11 AT2H 0x00 AT2H Channel 2 absolute threshold
12 RT1H 0x00 RT1H Channel 1 rate of change threshold
13 RT2H 0x00 RT2H Channel 2 rate of change threshold
14 PD 0x00 PD Power-Down Register
15 SCT 0x00 SCT Single Conversion Register
16 AFEINRST 0x00 AFEINRST AFE Interrupt Status Register
17 WU1 0x00 WU1 Channel 1 Wake-Up Control Register
18 WU2 0x00 WU2 Channel 2 Wake-Up Control Register
??
(Note 1)
(Note 2)
0x?? 0x?? Unrecognized address; address will be returned by the MAX1441
  1. “??”表示任何非法地址,合法地址可以是十进制(DEC)或十六进制格式(HEX)。
  2. 对任何非法地址(例如“ab”),命令将返回前次数值。0xab是非法地址,返回值为0xABAB。

将数据存入文件

通过接口传输的所有内容都可以保存到.txt日志文件。发送logfile on命令,将数据存入文件,发送logfile off命令终止数据保存。创建日志文件名为“MAX1441.txt”,每次发送logfile on命令时被清除。例如,图4是命令r 0 3 4的日志文件内容。要避免日志中的有用数据被覆盖,可以在发送新的logfile on命令前更改日志文件的名称。
图3. 日志文件示例
图3. 日志文件示例
图4. MAX1441EVKIT与CMAXQUSB板之间的接口
图4. MAX1441EVKIT与CMAXQUSB板之间的接口

作者

Generic_Author_image

Youssof Fathi