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.

[参考译文] TIDC-CC2650STK-SENSORTAG:具有 Z-Stack_Home_1.2.2a 的 DevPack TIDA-00650 (热电偶传感器)- GPIO 板配置

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/866023/tidc-cc2650stk-sensortag-devpack-tida-00650-thermocouple-sensor-with-z-stack_home_1-2-2a---gpio-board-configuration

器件型号:TIDC-CC2650STK-SENSORTAG
主题中讨论的其他器件:TIDA-00650CC2650STKZ-STACK

大家好、

PREABLE: Thread https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread/f/158/p/854841/3161491#3161491 现已解决!

问题是由于读取电压数据(RDATA)的过程不正确、因此无法正常工作、因为我执行了以下两条指令:

// RDATA():读取数据命令
命令 SPI = 0x10; 
bspSpiWrite (&commandSPI、sizeof (commandSPI))
//读取数据(24位) VoltagePT100[0]= 0x00; VoltagePT100[1]= 0x00; VoltagePT100[2]= 0x00; bspSpiWriteRead (VoltagePT100、sizeof (VoltagePT100[0])、 sizeof (VoltagePT100))

由于 BSP_SPI 库在内部管理 SPI 接口的引脚、并且...因此、在执行第一条指令(RDATA)时、芯片选择值会变为高电平:

nCS_ADC -->高电平

交易已完成!

而是在单个语句中执行以下操作:

/*步骤6 - RDATA:读取数据:命令+读取数据*/
VoltagePT100[0]= 0x10;// RDATA ()命令:write1字节(命令= 0x10)、读取数据:读取3个字节(数据)
VoltagePT100[1]= 0x00;
VoltagePT100[2]= 0x00;bspsizagePT100

