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配置成输入时,其内部是否有上拉、下拉还是浮空?配成输出时,是推挽还是开漏?若是开漏输出,内部是否有上拉?
谢谢!
谢谢回答