幾個重要的Chip分別如下:
Main System on Chip: MT7697官方網頁
NFC Controller: PN532
Display: Waveshare 2.13" 官方網頁
Secure Element: SLE97
MT7697的周邊是基於LinkIt 7697(官方網頁) 開發版所做的二次開發,所以使用上如同LinkIt 7697
接下來分幾個子系統來說明
Waveshare 2.13" e-Paper 解析度為250x122的黑白雙色的電子紙且支援區域更新 和MT7697的接線圖如下表:
E-Paper pin | MT7697 pin | Arduino |
---|---|---|
Busy | GPIO34 | 4 |
RST | GPIO33 | 5 |
D/C | GPIO36 | 7 |
/CS | GPIO32 | 10 |
SCK | GPIO31 | 13 |
MOSI | GPIO29 | 11 |
電子紙的Graphics Library使用的是Adafruit GFX (Link)
Adafruit GFX提供了幾個畫圖的操作API,不過要注意的是只有黑白兩色
而底層的電子紙控制則是用GxEPD Library(Link)
另外就是由於電子紙的全域更新速度較慢,這個型號另外提供了一個區域更新的方法,也就是只更新部分區域的畫面
但是要注意的是區域更新會有殘影留在螢幕上,所以幾次的區域更新之後需要一次全域更新去清除殘影。全域更新大約需要6s,而區域更新只需要<0.5s
也是用Adafruit的Library (Link) 和MT7697的接線圖如下表:
PN532 | MT7697 pin | Arduino |
---|---|---|
I2C | I2C | I2C |
RST | GPIO60 | 17 |
INT | GPIO0 | 2 |
待Update 和MT7697的接線圖如下表:
SLE97 | MT7697 pin | Arduino |
---|---|---|
SPI | SPI | SPI |
CS | GPIO39 | 3 |
由於MT7697 IO不夠用了,所以矩陣鍵盤使用的是類比的方式, 藉由按鈕按下後所產生的不同組合的電阻產生的電壓去判定是哪一個按鈕被按下。 由於MT7697內建的ADC有4096階,使用上問題不大。 按鈕 A,B,C,0-9,DEL,ENTER都在Array裡面。
Button Array | MT7697 pin | Arduino |
---|---|---|
Analog Voltage | GPIO58 | A1 |
由於MT7697設計上需要一個Bootstarp pin去切換Bootloader or User code, 所以GPIO37的Button在剛開機時作為強制切進Bootloader的方法,開機後就是一個普通的按鈕 另外一個按鈕則是RST按下之後MT7697會強制Reset。
Function Name | MT7697 pin | Arduino |
---|---|---|
RST | RST | N/A |
Button D | GPIO37 | 6 |
切進Bootloader的方式為:按下Reset和Button D,放開Reset之後放開Button D即可。 另外要注意的是,Button D按下之後 GPIO37是高電位,放開則低電位,所以邏輯上是按下為1,放開為0。
Name | Function |
---|---|
USR | GPIO57,Arduino pin A0 |
RX | USB to UART RX訊號燈 |
TX | USB to UART TX訊號燈 |
Power | 電源指示燈 |
USR Led是一個簡單的LED接在MT7697上,IO拉高點亮,拉低則關閉。 另外Power LED旁邊有一個焊接的Jumper,可以把這個Jumper斷開以省電。