spi_lm70llp : LM70-LLP 並口到 SPI 介面卡

支援的板/晶片

作者

Kaiwan N Billimoria <kaiwan@designergraphix.com>

描述

此驅動程式提供連線 National Semiconductor LM70 LLP 溫度感測器評估板到核心 SPI 核心子系統的膠水程式碼。

這是一個 SPI 主控制器驅動程式。 它可以與 LM70 邏輯驅動程式(“SPI 協議驅動程式”)結合使用(分層在其下)。 實際上,此驅動程式將評估板上的並行埠介面轉換為具有單個裝置的 SPI 匯流排,該裝置將由通用 LM70 驅動程式(drivers/hwmon/lm70.c)驅動。

硬體介面

此特定板(LM70EVAL-LLP)的原理圖可在以下位置的第 4 頁找到

LM70 LLP 評估板上的硬體介面如下

並行

LM70 LLP

.

方向

JP2 接頭

D0

2

D1

3

-->

V+ 5

D2

4

-->

V+ 5

D3

5

-->

V+ 5

D4

6

-->

V+ 5

D5

7

-->

nCS 8

D6

8

-->

SCLK 3

D7

9

-->

SI/O 5

GND

25

GND 7

選擇

13

<--

SI/O 1

請注意,由於 LM70 使用 SPI 的“3 線”變體,因此 SI/SO 引腳使用一種排列方式連線到引腳 D7(作為主輸出)和選擇(作為主輸入),該排列方式允許並口或 LM70 將引腳拉低。 這無法與真正的 SPI 裝置共享,但其他 3 線裝置可以共享相同的 SI/SO 引腳。

此驅動程式中的 bitbanger 例程(lm70_txrx)透過其 sysfs 掛鉤從繫結的“hwmon/lm70”協議驅動程式回撥,使用 spi_write_then_read() 呼叫。 它執行模式 0 (SPI/Microwire) 位碰撞。 然後,lm70 驅動程式解釋生成的數字溫度值並透過 sysfs 匯出它。

一個“陷阱”:National Semiconductor 的 LM70 LLP 評估板電路原理圖顯示,來自 LM70 晶片的 SI/O 線連線到電晶體 Q1 的基極(以及一個上拉電阻和一個到 D7 的齊納二極體); 而集電極接地到 VCC。

解釋此電路,當 LM70 SI/O 線為高電平(或三態且未透過 D7 由主機接地)時,電晶體導通並將集電極切換為零,這反映在 DB25 並口聯結器的引腳 13 上。 另一方面,當 SI/O 為低電平(由 LM70 或主機驅動)時,電晶體截止,並且連線到其集電極的電壓以高電平反映在引腳 13 上。

因此:此驅動程式中的 getmiso 內聯例程考慮了這一事實,反轉了在引腳 13 上讀取的值。

感謝

  • David Brownell 對 SPI 端驅動程式開發的指導。

  • Dr.Craig Hollabaugh 提供的(早期)“手動”位碰撞驅動程式版本。

  • Nadir Billimoria 提供的幫助解釋電路原理圖。