spi_lm70llp : LM70-LLP 并口到 SPI 适配器¶
支持的板/芯片
National Semiconductor LM70 LLP 评估板
- 作者
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 提供的帮助解释电路原理图。