(命令= 0x10)、voltagePT100 (24)、voltsizePT100 (0)(voltagePT100 (voltsizeSpits)(voltagePT100)(voltsizeSpits)、voltagePT100 (24)(voltagePT100 (voltagePT100) 数据的 MS 字节+数据的中央字节+数据的 LS 字节 

当前问题:如何配置电路板 DevPack 引脚?

我不明白为什么一旦 TIDA-00650板通过 DevPack 连接到 CC2650STK 板、当该板未通电时、我会看到持续消耗约5mA 的电流!

我的 PIN 配置如下:

main.c 调用

PIN_Config BoardGpioInitTable[]={
Board_LED1 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_DGPushPull | PIN_DRVSTR_MAX、// LED 最初关闭*/
Board_LED2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_PULL | PIN_PushPull | PIN_DRVSTR_MAX
| PIN_BOVSTR_ON | PIN_LED_RPM_ON | PIN_ON | PIN_PORT_TRUS_ON /*按钮为低电平有效*/
Board_key_right | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_迟滞,/*按钮为低电平有效*/
Board_RELAY | PIN_INPUT_EN | PIN_PULLU_INPUT | PIN_ING_INT_INTRU_INT_INTRUDIO
| PIN_INT_INTRU_INTRU_IND | PIN_INTRU_ING_INTRU_INTRU_INP| PIN_INT_INTRU_INTRU_INTRU_IND /* MPU_INT 低电平有效*/
Board_TMP_RDY | PIN_INPUT_EN | PIN_PULLUP | PIN_迟滞,/* TMP_RDY 为高电平有效*/
Board_蜂 鸣器| PIN_GPIO_OUTP_EN | PIN_GPIO_PUT_LOW | PIN_PushPUT_MAX | PIN_DRVSTL_MAX
/* MPU 最初开启*/
Board_MPU_POWER | PIN_GPIO_OUTPUT _EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVUL_MIN、// MPU 最初关闭*//
Board_MIC_POWER | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVMIC_MAX | PIN_POST_ON *
| PIN_POST_POST_ON * /* MIC 最初关闭*/
Board_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_PushPull | PIN_DRVSTR_MIN,/*外部闪存芯片选择*/
Board_SPI_DEVPK_CS | PIN_GPIO_OUTPUT_EN | PIN_STR_HIGH | PIN_DRVSTR_RESULT | PIN_PACK | PIN_PUT
/*音频 DI */
Board_AUDIODO | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MIN、/*音频数据输出*
/ Board_DP2 | PIN_INPUT_EN | PIN_NOPULL、 /* DevPack - nDRDY_ADC -未使用*/
Board_DP1 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、
// Board_DP0 | PIN_GPIO_OUTPUT EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、 /* DevPack - LED (绿色)-未使用*/
Board_DP3 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、 /* DevPack - TIDA-00650 PWR_UP_CHIP*/
Board_DP4_UARTRX | PIN_INPUT_EN | PIN_PULLUP、 /* DevPack */
Board_DP5_UARTTX | PIN_INPUT_EN | PIN_PULLUDOWN、 /* DevPack */
//Board_DEVPK_ID | PIN_INPUT_EN | PIN_NOPULL、 /*设备包 ID -外部 PU */

PIN_TERMINATE
}; 

然后在 sensortagapp.c 中、我配置以下引脚以检查 TIDA-00650板:

#if defined (TIDA_00650)
// TIDA-00650
静态 PIN_Config TIDA00650_PinTable[]=
{
// Devpack 接口
Board_DP3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、// DevPack:TIDA-00650_IN_OUTP_EN | PIN_IN_IN_DPW-2*
| PIN_IN_DPW_ D_IN_NOW_ UD650_IN_DPW_| PIN_IN_IN_IN_NOWTO_IN_IN_DPW| PIN_DPW_| PIN_IN_IN_IN_IN_IN_DPW >低电平,未使用*/
PIN_TERMINATE /*终止列表*/
}; 

问题可能出在哪呢? 我希望获得以下行为:

超时到期时:

  1. PIN_setOutputValue (hGpioPin、Board_DP3、1);           // TIDA-00650 | PWR_UP_CHIP -->高电平
  2. 配置 ADC 寄存器并读取电压值...
  3. PIN_setOutputValue (hGpioPin、Board_DP3、0);           // TIDA-00650 | PWR_UP_CHIP -->低电平

TIDA-00650之前和之后未通电(通过引脚"Board_DP3")、因此不应消耗任何电量!?

感谢大家!

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

    我认为连接调试器时看到这种功耗是正常的。 为什么需要在连接调试器的情况下测量功耗?

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

    您好、YiKai、实际上我不想在调试器连接到传感器节点时监控能耗、绝对不是。。。

    在以下条件下、我看到了5mA 的功耗:

    NODO 传感器(CC2650STK)+ 无线热电偶传感器发送器 DevPack (TIDA-00650)+ CR2032 电池  

    感谢您的回复!

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

    您好!

    Z-Stack 是否正在运行?

    您是否尝试仅运行驱动程序代码?

    此致、
    Toby

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

    我想我一开始就误解了你的问题。 我同意 Toby。 您应首先检查功耗、仅运行驱动程序代码。

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

    好的、 最简单的方法是什么?

    例如:在 main.c 文件中插入用于从 TIDA-00650板读取数据的驱动程序功能、然后目标 CC2650STK 上仅下载"SensorTag - SensorTag"?

    谢谢

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

    我假设您应该在  SensorTagApp_initialization()中添加 TIDA-00650传感器初始化代码,并在 SensorTagApp_process()中创建一个事件,以执行 SPI TIDA-00650 传感器读取。

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

    一个选项是定义您自己的任务函数 sensorTask、然后在 main()中使用 Task_construct(&myTask, sensorTask, stackParams, NULL);

    然后在 sensorTask 中,执行一些与 TIDA 连接的序列(例如读取、睡眠、读取、睡眠... 等)。

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

    大家好、

    我了解到:即使使用基本固件版本"Zstack_home_1_02_02A_44539"、 也只会在此基础上添加 SPI 总线的初始化指令:

    //设置 SPI 控制器接口(TIDA-00650)
    bspSpiOpen(); 

    当 TIDA-00650 DevPack 连接到 CC2650STK 传感器节点时...我看到的能耗为5mA (大约)!

    ...即使我连接 CC-DEBUGE-DEVPACK、也会发生这种情况。

    相反、如果我拔下 DevPack TIDA-00650、我看不到这种能耗

    问题似乎是由于与 SPI 接口相关的引脚配置造成的。 如果我未初始化 SPI 总线、我将看不到这种能耗(即使 TIDA-00650或 CC-DEVPACK 连接到 CC2650STK)!

    谢谢!

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

    我没有要 测试的 TIDA-00650 DevPack、因此我只建议您使用示波器检查 IO 状态、以查看如何修复它。

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

    -为了确保物品是如何连接的,是否可以张贴几张照片,显示您使用的电路板是如何相互连接的?

    -是否可以简化软件部件、我刚才在 TI-RTOS 中运行 SPI 示例? 使用尽可能简单的软件来尝试解决与硬件相关的设置问题更容易、因为调试容易得多。  

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

    您好、

    很抱歉、如果我没有立即回答。 连接后、您可以看到这两张卡是如何连接的。

    现在、我开始重新进行调试以了解发生了什么、但显而易见的是、这似乎是 I/O 引脚的配置问题...

    由于在我初始化 SPI 接口(bspSpiOpen ())和时消耗过多的5mA (连续)电流、SPI 接口的引脚如下:

    /* SPI 配置结构、描述要使用的引脚*/
    const SPICC26XX_HWAttrs spiCC26XXDMAHWAttrs[CC2650_SPICOUNT]={
    {/* SENSORTAG_CC2650_SPI0 */
    baseAddr = SSI0_BASE、
    .intNum = INT_SSI0、
    defaultTxBufValue = 0、
    powerMngrId = Periph_SSI0、
    .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
    txChannelBitMask = 1< 
    

    即:

    cs   --> Board_DP1

    SCLK -> Board_SPI0_CLK

    MISO -> Board_SPI0_MISO

    MOSI -> Board_SPI0_MOSI

    DRDY --> Board_DP2  

    注释。  BOARD_DP2配置为: BOARD_DP2 | PIN_INPUT_EN | PIN_NOPULL:

    #if defined (TIDA_00650)
    // TIDA_006500管理和 SPI 接口的引脚表
    静态 PIN_Config TIDA00650_PinTable[]=
    {
    // TIDA_00650管理
    板 DP0 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX,/ PushM0*|PIN_DP3|PIN_TOP_LED_OFF
    | PIN_DPW0*|PIN_DPWQ_PIN_PROTOP_TOP_LET |PIN_OFF TIDA-00650 | PWR_UP_CHIP ->低电平*/
    // SPI 接口(仅 DRDY 引脚)
    Board_DP2 | PIN_INPUT_EN | PIN_NOPULL、
    PIN_TERMINATE //终止列表*
    }; 

    这是否意味着问题出在这些引脚上!? 一些想法和建议...

    非常感谢您的支持!

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

    大家好、

    我有一些关于我的问题的消息、但它的行为很奇怪...如果我使用 SPI 接口的此 PIN 配置:

    /* SPI 配置结构、描述要使用的引脚*/
    const SPICC26XX_HWAttrs spiCC26XXDMAHWAttrs[CC2650_SPICOUNT]={
    {/* SENSORTAG_CC2650_SPI0 */
    baseAddr = SSI0_BASE、
    .intNum = INT_SSI0、
    defaultTxBufValue = 0、
    powerMngrId = Periph_SSI0、
    .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
    txChannelBitMask = 1< 通过设置引脚"Board_DP1"、它可以正常工作、但消耗约为5mA (连续)
    csnPin = PIN_Unassigned /*注:外部闪存使用 SPI0 */
    }
    }; 

    通过设置为 CS (芯片选择):

    csnPin = PIN_Unassigned /*注意:外部闪存使用 SPI0 */ 

    不像我预期的那样使用 Board_DP1引脚!...它的工作原理!!! 没有5mA 的功耗...但为什么???

    从原理图中、您可以看到  CC2650STK TIDA-00650的连接器 J2的连接图

    TIDA-00650

    CC2650STK

    再次感谢!

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

    我前面没有完整的代码库:哪个 Dios 是 Board_DP1和 Board_DP2映射到的?  

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

    您好、  

    Board_DP1 -> DIO_24

    Board_DP2 -> DIO_23

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

    我向 TI 设计的人员发送了一封邮件。 他的答复如下:

    "据我所记得、SCLK_ADC 信号(下面屏幕截图中的引脚5)在 DEV_Pack 连接器上路由错误。 我们必须将 Board_SPI0_CLK 从 IOID_17修改为 IOID_11。"

    当我查看原理图时、我看不出 DP1为什么会导致原始代码出现问题、但很可能我必须忽略某些内容。  

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

    您好!

    如前所述、SCLK_ADC 进入 DIO11、而不是 DIO17。

    这是否解决了您的问题?

    此致、Thomas

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

    尊敬的 Thomas 和 ter:

    问题/疑问与 CS_ADC 引脚相关 、而不与 SCLK_ADC 引脚相关:查看 CC2650STK 和 TIDA-00650的原理图、Board_DP1 (DIO_24)引脚连接到 TIDA-00650的 NCS_ADC 引脚。

    但是、如果此 Board_DP1 未分配到 SPI 配置结构中、CC2650STK 如何与 TIDA-00650板正确通信:

    /* SPI 配置结构、描述要使用的引脚*/
    const SPICC26XX_HWAttrs spiCC26XXDMAHWAttrs[CC2650_SPICOUNT]={
    {/* SENSORTAG_CC2650_SPI0 */
    baseAddr = SSI0_BASE、
    .intNum = INT_SSI0、
    defaultTxBufValue = 0、
    powerMngrId = Periph_SSI0、
    .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
    txChannelBitMask = 1< 通过设置引脚"Board_DP1"、它可以正常工作、但消耗约为5mA (连续)
    csnPin = PIN_Unassigned /*注:外部闪存使用 SPI0 */
    }
    }; 

    默认情况下:

    csnPin = PIN_Unassigned /*注意:外部闪存使用 SPI0 */ 

    在我的案例中、我还使用了这种片选引脚配置、它起作用、但我想了解原因吗?

    另一个奇怪的现象是、即使使用这个芯片选择引脚配置:

    .csnPin = Board_DP1 // DIO_24 -注释(TIDA-00650)-->通过设置引脚"Board_DP1"、它可以正常工作、但会看到5mA 的消耗(持续) 

    工作方式相同...但消耗的电流为5mA (持续)