ST意法半导体
直播中

吴湛

10年用户 756经验值
擅长:可编程逻辑
私信 关注
[问答]

为什么VL53L3CX-Satel套件运行i2cdetect时地址会不断变化呢

我得到了 VL53L3CX-Satel 套件,它的行为非常奇怪。
我连接了 i2c 引脚(SDA 和 SCL)、GND 和 VDD(3.3V)。
每次运行 i2cdetect 时我都会得到不同的地址:
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          03 -- -- 06 -- -- 09 0a -- -- 0d -- --
  • 10: -- 11 -- 13 -- 15 16 17 18 -- 1a -- 1c 1d -- --
  • 20: -- -- 22 -- -- 25 -- -- -- -- -- 2b 2c -- 2e 2f
  • 30: -- -- 32 33 34 35 -- 37 -- -- 3a 3b 3c -- 3e --
  • 40: -- -- 42 43 -- 45 46 47 -- -- -- -- 4c -- -- 4f
  • 50: 50 51 -- -- -- -- -- -- -- -- -- 5b -- -- 5e --
  • 60: -- -- -- -- 64 65 -- -- 68 69 6a -- 6c -- -- --
  • 70: -- -- -- -- 74 -- -- 77
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          -- -- -- 06 07 08 09 -- 0b 0c -- -- --
  • 10: -- -- 12 13 -- -- -- 17 18 19 -- -- 1c 1d -- --
  • 20: -- 21 22 -- 24 -- 26 -- 28 29 2a 2b 2c -- -- 2f
  • 30: -- -- -- 33 -- 35 -- -- 38 39 -- -- 3c 3d 3e --
  • 40: -- 41 -- 43 44 45 46 47 -- 49 -- 4b -- -- 4e 4f
  • 50: -- 51 -- 53 -- -- 56 57 -- 59 -- 5b -- -- -- --
  • 60: 60 -- 62 -- -- -- 66 -- 68 69 6a -- -- -- -- --
  • 70: 70 71 72 73 74 -- -- 77
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          -- 04 -- -- -- -- 09 0a -- -- -- 0e --
  • 10: 10 -- 12 13 14 15 16 -- -- 19 1a -- -- -- 1e --
  • 20: 20 21 -- -- -- 25 26 -- 28 -- -- -- -- -- 2e --
  • 30: -- 31 -- 33 -- 35 -- 37 -- -- -- 3b 3c 3d 3e 3f
  • 40: 40 -- 42 -- -- -- -- -- -- -- -- -- 4c -- 4e --
  • 50: -- 51 -- -- -- 55 -- -- -- 59 -- -- -- 5d -- --
  • 60: -- -- 62 63 -- 65 66 67 -- -- -- -- -- 6d 6e --
  • 70: 70 -- -- -- 74 75 76 --
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          -- -- 05 -- -- -- -- -- -- -- 0d 0e --
  • 10: 10 11 12 -- 14 15 -- -- 18 -- -- -- 1c 1d 1e --
  • 20: -- 21 22 -- 24 -- -- -- 28 29 -- -- 2c 2d -- --
  • 30: 30 -- 32 -- 34 35 36 37 -- 39 -- -- 3c -- 3e 3f
  • 40: -- 41 -- -- 44 45 -- -- -- -- -- -- -- -- -- --
  • 50: -- 51 -- 53 -- 55 -- -- -- 59 -- -- -- 5d -- --
  • 60: -- -- -- -- -- -- 66 -- 68 -- -- -- -- -- -- --
  • 70: 70 -- 72 -- -- -- -- 77
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          -- 04 -- 06 07 -- -- -- -- 0c -- 0e --
  • 10: 10 11 12 -- 14 -- 16 -- -- 19 -- -- -- 1d 1e 1f
  • 20: 20 21 -- -- 24 25 -- 27 28 -- -- -- -- -- -- --
  • 30: -- -- 32 33 -- 35 36 -- 38 -- 3a -- -- -- 3e --
  • 40: -- 41 42 -- 44 45 -- -- -- 49 4a -- -- -- -- 4f
  • 50: 50 51 52 -- -- 55 -- 57 -- 59 -- -- -- 5d -- 5f
  • 60: -- 61 62 -- -- 65 -- 67 -- 69 6a 6b 6c -- 6e --
  • 70: -- -- -- -- -- 75 -- --
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          03 04 -- -- -- 08 09 0a -- -- 0d -- --
  • 10: 10 -- 12 -- 14 -- -- -- 18 19 -- -- -- 1d -- 1f
  • 20: -- 21 22 -- 24 -- 26 -- -- -- -- -- 2c -- 2e 2f
  • 30: -- -- -- 33 -- -- 36 -- 38 39 -- -- 3c -- 3e 3f
  • 40: -- -- -- -- -- 45 46 -- 48 49 -- -- 4c 4d -- --
  • 50: -- 51 -- 53 -- -- -- -- -- 59 -- -- -- -- 5e --
  • 60: 60 61 62 -- 64 -- -- -- -- -- 6a 6b 6c 6d 6e --
  • 70: 70 71 72 -- 74 -- 76 --

我测试了其他 IC 的 i2c 端口,它工作正常。
我自己也为 VL53L3CX 制作了一个分线板,没有用于电平转换的 TXS0108EPWR,它每次都检测得很好(检查下面的输出)。
我的电路板的原理图也在下面。
  • devboard:~ $ i2cdetect -y 1
  •      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  • 00:          -- -- -- -- -- -- -- -- -- -- -- -- --
  • 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  • 20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
  • 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  • 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  • 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  • 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  • 70: -- -- -- -- -- -- -- --


注意:芯片是VL53L3CX,不是VL53L1。引脚是等效的。
我仍然在软件方面苦苦挣扎,但至少它被正确检测到了。
我测试了所有我能想到的让 Satel 板工作的东西,甚至添加了上拉电阻(我知道我的开发板已经有了)。没有任何效果。
任何指针?

回帖(1)

张玲

2022-12-28 14:01:07
有两个卫星板 - 填充和未填充。我猜你在使用电平转换器填充的电路板时遇到了麻烦。而且它们会干扰您电路板上已有的组件。
解决方法很简单。在穿孔处将卫星板分成两半(在移除 0 欧姆电阻器后)并焊接到板末端的手指上。
举报

更多回帖

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