我是 Maker! WiFi995 無線求救信標 (2) 電路設計

WiFi995 電路圖是用 Eagle Design 這套程式所設計出來,早期的版本可以免費使用兩頁的 schematics、雙層板與10x10cm的。這兩年被AutoDesk收購後,板子的大小限制被改成 80cm2。這種軟體很多,WiFi995電路沒很複雜,相信要重畫也不會太難。

功能型電路圖

WiFi995 電路對我這個軟體工程師而言,最難的可能是又外掛了一個 Prolific 的 PL2303SA SOP8 的 USB to UART 控制器。這讓手焊的工作多了不少, Micro-USB 的 female header 手焊也是容易出錯。我想對於專業的layout人員,這些應該都不是問題才對。

Schematics 分成三張圖:

  1. ESP8266
  2. Prolific PL2303SA  USB-UART IC
  3. Power

 

ESP8266

下圖就是三張電路圖裡的主要晶片 ESP8266 的部份,我會先從左上–>左下,右上–>右下的方式來解說。

ESP8266 電路圖

  1. RST 和 GPIO16 要相連,是因為這樣才能支援 deep sleep mode,可以安排 RTC 定時 wake up CPU.
  2. ADC 會接到電池(BAT)分壓後的輸入,這個目的是為了偵測低電壓。ADC 的精度是 0~1V 分成1024,所以可以往回推測 BAT 的電壓是多少。
  3. CH_PD 就 CHIP PowerDown 的縮寫,0就是 Power Down。由於我們沒有運作一半 Power down 的需求,所以就直接接到電源就可以了。這應該是讓 ESP8266 當週邊時,才需要的功能。
  4. VCC 電源上面掛了一顆頗大的電容,有時也會掛 100u 的。會掛這麼大,是因為電池在低電壓時,從 deep sleep 醒來會瞬間需要大電流。電容大一點會增加一點穩定性,避免電流不夠的問題。VCC 的來源有兩種,可以從電池來,也可以從 USB 供電。
  5. TXD / RXD 分別接到 USB-UART 的 RX 與 TX
  6. GPIO5 做為功能開關用,可以切換搜尋模式或信標模式。
  7. GPIO4 會連到 3.5mm AudioJack,利用 GPIO 快速on/off產生方波的聲音。在找尋到目標時,會透過此發出警示聲。
  8. GPIO0 會連接到一個 switch 要更新程式時,會和 GND 接在一起。
  9. GPIO15 要連在 GND,才能進更新或 Flash 開機。

 

Boot Options

 

PL2303SA

PL2303SA 就是惡名昭張的 Prolific PL2303 的 SOP8 版本。這顆 USB-UART 之前在 PC 上被我嫌的要命,電路板上電隨便都被打掛,那時我狂跟同事推 FTDI VCP 的 chip。不過它這款八支腳的,用在這平台上還算穩定,腳少好焊是我考慮的重點…不過它的baudrate比較沒彈性,只支援一些常見的 (115200, 57600, 38400…)。ESP8266 在開機時,會用一組 74880 bps 開機,之後進程式才轉成 115200。所以開機如果有問題,從 USB-UART 是看不出來的,還要用 TTL 的 UART 來看。所以便攜型的,還是用3根腳直接接TTL UART,功能型的才改成 USB-UART 的,有時還是有改 Boot Loader的需求。

 

TTL UART

說了一堆,就來看一下 PL2303SA的接法,其實都是照 reference design 抄的,沒有特別之處 (咦? 怎麼跟軟體一樣 Copy/Paste)。

 

PL2303SA 電路圖

  1. GND: 就GND
  2. TXD: 連接到 ESP8266 的 UART RX
  3. VDD325: 設定 PL2303SA TX/RX 的電壓水平是 3.3 or 5v 的。配合 ESP8266, 我們是使用 3.3v. 所以就接到 3.3v 的輸出 (VDD33),5V 的話就接到5V (VDD5)。
  4. RXD: 接到 ESP8266 的 UART TX
  5. VDD33: PL2303SA 本身是吃5v的,但自身有一個 3.3v 的輸出,可以接到 VDD325 來設定TR的電壓水平。不太確定它為何要這樣做,因為選擇3.3/5應該用接地就可以解了吧。也許這個 3.3v 可以拿供其它裝置的電。
  6. VDD5: PL2303SA的電源供應,5v.
  7. DM, DP: USB 的  D+,D- 。這邊有幾個電阻的阻值都要注意一下,不然 USB 會偵測不到。R1, R3, R4 都有相關。這是設定成 USB 2.0 HS 模式,設定成 1.1 好像是把 R1 接到 DM去。不過也沒空洗板子亂弄,就照著 Reference Design 弄就好了。

右邊的 MicroUSB 母頭: 不用特別接什麼,就焊上 PCB 板就好了 (難焊 Orz…)

電源

電源

WiFi995 有兩種供電方式 (for 功能型),一個是透過電池、一個是透過 USB ,但 USB 沒有替池電池充電的功能。

  1. 左邊的3個方塊是AA電池的示意圖
  2. 中間是USB 5v->3.3v 的 regulator。
  3. 又邊是一個 power switch,用來控制電源。
  4. USB和電池都有一個 diode 來防止逆電流。

 

PCB 結果

上面就是最後產生的 PCB Layout 圖。說起來也慚愧,洗了15版最後還是沒弄好。大小是 59×55 mm,25個過孔(via),4 個洞 (drill)。東西雖然不多,不過手焊的也不輕鬆。大部份都是用0604的SMD,再小我看失敗率會爆增,大一號可能就太佔空間了。洗15版至少就焊了15次,有時還焊兩三片,又沒抽風機、燈又暗…現在想到都懶的再焊了。

 

Gerber

Gerber 是 PCB 送洗時的標準檔。Gerber files 是包含好幾個檔案,正面、背面、線層、文字層等等,看你有什麼需要輸出的,就要給它。從一開始都不會弄到最後的這一版,產生 Gerber 的 Script 變動不大,只有中間新加了一個 VCUT 的部份。但是後來 VCUT 都要多收錢,就沒在弄了。Gerber 主要有幾個檔案:

  1. drd: drill data. Drills + Holes 層
  2. gko: Gerber Keep out. bKeepout 層,那時要做vcut特別加的
  3. cmp: component side. Top + Vias + Pads 層
  4. sol: Soldier side. Bottom + Vias + Pads 層
  5. plc: Silk screen CMP: 正面文字, Dimension + tPlace + tNames + tValues
  6. pls: Silk screen solder: 背面文字, Dimension + bPlace + bNames + bValues
  7. stc: Solder stop mask CMP: 正面範圍, tStop 層。這個沒有很瞭解,可能是正面元件所佔用的範圍
  8. sol: Solderstop mask SOL: 背面範圍, bStop 層。可能是背面元件所佔用的範圍

 

便攜型電路圖

ESP8266 便攜型

WiFi995 便攜型相對於功能型而言,簡化了不少,所以功能型的一直出到了15版,而便攜型只到第8版。低電壓偵測的功能被保留,其它的大部份都被刪去了。僅留下了必需的更新開關、電源開關還有一個電源 LED。電路比較簡單,就不再解說。UART 因為要升級 / debug,所以一定要留。但其實實體上的ESP8266都可透過 PIN HEADER 插拔,其實不留也可以,主要還是為了除錯。

便攜型 PCB

附件

  1. WiFi995 功能型電路圖
  2. WiFi995 便攜型電路圖
  3. Gerber CAM 處理器
  4. 用到的 Eagle Design Libraries (含自創元件)

Leave a Reply