2015年5月12日 星期二

關於 Raspberry Pi 的UART


Raspberry Pi 可不可以使用兩組UART ?


根據BCM2835 ARM Peripherals, SoC 晶片共有2組UART
  1. 一個是完整功能 PL011 (UART0). 即 Pi 目前內建Linux driver /dev/ttyAMA0.
  2. 另一個是mini Uart (UART1). 驅動程式可參考 Mini UART driver for Raspberry Pi

無法同時用到這2組UART


不過 Raspberry pi 不論是Pi b+或 Pi 2, 其40-pin GPIO Header, 拉的是GPIO 0~GPIO 26, 而其中可作為UART RX/TX功能的是GPIO14及GPIO15 , 這2隻腳分別是Pin 8及Pin 10。

在BCM2835 ARM Peripherals手冊 (page 102), 6.2 GPIO Alternation Function Assignment,

GPIO 14 : ALT0 是TX0, ALT5是TX1
GPIO 15 : ALT0 是RX0, ALT5是RX1

換言之, UART RX及TX 出的pin 腳, 不是來自PL011 (UART0) 就是mini Uart (UART1), 所以是不能同時用到這2組UART的。因此,在 pi B+ or Pi 2 你只能加其他IC或模組 , 如PL2303 USB to UART, 才能多一個 COM port (/dev/ttyUSB0)。

不然就是要買Pi Compute Module (電路圖), 這板子 GPIO出比較多而且2組UART都可以使用
, mini Uart (UART1) 可以去選擇用 GPIO 32 (TX1) 及 GPIO 33 (RX1) 來傳輸。
而 Mini UART driver for Raspberry Pi 就是以Pi Compute Module來實驗的

其他相關文章: 
Raspberry Pi bare-metal: mini UART 中斷範例





沒有留言 :

張貼留言