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.

[参考译文] AM4378:pruss_UART TX中断

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1100797/am4378-pruss_uart-tx-interrupt

部件号:AM4378

PRUSS1_UART被配置为RS485模式下的串行端口。 为RTS功能分配GPIO。 RTS信号用于RS485收发器方向控制。 UART传输和接收操作经过测试,可通过手动设置RTS线路正常工作。 但是,RS485操作的RTS线路自动控制不起作用,因为没有接收到TX完成中断。 SER_RS845,_ENABLED,RTS_ON_SEND,!RTS_After _SEND已在软件中设置。

-传输后RTS线路不会取消声明。

-tcDRAIN (FD)系统调用不返回。

devic松 树项是基于AM335xSDK设备树完成的。 我们不确定相同的中断映射和其他设置是否有效,并且没有找到适合它的文档。

请您帮助我们进行正确的配置吗?

处理器UART1-UART5的其他UART配置与外部GPIO相似,并且工作正常。 下面是devicShree的设置-

pruss_TM -> pruss1 ->

prus1_UART:串行@2.8万 {
兼容="ti,pruss-UART";
REG =<0x2.8万 0x38>;
Clocks =<&DPLL_Per_m2_ck>;
interrup-parent =<&prus1_INTC>;
中断=<6>;
状态="已禁用";
};

&prus1_UART{
PRU =<&pru1_0>;
TI,PRU-INTERRUC-MAP =<0 6 2 2>;
pinctrl-names ="default";
RTS-GPIOs =<&GPIO1 6 GPIO主动_高>;
Linux,RS485启用-启动时;
pinctrl-0 =<&prus1_UART_PINS>;
状态="正常";
};

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

    一些附加信息-

    我们正在使用Linux 5.4 内核。

    如AM4378技术参考表30-30中所述。 PRU-ICSS0系统事件,我发现事件号5是UART TX事件,有3个UART事件,并将中断映射修改为-

    <0 4 2 2>,<0 5 33>,<0 6 4 4>和少数其他组合,但我无法使RS485模式正常工作。