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.

[参考译文] MSPM0L1306:空闲线功能

Guru**** 2403395 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1319039/mspm0l1306-idle-line-functioning

器件型号:MSPM0L1306
主题中讨论的其他器件:SysConfig

您好!

我想在空闲线路模式下使用 UART、但无法获得数据表显示的结果、BUSY 信号在接收数据时不会保持设置状态。

我对几种不同的配置进行了测试、在扩展模式或主模式下的 UART0和 UART1上、行为始终相同。

是否有可能有一个可正常运行的示例配置?

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

    您好!

    我将自行进行实验、请提供更多详细信息。

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

    你想要什么细节?

    我希望实现数据表中指定的内容:  

    RX:在接收数据期间、会设置 BUSY 信号、直到接收到前10个空闲位。

    根据数据表、这似乎很容易实现、但我做不到、这就是为什么我要问您是否可以有一个有效的配置示例。

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

    您好!

    请提供 您配置的寄存器和  相关的示波器波形。

    让我们尝试先排除代码或寄存器配置是否正确。

    B.R.

    佐伊

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

    我使用 syscfg 来配置寄存器。 这是 ti_msp_dl_config.c 的摘录

    静态  const DL_UART_gUART_0ClockConfig   = {Extend_Clock
        .clockSel     = DL_uart_extend_clock_BUSCLK
        divideRatio  = DL_UART_EXTEND_Cock_Divid_Rati_1
    };

    静态  const DL_UART_UART_gUART_0Config Extend_Config   = 
        .mode         = DL_UART_EXTEND_MODE_IDLE_LINE
        .Direction    = DL_UART_EXTEND_DIRECTION_TX_RX
        .FlowControl  = DL_UART_EXTEND_FLOW_CONTROL_NONE
        .petica       = DL_UART_EXTEND_奇 偶校验_NONE
        .wordLength   = DL_uart_extend_word_length_8_bits
        .stopbits     = DL_UART_EXTEND_STOP_BITS_ONE  
    };
    SysConfig_weak  void SYSCFG_DL_UART_0_init (void)
    {
        DL_UART_EXTEND_setClockConfig (UART_0_INST (DL_UART_CL200i  * Extend_Clock)&gUART_0ClockConfig );

        DL_UART_EXTEND_init (UART_0_INST (DL_UART_INST Extend_Config  *)&gUART_0Config );
        /*
         *    通过 设置 过采样 和 波特 率 除数来配置波特率。
         *  目标 波特 率: 38400
         *  实际 波特 率: 38403.84
         */
        DL_UART_EXTEND_setOversampling (UART_0_INST、DL_UART_OVERSAMPLING_RATE_16X );
        DL_UART_EXTEND_setBaudRateDivor (UART_0_INST UART_0_IBRD_32_MHz_38400_BAUD、UART_0_FBRD_32_MHz_38400_BAUD );


        /* 配置 中断 */
        DL_UART_EXTEND_enableInterrupt (UART_0_INST
                                     DL_UART_EXTEND_INTERRUPT_EOT_DONE  |
                                     DL_UART_EXTEND_INTERRUPT_RX  |
                                     DL_UART_EXTEND_INTERRUPT_TX);


        /* 设置  地址 掩码 和  地址  匹配 */
        DL_UART_EXTEND_setAddressMask (UART_0_INST 255);
        DL_UART_EXTEND_setAddress (UART_0_INST 0);

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

    那么现在的现象是、当您通过 RXD 接收数据时、未设置 BUSY 信号(寄存器)、对吧?

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

    遗憾的是、我没有时间为了输出信号而将操作放回原位。 但我观察到我在引脚上输出的 BUSY 信号、并且观察到两个字节之间的逻辑电平返回到低电平、而无需等待十个位

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

    它被激活、但是只在字节接收时间内、然后返回到低逻辑电平

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

    感谢您的信息。 我明白你的观点了。

    BUSY 信号将在接收数据后立即返回低电平逻辑、而不是等待 10个空闲位。 我是对吗?

    顺便说一下、您使用的 SysConfig 是哪个版本? 我尝试通过 SysConfig 配置 UART 模式、但发生了一些错误、然后我在寄存器级进行编码。

    如果我的理解是正确的、我将在明天做一个实验、并尝试向您提供反馈

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

    是的、回答正确。

    我使用的是 SDK 1.20.01.06,您是否尝试了扩展模式? 它使 setAdress 和 setMask 在主模式下不可用。

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

    在正常模式下、 setMask 和 setAdress 函数未包含在我们的 driverlib 中、这意味着您不能调用此函数。 这就是我想要问您 SysConfig 和 SDK 的版本的原因、因为您可以正常配置它并对其进行实验。

    如果您遇到此问题、请排除 SysConfig、然后尝试直接修改寄存器值

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

    我的意思是这两个函数未包含在 driverlib 中、因此我们不能调用此函数

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

    如果您激活了扩展配置,它将起作用,这两个功能将包含在 dl_uart_extend.h 中。 但是、是的、我想这是个问题。

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

    谢谢、我将向我们的软件团队反馈此问题。

    您能否提供有关您的测试的更多信息:

    1.是否已收到地址 数据

    什么是信号或如何接收来自主机的空闲线协议信号。 换言之、您如何仿真主设备、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     DL_UART_EXTEND_setAddressMask (UART_0_INST 255);
     DL_UART_EXTEND_setAddress (UART_0_INST 0);
    我该怎么做:
    我发送一条14字节的消息、第一个字节的消息位于0x00
    但我尝试了不同的配置,例如:
    地址在0xF0处地址、掩码在0xFF 处
    地址在0xF0、掩码在0x00
    地址为0x00、mFFask 为0xFF
    地址在0x00、mFFask 位于0x00
    我有几个评估板、因此我将一个放在主器件中、另一个放在从器件中。
    您是否找到了工作配置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、

    我今天很忙、下周我会回答您的问题。

    对不起

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

    您好

    我已经完成了测试、在我看来、如果我配置空闲线模式、一切都运行良好

    下面是我不使用空闲线路模式的结果。

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

    由于我无法获得与您相同的结果,是否可以与我分享您的配置,给我一个例子?

    通过 syscfg 使用 IDLE 模式、我只得到没有 IDLE 的结果。

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

    您好

    以下是我的测试代码: tidrive.ext.ti.com/.../8248da00-ce5a-4bfb-b6b4-0be06d4e6afc

    密码:ED52y'ik