MAX1441为双通道接近检测与触摸屏传感器,本文介绍了在产品开发过程中如何使用其接口固件,以简化MAX1441的性能评估。本文假设用户已熟悉MAX1441及其评估系统MAX1441EVSYS,了解MAX-IDE集成开发环境或类似工具,能够把应用固件下载到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. 硬件系统框图
硬件安装
确认MAX1441评估板的JU105位于2–3。
将SPI接口程序Interface_Rxx装载到MAX1441闪存(使用MAX-IDE或类似工具)。
移除跳线JU120至JU124。
用电缆连接CAMXQUSB接口板和MAX1441评估板。
通过外部电源或USB为MAX1441评估板供电:
利用USB电缆连接CMAXQUSB+接口板和PC。
运行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窗口
写命令
写命令格式为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 |
将数据存入文件
通过接口传输的所有内容都可以保存到.txt日志文件。发送logfile on命令,将数据存入文件,发送logfile off命令终止数据保存。创建日志文件名为“MAX1441.txt”,每次发送logfile on命令时被清除。例如,图4是命令r 0 3 4的日志文件内容。要避免日志中的有用数据被覆盖,可以在发送新的logfile on命令前更改日志文件的名称。
图3. 日志文件示例
图4. MAX1441EVKIT与CMAXQUSB板之间的接口
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !