DEV Community

Cover image for Broadcom APDS 系列晶片
codemee
codemee

Posted on

Broadcom APDS 系列晶片

市面上 APDS9960 感測模組很亂,因為是使用公板,所以很難搞清楚買到的是哪一種晶片,最簡單的分辨方式就是檢查裝置的 ID。以 Sparkfun 的程式庫來說,預設並不會顯示讀到的 ID,你可以修改程式庫這裡,把 ID 印出來比較容易判別。以下是根據規格書所列的個別型號晶片的 ID:

型號 暫存器位址 Device ID 感光 距離 顏色 手勢
APDS9960 0x92 0xAB
0xA8
0x9C
APDS9950 0x12 0x69
APDS9930 0x12 0x39
APDS9901 0x12 0x20
APDS9900 0x12 0x29

有些程式庫只會以 0xAB 和 0x9C 為判斷標準,很可能會誤判認為你接的不是 APDS9960。另外要注意的是,Sparkfun 的程式庫有兩個版本,開頭有 "Sparkfun" 字樣的是 Arduino 會幫你下載安裝的版本,這個版本看起來已經停止更新,請使用沒有 "Sparkfun" 開頭字樣的版本,這個版本的最新修改會將 APDS9960 的三種 ID 都納入,否則一開始初始時就會失敗,請自行下載 .zip 檔安裝。

APDS9960 模組外觀

我目前測試過的 APDS9960 模組外觀:

Device ID 照片
0xA8 Image description
0xAB Image description Image description
  • 板子上的 I2C PU 跳線已經焊接在一起,它會連接 VCC 與板子上的兩個 10K 上拉電阻,這兩個 10K 電阻個別連到 SDA 與 SCL,也就建立了 I2C 必要的上拉電路。如果你買到的模組 I2C PU 跳線沒有焊在一起,你就必須自己額外接上 10K 上拉電阻。
  • 板子上的 PS 跳線也已經焊接在一起,這會把 VL 與 VCC 接在一起,提供接近感測的紅外光發射器的電源。如果你買到的模組 PS 跳線沒有焊在一起,就必須自行接 3.3V 電源供電。

APDS 模組的奇異現象

在我測試上面看到的這些模組時,如果直接接線,像是這樣:

Image description

可以正常運作,不過如果是透過麵包板再接一段線路,像是這樣:

Image description

模組端的 VCC 電壓就會降到 1.9V 或更低,導致無法正常運作。這時只要幫 VL 腳位接上 3.3V 電源,像是這樣:

Image description

就可以正常運作了。

提醒事項

市面上有許多 APDS9960 的模組,購買時要特別留意,我之前就從經買過使用公板的模組,板子上印刷是 APDS9960,但實際上是採用 APDS9900 只有接近感測功能的模組,詳情可參考舊文章

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more