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.

[参考译文] TMS570LS3137:关于 N2HET1端口 GPIO 控制。

Guru**** 2463330 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476158/tms570ls3137-regarding-n2het1-port-gpio-controlling

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

工具与软件:

亲爱的大家好。

我尝试使用 N2HET1端口来控制 GPIO。

静态空 vSetHetGioOutputPort (uint32 pinNum、布尔值 LowHigh)

UINT32 currentPortValue = gioGetPort (hetPORT1);

if (lowHigh){
gioSetPort (hetPORT1、currentPortValue |(1U << pinNum));
}
否则{
gioSetPort (hetPORT1、currentPortValue 和(~(1U << pinNum)));
}
}

我在上面编写了控制函数。 pinNum 将具有值31、而低电平将控制 GPIO 为高电平/低电平。

函数是否正确写入? 请检查。

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

    尊敬的 INBUM LEE:

    [报价用户 id="599626" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476158/tms570ls3137-regarding-n2het1-port-gpio-controlling "]

    静态空 vSetHetGioOutputPort (uint32 pinNum、布尔值 LowHigh)

    UINT32 currentPortValue = gioGetPort (hetPORT1);

    if (lowHigh){
    gioSetPort (hetPORT1、currentPortValue |(1U << pinNum));
    }
    否则{
    gioSetPort (hetPORT1、currentPortValue 和(~(1U << pinNum)));
    }
    }

    [报价]

    似乎要切换 GPIO 引脚、

    为了切换、您只需调用 gioToggleBit API、而不是读取现有状态和更改位值、我的意思是调用如下所示的内容:

    下面是完整的示例:

    e2e.ti.com/.../1464.SCI_5F00_AND_5F00_LED_5F00_Blink_5F00_TEST_5F00_LS3137.zip

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    gioToggleBit 功能已在 LED 中使用。
    我提到的函数是我要根据情况控制低/高的函数。
    是否可以使用我提到的示例代码控制 HET 端口?

    此致、
    IBLEE

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

    实际上、我使用我提到的示例代码将 N2Het1的引脚31提升到了高电平、但由于 portError 导致电路板故障。 我要求检查是引脚控制问题还是其他问题。

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

    尊敬的 INBUM LEE:

    gioToggleBit 函数已用于 LED。
    我提到的函数是我要根据情况控制低/高的函数。
    是否可以使用我提到的示例代码控制 HET 端口?[/QUOT]

    我看不出您的示例代码有任何问题、可以使用此代码来控制低/高。

    实际上、我使用我提到的示例代码将 N2Het1的引脚31提升为高电平、但开发板因 portError 而死。 我询问是引脚控制问题还是其他问题。

    您的代码不应发生这种情况、

    请确保将引脚31方向配置为输出。

    如果您像上面提到的那样在 HALCoGen 中将引脚方向配置为输出、那么您应该 在如下所示的初始化代码中调用 hetInit 来调用实际的方向修改。

    ——
    谢谢、此致、
    Jagadish。

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

    总结、
    1.在 Halcogen 中设置端口输入/输出。
    2.在 HW 初始化时执行 hetInit()函数。
    3.使用我提到的示例代码控制引脚。

    对吗?

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

    静态 void vInitHetPortToGio (void)

    gioSetDirection (hetPORT1、0xFFFBBFFFU);

    vSetHetGioOutputPort (HET_V1_TX_LED_PIN、pdFALSE);
    vSetHetGioOutputPort (HET_V2_RX_LED_PIN、pdFALSE);
    vSetHetGioOutputPort (HET_V1_RX_LED_PIN、pdFALSE);
    #if 0
    vSetHetGioOutputPort (HET_READY_RECEIVE_TESTTELEGRAM、pdTRUE);
    #else
    vSetHetGioOutputPort (HET_FPGA_IRQ_OUT、pdFALSE);
    #endif
    vSetHetGioOutputPort (HET_MCU_RELAY_CHECK_OUT、pdFALSE);
    }

    实际上、我在初始化硬件时执行了上述初始化代码。 我可以在不修改 Halcogen 中的端口的情况下执行上述初始化代码吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="599626" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476158/tms570ls3137-regarding-n2het1-port-gpio-controlling/5666471 #5666471"]

    总结、
    1.在 Halcogen 中设置端口输入/输出。
    2.在 HW 初始化时执行 hetInit()函数。
    3.使用我提到的示例代码控制引脚。

    对吗?

    [报价]

    您完全正确、

    我想补充一点、

    你应该   只针对被配置为输出的引脚调用 gioSetBit、gioSetPort 和 gioToggleBit API。 我们不应该为作为输入的引脚调用这些函数。

    可以针对输入和输出调用 Get API、这里不会有任何问题。

    ——
    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以在不修改 Halcogen 中的端口的情况下执行上述初始化代码吗?

    很抱歉我不明白这一点。

    但是、请确保执行以下操作:

    [报价 userid="524805" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476158/tms570ls3137-regarding-n2het1-port-gpio-controlling/5666479 #5666479"]

    我想补充一点、

    你应该   只针对被配置为输出的引脚调用 gioSetBit、gioSetPort 和 gioToggleBit API。 我们不应该为作为输入的引脚调用这些函数。

    可以针对输入和输出调用 Get API、这里不会有任何问题。

    [报价]

    ——
    谢谢、此致、
    Jagadish。

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

    我实现的当前顺序是...

    1.请勿调用 hetInit ()
    2.请勿在 Halcogen 中设置 Pin In/Out
    3.在启动时设置如下方向:gioSetDirection(hetPORT1, 0xFFFBBFFFU );
    4.使用我在开头提到的函数控制端口(vSetHetGioOutputPort)

    我现在已经这样实现了它、
    但您是说、我应该按照以下方式来实现它?
    1.在 Halcogen 中设置端口输入/输出。
    2.在 HW 初始化时执行 hetInit()函数。
    3.使用我提到的示例代码控制引脚。

    此致、
    IBLEE

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

    您好、IBLEE:

    [报价 userid="599626" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476158/tms570ls3137-regarding-n2het1-port-gpio-controlling/5666533 #5666533"]

    我实现的当前顺序是...

    1.请勿调用 hetInit ()
    2.请勿在 Halcogen 中设置 Pin In/Out
    3.在启动时设置如下方向:gioSetDirection(hetPORT1, 0xFFFBBFFFU );
    4.使用我在开头提到的函数控制端口(vSetHetGioOutputPort)

    我现在已经这样实现了它、
    但您是说、我应该按照以下方式来实现它?
    1.在 Halcogen 中设置端口输入/输出。
    2.在 HW 初始化时执行 hetInit()函数。
    3.使用我提到的示例代码控制引脚。

    [报价]

    这两种方法都应该起作用、尝试这两种方法并更新结果、以便我们可以进一步深入探究问题。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    我完全理解您提到的软件编码部分。

    不过、当我现在在目标板上进行测试时、似乎在我将 HET1[31]引脚从低电平更改为高电平时触发了硬件复位。

    应用的顺序如下。
    1. halcogen -> N2Het1选项卡->将输入/输出引脚从引脚0~7设置为引脚24~31
    2.在 hwInit 段中调用 hetInit()
    3.在特定代码中使用以下代码
    静态空 vSetHetGioOutputPort (uint32 pinNum、布尔值 LowHigh)

    //UINT32 currentPortValue = gioGetPort (hetPORT1);

    if (lowHigh){
    //gioSetPort (hetPORT1、currentPortValue |(1U << pinNum));
    gioSetBit (hetPORT1、pinNum、1);}
    否则{
    //gioSetPort (hetPORT1、currentPortValue 和(~(1U << pinNum)));
    gioSetBit (hetPORT1、pinNum、0);
    }
    }

    我真的不知道我在做什么错。

    可以帮帮我吗?

    我正在尝试将目标板上的所有 HET1端口用作 GPIO、
    我将尝试使用14、18作为输入端口、
    和16、17、19、20、22、 25、26、27、31作为输出端口。

    您能告诉我将它们用作 GPIO 端口时的 halcogen 设置吗?

    此致、
    IBLEE

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

    尊敬的 Jagadish:

    我要对其感到好奇的是、
    1."PWM 0-7"选项卡中的引脚设置是否有任何关系?
    2."边沿0-7"选项卡的引脚设置是否有任何关系?
    3."Cap 0-7"选项卡的引脚设置是否有任何关系?
    4.不应该将"Pin 0-31"选项卡中的"Bit HR Share"部分向下连接以使用32个 GPIO 中的每一个?

    此致、

    IBLEE

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

    您好、IBLEE:

    对于延迟、我们深表歉意。

    [报价 userid="599626" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476158/tms570ls3137-regarding-n2het1-port-gpio-controlling/5677213 #5677213"]然而、当我现在在目标板上对其进行测试时、似乎是在将 het1[31]引脚从低电平更改为高电平时触发了硬件复位。

    这不应该发生、也不应该是软件问题。

    确保该引脚未与 GND 短接。

    您使用的是哪款电路板? 尝试在另一块电路板上测试相同代码、看看是否存在相同问题。

    ——
    谢谢、此致、
    Jagadish。