无法读取数据从MPU6050 TI C2000 f28379d &仿真软件金宝app

38视图(30天)
你好,我是试图读取数据从一个惯性传感器(加速度计、陀螺仪和温度计)6自由度(MPU6050)使用TI C2000 f28379d仿真软件。金宝appMPU6050使用I2C以下寄存器:
  • 0 x68:微处理机的I2C地址- 6050
  • 0 x6b: PWR_MGMT_1登记
  • 0 x3b (ACCEL_XOUT_H) & 0 x3c (ACCEL_XOUT_L)
  • 0 x3d (ACCEL_YOUT_H) & 0 x3e (ACCEL_YOUT_L)
  • 0 x3f (ACCEL_ZOUT_H) & 0 x40 (ACCEL_ZOUT_L)
  • 0 x41 (TEMP_OUT_H) & 0×(TEMP_OUT_L)
  • 0 x43 (GYRO_XOUT_H) & 0 x44 (GYRO_XOUT_L)
  • 0 x45 (GYRO_YOUT_H) & 0 x46 (GYRO_YOUT_L)
  • 0开发(GYRO_ZOUT_H) & 0 x47 x48 (GYRO_ZOUT_L)
为此我修改提供的例子“嵌入式编码器为德州仪器C2000处理器支持包”:“c28x_i2c_sensor”以下逻辑:金宝app
  1. 写0 0 x6b:登记的醒来微处理器- 6050
  2. 读取寄存器0 x3b (ACCEL_XOUT_H)
但是我只有读0(与外部模式)。
电气连接:
  • SDA: P104
  • sci:施敏原著
我附上修改后的文件的屏幕。
有什么办法帮我吗?
谢谢。

接受的答案

Aditya Padmanabha
Aditya Padmanabha 2018年5月24日
编辑:Aditya Padmanabha 2018年5月24日
你好,托马索,
我有附加的17个模型微处理器- 9150出现在BOOSTXL_SENSHUB连着F28379D发射台基于上述模型由安东尼。这个模型在外部运行模式与合适的COM端口。如果你想运行这个模型ControlCard发射台,您可能需要修改时钟、I2C和SCI相应设置。
在这个模型中,我用的函数调用方法测序I2C传输和接收。你可能需要做额外的变化mpy - 6050传感器的配置。
我没有实现的逻辑重置奴隶传感器在这个模型中,你必须实现单独的逻辑如果您需要这样做。确保奴隶传感器工作在正常模式后重置。如果没有复位逻辑之间的通讯中断,如果你可能不得不做动力循环传感器和执行C2000板复位把奴隶传感器从睡眠模式。
你可能需要做一件事如果你运行在F28379D发射台是创建额外的电路SDA和sci别针主人和奴隶之间如附件所示的图像。这样可以确保更强的引体向上和稳定的I2C F28379D LaunchPad和微处理机之间的通信- 9150。
引体向上电阻器(2.2 k欧姆)可能不需要如果停下已经出现在传感器模块。但需要33欧姆串联电阻器之间F28379D发射台和传感器模块没有的I2C通讯不稳定,并可能返回0总是当你读取传感器数据。
我希望它可以帮助,
谢谢,
Aditya
1评论
Aditya Padmanabha
Aditya Padmanabha 2018年5月25日
你好,托马索,
更多信息在I2C故障问题导致问题在TI E2E https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/676372 F28379D发射点发动。金宝app
谢谢,
Aditya

登录置评。

更多的答案(5)

安东尼
安东尼 2018年5月11日
你好,托马索,
I2C模块预计一个奴隶I2C地址以十进制格式。你必须使用hex2dec(“68”)或104奴隶地址寄存器。
另外,确保等组读地址之间的“3 b”和I2C接收请求读取传感器数据,否则I2C接收请求之前需要执行前面的I2C传输的结束。的原因是“{…}而“子系统中你可以找到例子:c28x_i2c_eeprom / eepm数据读取。
为了避免等待是第一期I2C接收请求,比传播“3 b”下了I2C接收地址。你可以照顾第一个实例在init函数。
我希望它可以帮助,
祝你好运,
安东尼。

托马索serni
托马索serni 2018年5月14日
谢谢你的回答安东尼。
我修改了例子如你建议我(我附上的图片),但我继续读只有0。
我试图减少样本的时间“InitTrigger”和“过渡”到15块分别依照1依照年代,但没有结果。
最好的问候,
托马索。

安东尼
安东尼 2018年5月15日
附件是创建了一个模型,在MATLAB R2016b微处理器- 9150出现在BOOSTXL-SENSHUB附在一个F28027发射台。这是为了在外部模式下运行。我认为你可以直接复制块模型。模型配置可能会与你的不同。
我意识到微处理器- 9150使用相同的地址mpy - 6050,所以它应该非常接近。
你的序列执行函数调用的方法是好的,比我们使用的块优先级的连接模型。这是一个你能做改进。像上面所说的,有一种方法可以消除等待循环,这是另一个可能的改进。
我希望它可以帮助,
安东尼。

托马索serni
托马索serni 2018年5月15日
谢谢你的帮助安东尼,
我在模型复制数据块但我得到以下错误:
不能为用户指定的优先级。i2c_sensor_example_antonin /第一次Init /高Addr /常数(pri =[10,正])之前执行的i2c_sensor_example_antonin /第一次Init / I2C Transmit1”(pri =[2])来满足数据依赖关系
错误:错误发生在执行外部模式MEX-file“ext_comm”:
失败的连接到目标。发生了超时等待连接目标的响应。可能的原因超时:
一个)目标是不开启。
b)目标是不连接到你的主机。
c)应用程序的模型不是在目标系统上运行。你可能点击停止按钮。如果运行按钮不是暗了下来,点击它。否则,点击建立按钮,这在目标系统上下载和运行您的应用程序。
错误:无法连接到“TI参与F2837xD”“i2c_sensor_example_antonin”的目标。
各种测试后我意识到删除”,而迭代器子系统”阻止我不接受错误的模型,但显然我不读取数据。
你有什么好主意来解决这个问题吗?
最好的问候,
托马索。

阿里Ozan
阿里Ozan 2018年8月12日
你好,托马索serni;
我工作在一个类似的项目,我需要从MPU6050读取陀螺仪数据使用TI C2000 F28379D发射台。
你设法解决这个问题。因为在另一个线程你说“CPU1: IMU 6自由度阅读(I2CA),使用连续剧SCIA / SCIB和PWM输出伺服/ ESC (ePWM1 / ePWM2)”。你能帮助我,如果你找到一个解决方案。
致以最亲切的问候。
1评论
乔治kotoulas
乔治kotoulas 2022年11月1日
你好,
我遇到同样的问题。你找到任何解决方案吗?
最好的祝福,乔治。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!