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.

[参考译文] CCS/LAUNCHXL-CC1352R1:带传感器的 TMP007 BoosterPack - Tirtos

Guru**** 2551570 points
Other Parts Discussed in Thread: OPT3001, CC1352R

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/831244/ccs-launchxl-cc1352r1-tmp007-with-sensors-boosterpack---tirtos

器件型号:LAUNCHXL-CC1352R1
主题中讨论的其他器件:OPT3001BOOSTXL-SENSORSStrike

工具/软件:Code Composer Studio

您好!

我有一个传感器 BoosterPack、我想使用 TMP007测量温度。 我运行了一个示例、但它不起作用:

http://dev.ti.com/tirex/explore/node?devtools=LAUNCHXL-CC1352R1&node=AJFYpV9zH2Ap5Fc1bTi10A__pTTHBmu__LATEST

我也运行了此版本、但它仍然不起作用:

http://dev.ti.com/tirex/explore/node?devtools=LAUNCHXL-CC1352R1&node=AAXdGIN8wHfFuR2Qj7i2Ag__vVFMJa1__LATEST

问题是电路板未找到 TMP007:

我会得到一些帮助、我将粘贴下面的代码、这样您就可以看到我在程序中所做的更改、我正在使用 Tirtos:

#include 
#include 
#include 

/*驱动程序头文件*/
#include 
#include 
#include 

/*示例/板头文件*/
#include "Board.h"

#define TASKSTACKSIZE 640

/*
===== tmp 寄存器======
*/
#define TMP007_DIE_TEMP 0x0001 /*芯片温度结果寄存器*/
#define TMP007_obj_TEMP 0x0003 //对象温度结果寄存器*/

#define TMP007_ADDR 0x40;

#ifndef Board_TMP_ADDR
#define Board_TMP_ADDR TMP007_ADDR
#endif

static Display_Handle 显示;

/*
=== mainThread ====
//
void * mainThread (void * arg0)
{
uint16_t 样本;
uint16_t 温度;
uint8_t txBuffer[1];
uint8_t rxBuffer[2];
I2C_Handle I2C;
I2C_Params i2cParams;
I2C_Transaction i2cTransaction;

/*调用驱动程序初始化函数*/
display_init();
GPIO_init();
I2C_init();

/*配置 LED 以及 TMP116_EN 引脚(如果适用)*/
GPIO_setConfig (Board_GPIO_LED0、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);


/*打开主机显示屏以输出*/
Display = Display_open (Display_Type_UART、NULL);
if (display =NULL){
while (1);
}

/*打开用户 LED */
GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON);
display_printf (display、0、0、"启动 i2ctmp 示例。");

/*创建 I2C 以供使用*/
I2C_Params_init (&i2cParams);
i2cParams.bitrate = I2C_400kHz;
I2C = I2C_open (Board_I2C_TMP、&i2cParams);
if (i2c == NULL){
Display_printf (display、0、0、"Error Initializing I2C\n");
while (1);
}
否则{
display_printf (display、0、0、"I2C initialized!\n"\});
}

/*通用 I2C 事务设置*/
i2cTransaction.writeBuf = txBuffer;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer;
i2cTransaction.ReadCount = 2;

TxBuffer[0]= 0x0003;
i2cTransaction.slaveAddress = TMP007_ADDR;
if (!I2C_transfer (i2c、&i2cTransaction)){
Display_printf (display、0、0、"错误。 未找到 TMP 传感器!");
while (1);
}

/*采集20个样本并将其打印到控制台*/
对于(sample = 0;sample < 20;sample++){
if (I2C_transfer (i2c、&i2cTransaction)){

温度=(rxBuffer[0]<< 8)|(rxBuffer[1]);
温度*= 0.0078125;

if (rxBuffer[0]& 0x80){
温度|= 0xF000;
}

Display_printf (display、0、0、"Sample %u:%d (C)"、
采样,温度);
}
否则{
display_printf (display、0、0、"I2C 总线故障");
}

睡眠(1);
}

I2C_Close (i2c);
display_printf (display、0、0、"I2C closed!");

返回(空); 

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

    您好!

    您是否验证了 SCLK 和数据线路、以查看是否发生了事务?

    此致、

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

    您好!

    我尝试更改传感器、而不是0x40我写0x47来使用 opt3001、我没有遇到任何事务错误(但我不知道如何将数据转换为可从 opt3001读取的数据、 将数据从转换rxBuffer为可读数据的方法是什么?)。

    我读了一篇文章、说 tmp007已过时(现在我没有该帖子的链接)。

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

    您好!

    我会向您发送屏幕截图:

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

    找到我之前提到的帖子:

    http://e2e.ti.com/support/sensors/f/1023/t/619287

    所以... 如果有人可以检查此帖子的信息是否为真、我支持此帖子将关闭并显示坏消息。

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

    您好!

    通过将 i2ctmp.c 文件中的地址更改为0x40、我能够读取 tmp007传感器。

    对于 opt3001传感器、您可以使用第7.6.1.1.1节(如下所示)中的公式转换为 lux:

     http://www.ti.com/lit/ds/symlink/opt3001.pdf

    float sensorOpt3001转换器(uint16_t RawData)


    uint16_t e、m;

    M = RawData 和0x0FFF;
    E =(RawData & 0xF000)>> 12;

    return m *(0.01 * exp2 (e));

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

    您好!

    我以前试过、但没有任何东西、我仍然无法使用传感器 BoosterPack 连接 tmp007。

    是的、我进行了正确的转换、因此现在 opt3001的原始数据没有问题。

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

    我尝试了以下位置的帆船示例:

    TI Resource Explorer、软件-> SimpleLink SDK 插件-> SimpleLink 传感器和传动器插件(1.40.00.00)->示例->开发工具-> CC1352R Launchpad -> sail -> i2mp007 -> TI-RTOS -> CCS 编译器-> i2ctctmp007。

    在此示例中、错误不是"No tmp sensor found (未找到 tmp 传感器)"、错误是"TMP007_ROOMTEMP0 Open Failed (TMP007_ROOMTEMP0打开失败)"

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

    尊敬的 Juan Carlos Martin:

    我能够毫无  问题地运行相同的示例(TI Resource Explorer、Software -> SimpleLink SDK 插件-> SimpleLink 传感器和传动器插件(1.40.00.00)-> Examples -> Development Tools -> CC1352R Launchpad -> sail -> i2ctmp007 -> TI-RTOS -> CCS Compiler -> i2ctmp007)。 请查看下面的快照。

    如果 Booster Pack 未连接/与 launchpad 缓冲安装或温度传感器出现故障、则会观察到此错误。

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

    Juan Carlos Martin、

    您能否验证您的 BOOSTXL-SENSORS BoosterPack 是否已组装 TMP007? (请参见下图。) 如 用户指南第1.1节所述

    由于 TMP007器件寿命终止、因此仅为红外温度传感器提供 PCB 封装


    您的电路板可能未组装 TMP007器件、这将解释您看到的错误。


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

    OPS、

    似乎你得到了打击。

    当我买的时候没有什么东西、所以我不会给它以重要的意义。 但有效地看到照片后、传感器丢失了。 我不知道我需要联系谁来解决它并为我提供另一个电路板、因为如图所示、传感器不在那里、这不是因为有人移除了它、而是因为它没有组装。

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

    您好!

    从网站上列出的功能来看、Booster Pack 似乎仅随附了 TMP007的占位符。

    http://www.ti.com/tool/BOOSTXL-SENSORS 

    恐怕你必须自己添加一个。

    谢谢。