This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、我正在尝试使用 FDC1004和 MSP432来检测液位。 我购买了 EVM 板并断开了 FDC1004、以便将其连接到 MSP432。 在过去的一周里、我一直在尝试通过 I2C 协议将信息从1004传输到 MSP432、但我运气不好。 我已经下载 了 Energia 的示例项目、并尝试立即运行该项目(使用 Wire 库)。 代码似乎正在挂起
wire.endTransmission ();
•我n‘t 可能存在 I2C 问题、因此我在 Energia 中运行了 I2C 扫描、并确定它没有找到1004。 奇怪的是、我尝试在 Arduino Uno 上运行 I2C 扫描、有时它能够在地址0x50处找到 FDC1004 。
• 我在 SDA 和 SCL 上都有10k 上拉电阻器、电压达到3.3V
•我连接了 MSP432的 FDC1004 SDA->6.4和 SCL->P6.5 (我也在 MSP432上尝试了1.6和1.7、运气不好)
•FDC1004连接到 MSP432 3.3V
•我在标准试验电路板上执行所有这些操作
如果有人能为我提供帮助、我将不胜感激、我仍然是 I2C 和 TI 的新手。 我愿意使用其他软件、任何东西都可以使其正常工作! 期待收到回复。
Dan、
在深入了解您的问题之前、请先确认几个初步事项:
FDC1004 EVM 原理图显示了 SDA 和 SCL 线路上的~5k 电阻器。
很难想象值差异可能是问题所在、但请将电路板的值更改为4.99k、以查看其是否有用。
2.数据表提供了以下内容:
8.5.1串行总线地址
为了与 FDC1004通信、主器件必须首先通过一个从器件地址字节来寻址从器件。 从器件地址字节包含7个地址位和一个指示打算执行读取或写入操作的方向位。 FDC1004的7位地址为(MSB 在前):B101 0000。
您的协议是否遵循此标准?
此致、
John
尊敬的 John:
1) 1)我现在碰巧在右侧有4.7K 电阻器、这些电阻器就足够了吗? 不要认为我有确切的值(4.99k)。
2) 2)我打开了与 Wire.begin 的 I2C 连接,然后每次我想通信时我都做 Wire.beginTransmission(0x50)。 这是该数据表中的地址。 我想确定、所以我运行了下面的代码(简单的 I2C 扫描仪)、但在任何地址都找不到1004。 但是、当我在 Arduino Uno 上运行扫描仪时、扫描仪将会运行(如果我将导线固定在试验电路板上、则必须正确)。 这使我认为我的连线有问题吗? 但我一生都不能找到它的位置。
#include void setup(){ Wire.begin(); Serial.begin(9600); while (!Serial);// Leonardo:Wait for serial monitor Serial.println("\nI2C Scanner "); } void loop(){ int nDevices=0; Serial.println("Scanns"); for (字节地址=1;地址<127;++address){ // i2c_scanner 使用的返回值 // Write.endTransition 以查看是否 //器件确实确认了地址。 Wire.beginTransmission(address); 字节错误= Wire.endTransmission (); 如果(ERROR = 0){ serial.print ("I2C 器件位于地址0x"); if (地址< 16){ serial.print ("0"); } serial.print (address、hex); serial.println("!"); ++n 设备; } 否则{ serial.print ("错误"); serial.print (错误); serial.print ("位于地址0x"); if (地址< 16){ serial.print ("0"); } serial.println (地址、十六进制); } } 如果(nDevices =0){ serial.println ("找不到 I2C 设备\n"); }否则{ serial.println ("don\n"); } 延迟(2000);//等待5秒进行下一次扫描 }
我还在 SCL 和 SDA 线路上放置 LED、以查看何时传递数据。 当连接到 Arduino 时、它们似乎正常闪烁以指示正在传输数据、但是当连接到 MSP432时、它们始终处于关闭状态。
Dan、
您的 MSP432能否通过 I2C 与其他电路板通信?
尊敬的 John:
我使用 Arduino 板测试了这种情况。
充当主设备的 Arduino 可将432作为从设备。 但充当主设备的432无法找到 Arduino 作为从设备。
Dan、
在与同事进行交流之后、这听起来像是 MSP432的问题。
我将把这个主题转移到 E2E 论坛、以便专家帮助解决这个问题。
感谢您的耐心等待。
您好、感谢您的帮助! 我会继续检查、并尝试在周末做更多工作。 希望我能获得一些新的工作机会。