TI中文支持网
TI专业的中文技术问题搜集分享网站

LM95071CIMF SPI接口温度传感器 使用问题

TI各位专家好:

本人在使用LM95071CIMF SPI接口温度传感器时出现一些问题,想求得答案。

下图是我的系统中使用SPI接口的一个原理示意图:

先介绍一下应用背景:

1、U3是一个ARM核的控制器,U1是ST生产的NOR FLASH,U2是TI生产的温度传感器LM95071CIMF。

NOR FLASH与温度传感器都作为Slave通过SPI接口和控制器(Master)进行通讯,NOR FLASH与温度传感器共用时钟线和数据线。

不同的是,当控制器与NOR FLASH通讯时,使用的是控制器真正的SPI接口(SPI_S、SPI_CK、SPI_D、SPI_Q,但把SPI_D和SPI_Q相连成为SPI_D/Q);

但当控制器与SPI温度传感器通讯时,虽然也使用了控制器的SPI_CK以及SPI_D/Q接口,但这几个接口是与Sensor CS一起被配置成了普通的GPIO接口。也就是

说当控制器与温度传感器通讯时,会把控制器原本的SPI接口(SPI_CK和SPI_D/Q)配置成普通GPIO口来模拟温度传感器SPI时序。

2、系统上电后,控制器会首先使用SPI接口操作NOR FLASH读取其中的代码,操作完成后大约500ms控制器会通过模拟SPI接口读取温度传感器的温度数据。

目前出现的问题:

发现上电后读温度传感器数据,读前16次都会读到错误的温度数据FFFF(控制器读温度数据时,SPI_D/Q接口配置为输入上拉),然后再正确读到一次温度传感器

的工厂ID 800F,再读到若干次错误的温度数据FF03,最后再读到正确的数据。

测试波形见下图:

其中绿色为温度传感器的片选信号,蓝色为时钟信号,红色为数据信号。

我的困惑:

1.按道理说,我读取温度传感器的温度数据时已经至少是上电500ms后的事情了,已经远远大于温度传感器中手册中给出的温度转换时间(最大值228ms),

那么为何还会有读错温度的情况?

2.电路的接法、端口的配置、时序的操作可能存在哪些问题?

3.LM95071的数据D/Q配置成输入时,其内部是否有上拉、下拉还是浮空?配成输出时,是推挽还是开漏?若是开漏输出,内部是否有上拉?

谢谢!

谢谢回答

Kailyn Chen:

首先LM95071的SI/O 内部没有上拉下拉,如果有的话,会在接口定义中有指出。
配置为输出时,为推挽,若是开漏的话,也会在数据手册中给出。

Powerer:

回复 Kailyn Chen:

谢谢。

Kailyn Chen:

回复 Powerer:

另外,关于读取错误温度的问题,您读取的周期每次都是500ms是吗?第一次读不是在上电之后立即读取的吧?
Immediately after power up, the LM95071 will output an erroneous code until the first temperature conversion has completed.

Powerer:

回复 Kailyn Chen:

不是的。
上电后先读取NOR FLASH,然后再读取温度数据。
第一次读温度数据大约是上电后500ms左右,远大于手册中给出的228ms左右的最大转换时间。
读错之后,会以大约50us左右的间隔重新再读,直到读到正确数值,再之后会以大约1s的间隔读温度数据。
这个过程中,首先会读到16次错误数值FFFF,然后读到1次正确数值800F(这个值是制造商ID),再读到不定次数的错误数值FF03,然后再读到正确数值,之后再读就一直正确。
现在我无法理解错误数值的产生原因。
另外之前在程序中,还曾把读错误后再读的时间间隔从50us改大成1s甚至10s,可仍会读到16次连续的FFFF。非常奇怪。

By the way,D与Q直接短接有什么负面影响?

Powerer:

还有其他TI员工可以回答的吗?

Kailyn Chen:

回复 Powerer:

您好,读的过程我认为是没问题的,怀疑sensor 用GPIO模拟的SPI时序这里出了问题。

Kailyn Chen:

回复 Powerer:

您好,读的过程我认为是没问题的,怀疑sensor 用GPIO模拟的SPI时序这里出了问题。

赞(0)
未经允许不得转载:TI中文支持网 » LM95071CIMF SPI接口温度传感器 使用问题
分享到: 更多 (0)