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.

[参考译文] RTOS/TIDA-010016:连接我的 IO-Link 器件和 TIDA-010016

Guru**** 2539500 points
Other Parts Discussed in Thread: TIDA-010016, TMDSIDK437X

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/814827/rtos-tida-010016-connecting-my-io-link-device-and-tida-010016

器件型号:TIDA-010016
主题中讨论的其他器件: TMDSIDK437X

工具/软件:TI-RTOS

你好。

我想连接 IO-Link 器件和 TIDA-010016。

我在 Processor SDK RTOS 中找到了 IO-Link 主站演示。

您能否告诉我如何更改将连接到 TIDA-010016的 IO-Link 器件?

此致、

U-SK

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

    您好!

    默认应用程序尝试连接到 Autosen AO001和 AD003。 您必须为 所拥有的器件修改或构建您自己的 ioLink_autosenTask.c。  

    独立于此处配置的内容、软件应将器件置于运行模式。

    您希望连接到哪些设备? 或者、是否要构建连接到每个器件的通用 IO-Link 主器件?

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

    感谢你的答复。

    我想 构建一个连接到每个器件的通用 IO-Link 主器件。

    首先,我想连接 JS-IOL-T10-EVB (JSL 技术)。

    因此、我想使用  TIDA-010016 、例如 TMG IO-Link 器件工具 v4。

    http://jslt.co.jp/products/342

    此致、

    U-SK

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

    您好!

    是的、这是可能的、可以正常工作、但您需要编写自己的工具、而不是 TMG 器件工具。

    为此,我将首先修改 IOLink_autosenTask()函数,将自定义命令传递到 IO-Link 堆栈,并删除现有的器件处理。 此外、您还必须添加一个通过 USB UART 或以太网处理 PC 通信的任务。

    您使用哪种 IO-Link 主站堆栈?

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

    感谢你的答复。

    TMG 器件工具软件是否可移植到 TMDSIDK437x?

    如果没有、我首先要在具有 JS-IOL-T10-EVB 的 Processor SDK RTOS 中运行 IO-Link 主站示例演示、而不是在自动学习传感器中运行。

    在这种情况下、我应该获取 IO-Link 主站完整堆栈吗?

    或者、是否可以在处理器 SDK RTOS 中使用 IO-Link 演示堆栈运行它?

    (我的理解是用于演示的 IO-Link 主站协议栈包含在处理器 SDK RTOS 中。)

    此致、

    U-SK

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

    您好!

    TMG 器件工具不可用。

    您可以使用传感器编译和运行 IO-Link 主站示例、这应该是连接状态、并切换为运行状态。

    要编译演示、您需要来自 IQ2的 IO-Link 主站协议栈、请联系 IQ2 (https://www.iq2-development.de/)进行编译。

    该 SDK 中不包含 IO-Link 主站协议栈。

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

    感谢你的答复。

    我从 IQ2获得了用于评估版本的 IO-Link 主站协议栈(2017_05_14_iqstack_master_V1_3_0)。

    您能告诉我如何使用 IQStack 创建示例项目吗?

    此致、

    U-SK

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

    您好!

    我们使用了 V1_1_2_2、您可以告诉 IQ2您要评估 TIDA-010016、然后您将获得正确的版本。 它可能适用于较新版本、但未进行测试。 您有 TIDA-010016电路板吗?

    PDK 中包含一个示例工程、如何编译该工程编写在这里: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_00_00_07/rtos/index_device_drv.html#iolink (编译 IOLINK 示例)。  如果您没有安装"make"、则可以使用 CCS 附带的"gmake"。

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

    感谢你的答复。

    我已获得 IQstack v1_1_2_2。

    我有 TIDA-010016板。

    我生成 了 IOLINK_Stack_idkAM437x_a9hostTestApp_release.xa9fg、并在 URL 后重新填充。

    之后、我创建了目标配置文件并将 IOLINK_Stack_idkAM437x_a9hostTestApp_release.xa9fg 加载到 AM437x IDK 并运行。

    然后、Teraterm 中仅显示以下内容。

    (我没有自动连接的传感器、因此我没有连接任何设备。)

    端口0的状态更改为0

    端口1的状态更改为0

    端口2的状态更改为0

    端口3的状态更改为0

    端口4的状态更改为0

    端口5的状态更改为0

    端口6的状态更改为0

    端口7的状态更改为0

    它是否正常工作?

    您能否为我提供有关如何修改源代码以连接 JS-IOL-T10-EVB 的建议?

    顺便说一下、我有一个用于 JS-IOL-T10-EVB 的 IODD 文件。

    此致、

    U-SK

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

    您好!

    到目前为止、这看起来非常好、因为这是在未连接任何器件的情况下的预期输出。

    当您连接传感器时、即使它不是 Autosen 器件、端口状态也应更改。

    为了进行修改、我将开始在  iLink_autosenTask.c 中修改 IOLink_autosenTask、在这里执行所有自动指定的处理。

    您可以设置 define IOLINK_DEBUG 以获得更多输出、尤其是在连接传感器时。

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

    感谢你的答复。

    当我连接 JS-IOL-T10-EVB 并运行演示时、端口状态和显示未更改。

    首先、我应该在哪里检查以确认固件是否正常工作?

    IOLINK_Stack_idkAM437x_a9hostTestApp_release.xa9fg 不是 CCS 工程、因此仅用于调试 printf 调试的方法?

    如果您找到了如何为 其他 IO-Link 器件修改 IOLink_autosenTask、请告诉我。

    此致、

    U-SK

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

    您好!

    这很奇怪、实际上应该发生什么。 您是否有任何其他 IO-Link 器件要测试、或者是否可以将示波器连接到 CQ 线路并检查正在发生什么情况?

    您是对的、这不是 CCS 工程、但您可以为 AM437X 创建工程、并从其中的示例复制所有文件、以便更轻松地进行调试和修改。

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

     

    感谢你的答复。

    我在 M8连接器处测量了每个 CQ 信号、如下所示。

     

    测量结果如下。

    每个结果的名称都是零件号。  

    e2e.ti.com/.../Measured_5F00_Results.pdf

    它是否正常工作?

    您的固件结果如何?

    我已将所有端口连接到 JS-IOL-T10-EVB、但 Tera Term 显示未更改。

     

    此致、

    U-SK

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

    您好!

    如果 IO-Link 器件 JS-IOL-T10-EVB 未连接、则 J11 - J14看起来正常。 否则、应该可以看到响应。 您在这里看到的是长度为80us 的唤醒脉冲、后跟与 COM3、COM2和 COM1中的器件通信的序列。

    其他信号受到干扰、您从哪里获取设置? 是修改的 AM437x IDK 或特殊的 IO-Link 版本、某些导线应在底部可见。

    此致、

    Steffen Graf

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

    您好、Steffen Graf、

    感谢你的答复。

    很抱歉、我忽略了下面文档中描述的 TMDSIDK437x 第2.3.5节的硬件修改。

    如果 TMDSIDK437x 的修改完成、我将返回给您。

    如果您发现有关 JS-IOL-T10-EVB 软件修改的任何信息、请告诉我。

    此致、

    U-SK

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

    您好!

    好的、为了使其正常运行、需要进行修改。 您是否自行构建了 TIDA-010016电路板并使用了标准 AM437x EVM? 这很好、因此我们提供了必要的数据、但知道这一点会更容易提供帮助。  

    对于该软件、我无法为您提供分步指南、因为我不知道您的具体要求。 基本上、您必须根据需要修改完整文件。 最简单的方法是将所有 Autosen 相关代码替换为器件中的某个代码。

    例如、从开头开始:

    静态 uint32_t IOLink_autosenGetDevID (uint8_t *产品名称)
    {
    uint32_t DevID;
    
    if (ncstrmp((const char *) ProdName、
    IOLINK_AUTOSEN_PROD_NAME_AO001、
    IOLINK_AUTOSEN_PROD_NAME_LEN)= 0)
    {
    DevID = IOLINK_AUTOSEN_DEVICE_AO001;
    }
    否则,如果(strncmp((const char *)ProdName,
    IOLINK_AUTOSEN_PROD_NAME_AD003、
    IOLINK_AUTOSEN_PROD_NAME_LEN)= 0)
    {
    DevID = IOLINK_AUTOSEN_DEVICE_AD003;
    }
    其他
    {
    DevID = IOLINK_AUTOSEN_DEVICE_NONE;
    }
    
    返回(DevID);
    } 
    类似的东西:
    静态 uint32_t IOLink_autosenGetDevID (uint8_t *产品名称)
    {
    uint32_t DevID;
    
    if (ncstrmp((const char *) ProdName、
    "您的产品名称"、
    sizeof ("您的产品名称"))=0)
    {
    DevID = IOLINK_JS_IOL_T10_EVB;
    }
    其他
    {
    DevID = IOLINK_AUTOSEN_DEVICE_NONE;
    }
    
    返回(DevID);
    } 

    此致、
    Steffen Graf