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.

[参考译文] 我无法在带有2650 Launchpad 的 contiki 上使用 I2C

Guru**** 2487425 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/679429/i-cannot-get-i2c-working-on-contiki-with-the-2650-launchpad

器件型号:LAUNCHXL-CC2650

对于如何在2650 Launchpad 上为 contiki 设置 I2C、是否有任何建议、SDA 和 SCL 引脚是否恒定高电平。  

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

    我将查看并查看我是否可以找到有关如何设置 I2C 的 contiki 示例。 我还在与一位更专注于 contiki 平台的同事交谈。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matt、

    您使用的是 Contiki 还是 Contiki-NG?

    无论通过哪种方式、我都可以看到可能的解决方案:

    1. 编写您自己的 I2C 驱动程序。
    2. 针对 sensortag 平台(在 Contiki 上)使用 I2C 驱动程序实现

    关于解决方案#2、在快速浏览现有 I2C 驱动程序实现后、我不明白为什么只需复制/粘贴并修改 LaunchPad 平台的现有板级配置文件就不起作用。

    请注意、但这是您必须尝试和自行测试的东西。 我想您可以通过咨询 Contiki 社区获得更多直接帮助。

    我可以从启动 I2C 并在 Launchpad 上运行所需执行的操作中确定(无需自己尝试)以下内容:

    1. board-i2c.h/c 文件从 srf06-cc26xx/sensortag 复制/粘贴 srf06-cc26xx/launchpad
    2. srf06-cc26xx/launchpad 下的 Makefile.launchpad 中:将新的 i2c 文件添加到  Board_SOURCEFILES 变量中
    3. board.c  中、在 srf06-cc26xx/launchpad 下
      1. board-i2c.h 添加新的 include
      2. board_init()中添加对 board_i2c_wake()的调用
      3. 添加一个关断处理程序(与 srf06-cc26x/sensortag 中的 board.c 一样)、该处理程序调用 board_i2c_shutdown ()
    4. 重新编译

    再说一次、您自己也会这样做。 如果您确实使用解决方案#2使其正常工作、请考虑向 Contiki 存储库发出请求。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢大家的回答、我已经尝试使用 sensortag i2c.h/c 文件让 I2C 正常工作、正如建议的那样。 我没有使其正常工作、在调用写入函数甚至 i2c_status 函数时似乎会卡住。

    我使用了 UART。 我无法通过 board.h 文件中列出的引脚2和3进行 UART 通信、但可以从2650获取可读的写入命令。 我的主要问题是我无法从 pic 芯片接收任何信息。 这与从键盘获取信息没有什么不同。 那么、在 contiki 中有哪些用于扫描 UART Rx 的函数我找不到任何!?!?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    使用 UART 时、您是否确保向 UART 驱动程序注册输入函数?

    例如

    //通过注册输入回调函数来启用 UART 输入
    // serial_line_input_Byte ()是来自"dev/serial-line.h"
    cc26xx_uart_set_input (serial_line_input_Byte)的预定义回调函数
    
    
    ;//通过取消注册输入回调函数 cc26xx_uart_set_input (NULL)来禁用 UART 输入; 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、但现在我回到了 I2C 通信。 由于我无法从 sensortag 获取 I2C 代码、我求助于创建自己的代码来与 I2C 传感器(CCS811空气传感器)通信。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您没有尝试对 I2C 端口进行调试以了解它为何卡住?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是这样做的、它一直保持高电平、没有信号或时钟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否遵循了我先前在该主题中发布的分步指南? 是否确定调用了 board_i2c_wakeup()函数?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于不活动、我将关闭此线程。 如果您认为您没有获得所需的支持、则可以重新打开此主题。