使用LMP90100碰到问题,使用方式如下:3片LMP90100,LMP90100都配置成4路差分,scanmode 3,中断中置位标志位,主循环中读数据,MCU是一片M0.
3片LMP90100的输入(每片4路,共计12路),第一片LMP90100输入是悬空(开路),第二片LMP90100前2路开路,后2路短接,第三片LMP90100输入全部短接,
问题1:
连续工作2、3分钟后,每片LMP90100返回的数据都是某个固定通道的数据,重新上电后有时通道序号有变化,但以第二个通道数据居多,其他3路数据不见了
问题2:
在起初貌似正常的2、3分钟内,SENDIAG_FLAGS寄存器的数据很奇怪,bit7:5出现过101、011、100、000各种组合;bit4:3看着正常的时候居多,基本都是10和00,偶发性的出现过11和01;bit2:0(通道号)偶发性的出错(数据为111).2、3分钟后,所有LMP90100返回的都是自己某个特定的固定通道的数据时,bit7:5固定为101,bit4:3固定为10和00(正常),通道号正常
问题3:
CRC无论如何设置(启动与否),返回的都是FF
问题4:
所有的采集数据都是0或者最大值,但是有些时候通道号是错的(短接的通道,返回的是最大值,开路的通道,返回的是0)
各位,有碰到过类似问题吗?求帮忙分析、解答,感谢!
HG:
猜测你的板级初始化并没有没有按照你的预设场景一样运行
lorne Jiang:
回复 HG:
好建议
验证过几个关键的寄存器,没有问题
稍后去验证全部寄存器
lorne Jiang:
回复 HG:
发现以下几个寄存器设置有问题:
1、SPI_HANDSHAKECN_REG,设置数值是0x09,但是读回来的数据不对,0或者0xff
2、GPIO_DIRCN_REG,设置数值是0x0f,但是读回来的数据是0x4f
3、CH0_INPUTCN_REG,设置数值是0x81,但是读回来的数据是0xff
其他寄存器都对,很奇怪,全部寄存器设置完后,单独设置这几个寄存器也不对(顺序就是按1、2、3设置)
求指教,感谢!
lorne Jiang:
回复 HG:
顶一顶
问题还没有解决
lorne Jiang:
回复 HG:
发现了新问题
之前的问题解决,不知道什么原因,3片采集板的一片损坏,无论如何都配置错误,替换掉OK
新问题:
每个板子的第一个通道采集到的一直是0x7fffff,部分寄存器配置如下:
#define TI_LMP90100_BGCALCN_REG_VALUE (0x00)
#define TI_LMP90100_SPI_DRDYBCN_REG_VALUE (0x83)
#define TI_LMP90100_ADC_AUXCN_REG_VALUE (0x20)
#define TI_LMP90100_CH_SCAN_REG_VALUE (0xD8)
#define TI_LMP90100_CH0_INPUTCN_REG_VALUE (0x81)
#define TI_LMP90100_CH0_CONFIG_REG_VALUE (0x1D)