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.

[参考译文] LAUNCHXL2-TMS57012:Launchpad LAUNCHXL2-TMS57012 I2C 通信

Guru**** 2195940 points
Other Parts Discussed in Thread: LAUNCHXL2-TMS57012
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/996111/launchxl2-tms57012-launchpad-launchxl2-tms57012-i2c-communication

器件型号:LAUNCHXL2-TMS57012

大家好、我正在尝试 通过 I2C 与 Launchpad LAUNCHXL2-TMS57012通信。 代码很简单、LaunchPad 只需接收并绘制接收的内容;它与 PC 连接、通过 LabVIEW、我可以看到结果。 我已经尝试过与 Arduino 的通信、它工作正常。 使用 launchpad、我无需进行通信。 我的问题是、在 Arduino 中、我将使用2个上拉电阻进行 I2C 通信;Launchpad 似乎尚未上拉、是否正确或是否应使用上拉电阻?

我使用的代码为:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Include Files */
#include "sys_common.h"
/* USER CODE BEGIN (1) */
#include "i2c.h"
/* USER CODE END */
/** @fn void main(void)
* @brief Application main function
* @note This function is empty by default.
*
* This function is called after startup.
* The user can use this function to implement the application.
*/
/* USER CODE BEGIN (2) */
#define DATA_COUNT 8
#define Slave_Address 0x50
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

同时、与 Arduino 一起使用的有效代码为:  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <Wire.h>
uint8_t data;
int nByte = 0;
byte lectura[4];
unsigned long valor = 0;
void setup()
{
Wire.begin(0x50); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop()
{
delay(100);
}
// function that executes whenever data is received from master
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不可以、该 LaunchPad 在 I2C 信号上不包含上拉电阻器。  

    这个器件(TMS570LS1224PGE)有一个 I2C 模块、但是 I2C 信号(引脚3和引脚4)与 MibSPI 引脚复用。 请正确配置引脚多路复用器、以将这两个引脚用作 I2C。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已将这些引脚配置为 I2C、并将 Launchpad 中的 J11引脚8和9用作 SCL 和 SDA、其中具有2个3.3V 上拉电阻。它仍然不工作。 使用示波器、我只能看到 SCL 和 SDA 线路上的3.3V 电压。 当我运行调试时、它会正常工作、直到出现以下行: i2cReceive (i2cREG1、data_count、RX_Data_Slave);在此行中、它会在 i2c.c 中持续一段时间、即:
    while (((i2c->STR &(UINT32) I2C_RX_INT)== 0U)

    }/*等待*/

    并留在那里。 问题可能出在哪?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它正在等待接收到的数据。 请查看从器件数据表、以确保您的代码遵循其通信协议。