86Duino EduCake 硬體說明
簡介
86Duino EduCake 是一款 x86 架構的開源微電腦學習機,內部採用高性能 32 位 x86 相容的處理器 Vortex86EX,可以相容並執行 Arduino 的程式,特點是內建麵包板,使用者不需經由焊接過程,即可快速將許多電子元件、感測器及週邊配件加以連接或置換並進行電子實驗。其內建的特殊電路保護設計,能防止錯誤操作而導致燒毀 I/O 接腳。除此之外,EduCake 外殼是由堅固的金屬和麵包板組合而成,重要的電子零件皆被包覆其內,周圍留下常用的 I/O 接口,使得 EduCake 不容易受到外力破壞,適合讓使用 Arduino 、微電腦及嵌入式系統的初學者、設計師、業餘愛好者、任何有興趣的人,打造自己專屬的電子互動裝置。
硬體規格
- CPU 處理器:x86 架構 32 位元處理器 Vortex86EX,主要時脈為 300MHz(可用 SysImage 工具軟體超頻至最高 500MHz)
- RAM 記憶體:128MB 工規 DDR3 SDRAM
- Flash 記憶體:內建 8MB,出廠已安裝 BIOS 及 86Duino 韌體系統
- 1 個 10M/100Mbps 乙太網路 RJ-45 接口
- 2 個 USB Host 接口(Type A USB 母座)
- 1 個 SD 卡接口
- 1 個音效輸出接口,1 個麥克風輸入接口(內建 Realtek ALC262 高傳真音效晶片)
- 1 個標準 RS232 串列埠
- 1 個電源輸入接口( 5V輸入,Type B micro-USB 母座,同時也是燒錄程式接口),具有 1 個電源開關和 1 個電源指示燈
- 26 根數位輸出/輸入接腳(GPIO)
- 3 個 TTL 序列接口(UART)
- 2 個 Encoder 接口
- 6 根 A/D 輸入接腳
- 9 根 PWM 輸出接腳
- 1 個 I2C 接口
- 1 根 5V 電壓輸出接腳, 1 根 3.3V 電壓輸出接腳
- 1 根 RESET 接腳
- 長:78.6mm,寬:78mm,高:28.3mm
- 重量:280 g
- 機上麵包板規格:
EduCake 機上麵包板布局與一般市售麵包板相同,孔位間距為 2.54mm,如下圖:
麵包板內部的連接方式如下圖,圖中黃線代表彼此相連的接點:
I/O 接口布局
EduCake I/O 接口分布於兩側與麵包板(如下圖),其上安排了多種常用的 I/O 接口,我們將在後面依序說明。
EduCake 正面
EduCake 反面
麵包板
EduCake 麵包板左側與右側是具有多功能的 I/O 接口(如下圖紅框),而中央則是可以接上 DIP 電子零件的實驗區域(如下圖黃框)。
為了讓初學者比較容易上手,我們將 EduCake 麵包板上的 I/O 接口排列順序設計成 Arduino 相容,左下圖是 Arduino Leonardo 實體圖,兩圖中紅框內的 I/O 接口排列順序相同。
I/O 接口功能簡介
一、電源系統
EduCake 的電源系統直接使用外部的 5V 電源輸入,內部再經過穩壓晶片後產生系統需要的電壓。另外有一個 ON/OFF 開關可讓使用者手動開關系統電源。電源輸入端和電源開關的電路圖如下:
雖然 EduCake 的電源系統相當簡單,但由上圖可看到我們仍加入了一個突波保護二極體強化電源的保護,可防止電源開關打開瞬間產生的突波(火花)影響內部重要電子零件。
電源的連接方法
EduCake 的電源輸入為 5V,您可以將電源輸入接到 PC 的 USB 端,或者接到 USB 電源供應器(例如:智慧型手機的 USB 行動電源或是 USB 充電器),如下所示。
準備一條 micro USB 轉 Type A USB 的轉接線(例如:智慧型手機的傳輸線,如左下圖),然後將 EduCake 連接到電腦的 USB 接口即可:
或將 EduCake 連接至 USB 電源供應器(如智慧型手機的充電器),然後使用家中的電源供電,如下圖:
請注意,當 EduCake 沒有外接任何裝置(如 USB 鍵盤滑鼠)時,至少需要 400mA 的電流才能正常運作;一般 PC 或筆電的 USB 2.0 接口可提供最高 500mA 的電流,足以供應 EduCake 運作,但如果 EduCake 接上外部裝置(包含 USB 裝置及麵包板上接到 5V 及 3.3V 輸出的實驗電路),由於外部裝置會消耗額外電流,使得整體消耗電流可能超出 500mA,這時用 PC 的 USB 2.0 接口供電便顯得不適當,可以考慮改由能提供 900mA 的 USB 3.0 接口或可提供更高電流的 USB 電源供應器來為 EduCake 供電。
註:有些老舊或設計不佳的 PC 及筆電在 USB 接口上設計不太嚴謹,能提供的電流低於 USB 2.0 規範的 500mA,用這樣的 PC 為 EduCake 供電可能使 EduCake 運作不正常(如無法開機或無法燒錄程式),此時應換到另一台電腦再重新嘗試。
開機
將 EduCake 電源接口右邊的開關,切換至 “ON”:
當電源指示燈亮起時,代表電源供應正常, EduCake 開始運作:
電源輸出接口
EduCake 在機上麵包板右半部配置有兩根電源輸出接腳,分別是 5V 和 3.3V,可做為麵包板上實驗電路的電壓源。其中 5V 輸出和電源輸入是共用的,換句話說,兩者在電路上是連接在一起的,可輸出的電流量由外部電源輸入決定;而 3.3V 則是經過穩壓晶片(regulator)而來,最高可輸出 400mA。
註:舉例來說,假設您使用 1000mA 的 USB 變壓器做為電源輸入,則扣除 EduCake 本身消耗的 400mA,5V 輸出接腳可提供最高 600mA 輸出;至於 3.3V 輸出接腳,不論外部電源能提供多大的電流輸入,都只能輸出最高 400mA 電流。
下圖是 5V 和 3.3V 的輸出接腳位置:
為了避免 5V 和 3.3V 輸出接腳通過太大的電流而燒毀內部電子零件,它們也各自內建了 1 安培的保險絲做保護:
請注意,若您在麵包板上的實驗電路需要消耗超過 1A 的大電流(例如直流馬達驅動電路),我們建議您改以一部額外的電源供應器或電池獨立供電給麵包板上的負載(額外電源的地線與麵包板上的 GND 連接在一起即可),避免使用 5V 和 3.3V 輸出接腳來為大電流電路供電。
二、SD 卡插槽
EduCake 支援最大 32GB SDHC 的 SD 卡,不支援 SDXC。
請注意,如果您打算在 SD 卡中安裝 Windows 或者 Linux 作業系統, SD 卡本身的存取速度將直接影響作業系統的開機時間與執行速度,建議使用 Class 10 的 SD 卡較為合適。
我們另外提供了 SysImage 工具程式,讓您在 SD 卡上建立可開機的 86Duino 韌體系統。讓 86Duino 韌體系統在 SD 卡上執行,可帶來一些好處,請參考更進一步的說明。
開機順序
EduCake 開機時,BIOS 會到三個地方去尋找可開機磁碟:內建的 Flash 記憶體、SD 卡、USB 隨身碟。搜尋順序是 SD 卡優先,然後是 USB 隨身碟,最後才是 Flash。內建的 Flash 記憶體在出廠時,已經預設安裝了 86Duino 韌體系統,如果使用者在 EduCake 上沒有插上可開機的 SD 卡或 USB 隨身碟,預設就會從 Flash 開機。
註:請注意,當您插上具有開機磁區的 SD 卡或 USB 隨身碟,請確保該 SD 卡或 USB 隨身碟上已安裝 86Duino 韌體系統或其它作業系統(例如 Windows 或 Linux),否則 EduCake 將因找不到作業系統而開機失敗。
SD 卡插入方向
請參考右下圖,將 SD 卡正確的插入 EduCake。
三、GPIO 接腳(數位輸出/輸入接腳)
EduCake 上的 GPIO 接腳位於麵包板兩側,為 0 ~ 20、31、32、42、43、44,共 26 支腳,如下圖。在 86Duino Coding 開發環境內,您可以呼叫 digitalWrite 函式在這些腳位上輸出 HIGH 或 LOW,或呼叫 digitalRead 函式來讀取腳位上的輸入狀態。
每個 GPIO 都有輸入和輸出方向,您可以呼叫 pinMode 函式來設定方向。當 GPIO 設定為輸出方向時,輸出 HIGH 為 3.3V,LOW 為 0V,每根接腳電流輸出最高為 16mA。當 GPIO 為輸入方向時,輸入電壓可為 0 ~ 5V。
EduCake 的每根 GPIO 接腳都加上了防靜電與過壓保護的元件,以及 100 歐姆限流保護電阻(如下電路所示),能一定程度防止 GPIO 因不當操作被燒毀。
請注意,保護元件並非萬能,建議使用者操作 GPIO 接腳時仍應小心,過於誇張的錯誤操作(例如錯誤地將 24V 電壓輸入到 GPIO 接腳)仍有燒毀 GPIO 的機會。
EduCake 和 Arduino 類似,部分 GPIO 接腳具有另一種功能,例如:在腳位編號前帶有 ~ 符號,代表它可以輸出 PWM 信號;帶有 RX 或 TX 字樣,代表它可以輸出 UART 串列信號;帶有 EA、EB 、EZ 字樣,代表可以輸入 Encoder 信號。我們各取一組腳位來說明不同功能的符號標示,如下圖所示:
有關 GPIO 的更多說明,可參考基礎硬體觀念。
四、RESET 接腳
EduCake 在麵包板右側提供一根 RESET 接腳,內部連接到 CPU 模組上的重置晶片,在 RESET 接腳上製造一個低電壓脈衝可讓 EduCake 重新開機。 RESET 接腳位置及電路如下所示:
接線範例
使用者可利用 RESET 接腳為 EduCake 加上一個重置按鈕;典型方法是在麵包板插上一個按鈕開關,一端接 GND 另一端接 RESET 腳位,當按下按鈕時,RESET 腳為低電位,CPU 不運作,放開按鈕時, RESET 腳為高電位,使 CPU 重新啟動。重置按鈕的範例如下圖:
五、A/D 接腳(類比輸入接腳)
EduCake 在麵包板上提供 6 通道 A/D 輸入,為 AD0 ~ AD5,位置如下圖所示:
每一個通道都具有最高 11 bits 的解析度,您可以在 86Duino Coding 開發環境下呼叫 analogRead 函式來讀取任一通道的電壓值。為了與 Arduino 相容,由 analogRead 函式讀取的 A/D 值解析度預設是 10 bits,您可以透過 analogReadResolution 函式將解析度調整至最高 11 bits。
請注意,每一個 A/D 通道能輸入的電壓範圍為 0V ~ 3.3V,使用上應嚴格限制輸入電壓低於 3.3V,若任一 A/D 通道輸入超過 3.3V,將使所有通道讀到的數值同時發生異常,更嚴重者甚至將燒毀 A/D 接腳。
接線範例
這個範例中,我們使用 EduCake 偵測 AA 電池電壓。將電池正極接到 AD0 ~ AD5 其中一個,電池負極接到 GND,即可呼叫 analogRead 函式讀取電池電壓。接線如下所示:
有關 A/D 的更多說明,可參考基礎硬體觀念。
六、I2C 接口
EduCake 麵包板上提供 1 組 I2C 接口,為 SDA 和 SCL。您可以在 86Duino Coding 開發環境裡使用 Wire 函式庫來操作 I2C 接口。I2C 接口的位置如下圖:
EduCake 支援 I2C 規範的 standard mode(最高 100Kbps)、fast mode(最高 400Kbps)、high-speed mode(最高 3.3Mbps)三種速度模式與外部設備通訊。根據 I2C 規範,與外部設備連接時,需要在 SCL 和 SDA 腳位加上提升電阻(參考 Wiki 百科上的說明)。提升電阻的阻值與 I2C 速度模式有關,對於 EduCake,在 100Kbps 和 400Kbps 的速度模式下,我們建議加上 4.7k 歐姆的提升電阻;在 3.3Mbps 速度模式下,建議加上 1K 歐姆的提升電阻。
接線範例
我們以 RoBoard Module RM-G146 9 軸慣性感測器為例,示範如何將它和 EduCake 的 I2C 接口連接起來。下圖顯示 RM-G146 的腳位配置:
因 RM-G146 已在 I2C 通道上內建提升電阻,我們不需額外加上提升電阻,只需將 EduCake 的 5V 輸出接腳接到 RM-G146 的 5V 輸入,GND 與 I2C 通道互相對接,便可正確使 EduCake 與 RM-G146 透過 I2C 互相通訊。接線如下圖所示:
七、PWM 輸出
EduCake 提供 9 個 PWM 輸出通道(與 GPIO 共用腳位),分別為 3、5、6、9、10、11、13 、31、32。您可以在 86Duino Coding 開發環境裡呼叫 analogWrite 函式來讓這些接腳輸出 PWM 信號。EduCake 的 PWM 通道允許最高 25MHz 或 32-bit 解析度輸出信號,但為了與 Arduino 相容,預設輸出頻率為 1KHz,預設解析度為 8 bits。PWM 接腳的位置如下圖:
analogWrite 函式輸出的 PWM 頻率固定為 1KHz 無法調整,不過,您可呼叫 analogWriteResolution 函式來提高其輸出的 PWM 信號解析度至 13 bits。
若您需要在 PWM 接腳上輸出其它頻率,可改用 TimerOne 函式庫來輸出 PWM 信號,最高輸出頻率為 1MHz。
有關 PWM 的更多說明,可參考基礎硬體觀念。
八、TTL 串列埠(UART TTL)
EduCake 提供 3 組 UART TTL 接口,分別為 TX (1) / RX (0)、TX2 (16) / RX2 (17)、TX3 (14) / RX3 (15),其通訊速度(鮑率)最高可達 6Mbps。您可以使用 Serial 函式庫來接收和傳送資料。UART TTL 接口的位置如下圖:
請注意,這三組 UART 信號都屬於 LVTTL 電壓準位(0 ~ 3.3V),請勿將 12V 電壓準位的 RS232 接口信號直接接到這些 UART TTL 接口,以免將其燒毀。
九、RS232 串列埠
EduCake 反面有一組 RS232 接口,與外部設備通訊的速度(鮑率)最高可達 1.5Mbps。您可以使用 Serial232 函式庫來接收和傳送資料。其接口實體圖和腳位名稱如下:
請注意,RS232 與 UART TTL 不同的地方,在於 RS232 內部電路有經過一個變壓晶片(transformer)將信號電壓轉換至 -12V 和 +12V(如下圖所示),所以只能與外部的 RS232 裝置連接,不能接到 UART TTL 接口,否則將導致 UART TTL 接口燒毀。
十、LAN 網路接口
EduCake 反面提供一組 LAN 接口,支援 10/100Mbps 傳輸速度。您可以使用 Ethernet 函式庫來接收和傳送資料。在 LAN 接口上,使用了靜電保護晶片以及感應式線圈來保護內部重要的電子零件:
連接範例
將 EduCake 開機後,網路線連接至 LAN 接口,若網路信號正常,不久後即可看到 LAN 接口的指示燈亮起,接口右邊的綠燈恆亮,左邊的橘燈閃爍,如下圖所示:
十一、Audio 接口
EduCake 內建 HD Audio 音效卡,並透過高傳真音效晶片 Realtek ALC262 提供一組雙聲道音效輸出和一組麥克風輸入,内部電路如下圖。音效輸出和麥克風插槽位於 EduCake 正面,孔徑皆為 3.5 mm。在 86Duino Coding 開發環境中,您可以使用 Audio 函式庫來輸出立體音效。
連接範例
將耳機或喇叭連接至正確的接口即可,如下所示:
十二、USB 2.0 接口
EduCake 正面有兩組 USB 2.0 接口,可外接 USB 裝置(如 USB 鍵盤及滑鼠)。在 86Duino Coding 開發環境下,可使用 USB Host 函式庫來存取 USB 鍵盤、滑鼠。當您在 EduCake 上安裝 Windows 或 Linux 作業系統時,USB 接口亦可接上 USB 無線網卡及 USB 攝影機,來擴充無線網路與視訊影像功能。
EduCake 的 USB 接口內建了靜電保護晶片來保護內部重要電子零件,如下圖所示:
十三、Encoder 接口
EduCake 麵包板上有兩組 Encoder 接口,第一組為 EA0 (42) / EB0 (43) / EZ0 (44),第二組為 EA1 (18) / EB1 (19) / EZ1 (20),可用於讀取光學增量編碼器及 SSI 絕對編碼器信號。在 86Duino Coding 開發環境下,您可以使用 Encoder 函式庫來讀取這些接口的數值。每一個 Encoder 接口可允許的最高輸入信號頻率是 25MHz,接口位置如下圖:
連接範例
我們以 AM4096 旋轉編碼器 IC 為例,示範如何將它和 EduCake 的 Encoder 接口連接起來。下圖顯示 AM4096 的腳位配置:
上圖的輸出接腳中,有一組為增量編碼器信號輸出,即 A/B Phase,接腳標示為 A、B 、Ri。這裡我們以 EduCake 第一組 Encoder 接口為例,將 AM4096 的 A、B 、Ri 個別連接到 EA0、EB0、EZ0,然後再將 AM4096 的電源 Vdd 接到 3.3V,AM4096 的 GND 接到 EduCake 的 GND,如此便可正確使 EduCake 與 AM4096 透過 Encoder 接口互相通訊。連接圖如下所示:
附錄一:EduCake 應用教學手冊
- 第一章、EduCake 的入門介紹和 Digital 腳位功能的使用
- 第二章、EduCake 的 Analog I/O 腳位介紹與功能應用
- 第三章、PWM 的使用
- 第四章、EduCake 的 Serial 通訊使用
- 第五章、EduCake 的中斷事件與脈波偵測使用
- 第六章、EduCake 的 I2C 通訊
- 第七章、EduCake 實作自走車
- 第八章、EduCake 使用 LED 矩陣
- 第九章、App Inventor 的基本介紹和藍芽連結功能的使用
- 第十章、音樂播放和混音
- 第十一章、EduCake 控制機械手臂
- 第十二章、EduCake 使用矩陣鍵盤
- 第十三章、EduCake 紅外線收發功能實作
- 第十四章、EduCake 乙太網路功能的使用
附錄二:EduCake 腳位名稱與 Vortex86EX GPIO Ports 的對應關係
附錄三:86Duino EduCake 硬體原始碼
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.