ST意法半导体
直播中

马健

7年用户 222经验值
私信 关注
[问答]

在与EEPROM相同的SPI总线上使用LIS3DH,是否可能?

我打算在与SPI相同的SPI总线上使用LIS3DH。


但在数据表中,它说LIS3DH CS引脚选择SPI或I2C。

当LIS3DH CS引脚为高电平时(LIS3DH处于I2C模式),可以将SPI用于EEPROM吗?

我觉得不行,或者?

#cs #spi #lis2dh #lis2hh

以上来自于谷歌翻译


以下为原文




I'm planning to use a LIS3DH on the same SPI bus as an EEPROM.


But in the datasheet it says the LIS3DH CS pin is selecting SPI or I2C.

So is it possible to use SPI to the EEPROM when LIS3DH CS pin is high (the LIS3DH would be in I2C mode)?

I don't think it would be ok, or?  
  
#cs #spi #lis2dh #lis2hh

回帖(11)

李海洪

2019-5-31 12:37:21
可能。如果在spi模式下设置两个设备,则使用spi模式。如果选择i2c eeprom,请在i2c模式下同时使用。共享公共汽车是常见的做法。

以上来自于谷歌翻译


以下为原文





Possible. If you set both devices in spi mode then use spi mode. If you select i2c eeprom use both in i2c mode. Sharing the bus is common practice.
举报

马知一

2019-5-31 12:49:47
''当LIS3DH CS引脚为高电平时,可以将SPI用于EEPROM(LIS3DH将处于I2C模式)?''
 
 
不,这可能会对你很糟糕(如果还没有)。多个ST器件不使用具有共享SPI总线的兼容庄园中的片选(CS)概念。未选择时,CS为高电平,同时将器件置于I2C模式。因此,如果您向EEPROM发送的任何数据看起来像LIS3DH的I2C从地址,它将驱动SDI线损坏数据到EEPROM。
 
我了解了硬件,不能再在共享SPI总线上使用这些ST设备。

以上来自于谷歌翻译


以下为原文






''So is it possible to use SPI to the EEPROM when LIS3DH CS pin is high (the LIS3DH would be in I2C mode)?''


NO, this will likely go badly for you (if it hasn't already).  Several ST devices don't use the notion of Chip Select (CS) in a compatible manor with a shared SPI bus.  When not selected, the CS is HIGH which also puts the device in I2C mode.  Therefore if any data to you EEPROM happens to look like the LIS3DH's I2C slave address, it will drive the SDI line corrupting data to your EEPROM.

I learned this the hardware and can no longer use these ST devices on a shared SPI bus.
举报

任斌

2019-5-31 13:01:38
我同意你提出的担忧。如果I2C地址匹配,它肯定会失败。
 
 
该LIS2HH芯片组具有CTRL4寄存器,可以启用/禁用I2C模块。
因此,如果我将CS拉低并写入此CTRL4以禁用I2C模块,那么这有助于在CS拉高后避免I2C工作吗?
 
有人可以在早上确认吗?
 
问候,
Shriharsh Datar

以上来自于谷歌翻译


以下为原文





I agree to the concern that you have raised. Definitely it will fail if the I2C address is matched.


This LIS2HH chipset has CTRL4 register which can enable/disable the I2C module.
So if i pull CS low and write to this CTRL4 to disable the I2C module then will this help avoid I2C working after CS is pulled HIGH?

Can someone please confirm at earliet?

Regards,
Shriharsh Datar
举报

曾玲娟

2019-5-31 13:37:49
要在共享SPI总线上使用LIS3DH,必须禁用I2C。
 
可以在每个设备通电后按照以下顺序完成。
 
a =读(0x17)
 
写(0x17,(0x80或a))
 
 
最好的祝福
米罗斯拉夫

以上来自于谷歌翻译


以下为原文





To use LIS3DH on shared SPI bus it is necessary to disable the I2C.

It can be done applying following sequence after each device power on.

a = read(0x17)

write(0x17, (0x80 OR a))


Best regards
Miroslav
举报

更多回帖

发帖
×
20
完善资料,
赚取积分