摘要:MAX1441為雙通道接近檢測與觸摸屏傳感器,本文介紹了在產(chǎn)品開發(fā)過程中如何使用其接口固件,以簡化MAX1441的性能評估。本文假設用戶已熟悉MAX1441及其評估系統(tǒng)MAX1441EVSYS,了解MAX-IDE集成開發(fā)環(huán)境或類似工具,能夠把應用固件下載到MAX1441EVSYS閃存。關(guān)于接近檢測與觸摸屏傳感器的更多信息和詳細規(guī)范,請參考MAX1441數(shù)據(jù)資料;關(guān)于MAX1441EVSYS的使用,以及如何利用MAX-IDE將程序下載到MAX1441閃存,請參考MAX1441EVSYS數(shù)據(jù)資料。?
?
MAX1441的SPI接口固件為獨立的程序單元,包含初始化程序,用于設定MAX1441寄存器的初始值(包括范圍、轉(zhuǎn)換速率、激勵頻率),程序需要通過USB/JTAG口裝載到MAX1441,這是唯一需要固化到閃存內(nèi)的程序,供嵌入式內(nèi)核運行。
CMAXQUSB+控制器板用于連接MAX1441評估板(MAX1441EVSYS+)與計算機,可從Maxim的網(wǎng)站下載驅(qū)動程序,請選擇與操作系統(tǒng)相匹配的USB驅(qū)動程序。
圖1給出了系統(tǒng)各部件之間的連接,可以利用另一USB口提供電源,用于主板上MAX1441的供電。用戶接口程序位于PC機,用戶可通過MAX1441控制臺(MAX1441_Console)的命令窗口方便地操作MAX1441的通信。MAX1441與CMAXQUSB+板之間的通信速率固定為31.25kHz。
圖1. 硬件系統(tǒng)框圖
硬件安裝
確認MAX1441評估板的JU105位于2–3。
將SPI接口程序Interface_Rxx裝載到MAX1441閃存(使用MAX-IDE或類似工具)。
移除跳線JU120至JU124。
用電纜連接CAMXQUSB接口板和MAX1441評估板。
通過外部電源或USB為MAX1441評估板供電:
a.如果通過USB口供電,則需要2條USB電纜:一個用于CMAXQUSB板的供電和通信,另一個用于MAX1441供電。
b.如果通過外部電源供電,請將跳線JU4置于2–3位置,電源電壓在6V至28V之間。
利用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內(nèi)部寄存器的狀態(tài),表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 ataddress | 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 |
寫入一個內(nèi)部寄存器時,必須先發(fā)送寫命令“w”;同樣,讀取一個內(nèi)部寄存器時,也必須先發(fā)出讀命令“r”,大小寫均可。除了上表列出的指令以外,其它命令都會在MAX1441_Console窗口產(chǎn)生錯誤消息,而且不會產(chǎn)生任何操作。MAX1441_Console向CMAXQUSB板每發(fā)送一次讀/寫命令,MAX1441EVSYS板的片選(CS)線就會重復一次低電平/高電平循環(huán),片選周期取決于所請求的數(shù)據(jù)點數(shù)。
圖2. MAX1441_Console窗口
寫命令
寫命令格式為w Address Value,此處Address是表2給出的寄存器地址,Value是需要寫入Address指定寄存器的內(nèi)容。例如,命令w 5 2把“2”寫入C01寄存器,Value為hex格式。
讀命令
讀命令格式為r Address #ofData #ofCS-cycles,此處Address是要讀取的寄存器地址,#ofData為一個CS周期對Address指定寄存器的讀取次數(shù),#ofCS-cycles為CS的循環(huán)次數(shù)。
在一個CS周期中,最多可以對MAX1441進行62次的16位數(shù)據(jù)讀取,每讀取一次16位數(shù)據(jù)需要大約600μs的時間。每個命令最多規(guī)定1000次CS循環(huán)。參數(shù)#ofData和#ofCS-cycles適用于所有寄存器,不過,CRSLT1H、CRSLT1L、CRSLT2H和CRSLT2L等寄存器使用比較頻繁。delay命令用來檢測MAX1441的長期工作性能,在delay命令中規(guī)定的value值(秒數(shù))在每次CS循環(huán)后有效。對讀命令的響應格式為Time,data#,?cycle#,?Data,此處Time為測試開始之后的秒數(shù),data#是對應于#ofData的計數(shù)器,cycle#是對應于#ofCS-cycle的計數(shù)器。表2列出了可以通過MAX1441_Console讀/寫的寄存器及對應地址,請參閱MAX1441數(shù)據(jù)資料獲得各寄存器的詳細定義和功能。
表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 |
“??”表示任何非法地址,合法地址可以是十進制(DEC)或十六進制格式(HEX)。
對任何非法地址(例如“ab”),命令將返回前次數(shù)值。0xab是非法地址,返回值為0xABAB。
將數(shù)據(jù)存入文件
通過接口傳輸?shù)乃袃?nèi)容都可以保存到.txt日志文件。發(fā)送logfile on命令,將數(shù)據(jù)存入文件,發(fā)送logfile off命令終止數(shù)據(jù)保存。創(chuàng)建日志文件名為“MAX1441.txt”,每次發(fā)送logfile on命令時被清除。例如,圖4是命令r 0 3 4的日志文件內(nèi)容。要避免日志中的有用數(shù)據(jù)被覆蓋,可以在發(fā)送新的logfile on命令前更改日志文件的名稱。
圖3. 日志文件示例
圖4. MAX1441EVKIT與CMAXQUSB板之間的接口
評論
查看更多