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 的“三线”变体,因此 SI/SO 引脚通过一种安排连接到引脚 D7(作为主输出)和选择(作为主输入),这种安排允许并行端口或 LM70 将引脚拉低。 这不能与真正的 SPI 设备共享,但其他三线设备可能会共享相同的 SI/SO 引脚。

此驱动程序中的位操作例程 (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 帮助解释了电路原理图。