S32G3 LINFLexD UART break generation

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

S32G3 LINFLexD UART break generation

551 次查看
dustinr
Contributor I

We have a UART peripheral that requires a break signal to function properly. Best I can tell from looking through the S32G3 reference manual, LINFLexD in UART mode doesn't support break generation. I also see an empty implementation in the Linux driver fsl_linflexuart.c.

static void linflex_break_ctl(struct uart_port *port, int break_state)
{
}

I seems like the LIN header could potentially be used like a UART break, but that's far less than ideal as we'd need to switch to LIN mode, then back to UART.

Does LINFlexD UART actually not support break generation? If so, what's the "preferred" way to do this?

0 项奖励
回复
1 回复

517 次查看
alejandro_e
NXP TechSupport
NXP TechSupport

Hello @dustinr,

Thanks for reaching out to us. Regarding your question, for what I can see in the reference manual and RTD source code, the break cannot be generated "on demand", it is handled automatically by the LINFlexD module and It is controlled by the LINCR1[MBL] register. 

Regarding the Linux function you mentioned, it is empty because the pointer is needed for the  uart_ops struct, which is used by the Linux UART driver. 

Therefore, there is no supported mechanism to generate a break from the application side. It could be possible by changing the pin to GPIO mode and forcing a "0" on the TX line, however changing the muxing of the pins is not recommended during the application.

 

Let me know if you have more questions.

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2371400%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32G3%20LINFLexD%20UART%20%E4%B8%AD%E6%96%AD%E7%94%9F%E6%88%90%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2371400%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BB%AC%E6%9C%89%E4%B8%80%E4%B8%AA%20UART%20%E5%A4%96%E8%AE%BE%EF%BC%8C%E9%9C%80%E8%A6%81%E6%96%AD%E5%BC%80%E4%BF%A1%E5%8F%B7%E6%89%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E3%80%82%E9%80%9A%E8%BF%87%E6%9F%A5%E7%9C%8B%20S32G3%20%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E6%88%91%E8%83%BD%E7%9C%8B%E5%87%BA%EF%BC%8CUART%20%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%20LinflexD%20%E4%B8%8D%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%AD%E7%94%9F%E6%88%90%E3%80%82%E6%88%91%E8%BF%98%E5%9C%A8%20Linux%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%20fsl_linflexuart.c%20%E4%B8%AD%E7%9C%8B%E5%88%B0%E4%B8%80%E4%B8%AA%E7%A9%BA%E7%9A%84%E5%AE%9E%E7%8E%B0%E3%80%82%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Estatic%20void%20linflex_break_ctl(struct%20uart_port%20*port%2C%20int%20break_state)%0A%7B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E6%88%91%E8%A7%89%E5%BE%97%20LIN%20%E5%A4%B4%E6%9C%89%E5%8F%AF%E8%83%BD%E5%83%8F%20UART%20%E4%B8%AD%E6%96%AD%E4%B8%80%E6%A0%B7%E4%BD%BF%E7%94%A8%EF%BC%8C%E4%BD%86%E8%BF%99%E5%B9%B6%E4%B8%8D%E7%90%86%E6%83%B3%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E5%88%87%E6%8D%A2%E5%88%B0%20LIN%20%E6%A8%A1%E5%BC%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E5%88%87%E6%8D%A2%E5%9B%9E%20UART%E3%80%82%3C%2FP%3E%3CP%3ELINFlexD%20UART%20%E6%98%AF%E5%90%A6%E7%9C%9F%E7%9A%84%E4%B8%8D%E6%94%AF%E6%8C%81%E6%96%AD%E7%82%B9%E7%94%9F%E6%88%90%EF%BC%9F%E5%A6%82%E6%9E%9C%E6%98%AF%E8%BF%99%E6%A0%B7%EF%BC%8C%22%E9%A6%96%E9%80%89%E7%9A%84%22%20%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2371560%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32G3%20LINFLexD%20UART%20break%20generation%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2371560%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F244818%22%20target%3D%22_blank%22%3E%40dustinr%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E8%81%94%E7%B3%BB%E6%88%91%E4%BB%AC%E3%80%82%E5%85%B3%E4%BA%8E%E4%BD%A0%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E6%AD%A3%E5%A6%82%E6%88%91%E5%9C%A8%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E5%92%8C%20RTD%20%E6%BA%90%E4%BB%A3%E7%A0%81%E4%B8%AD%E6%89%80%E7%9C%8B%E5%88%B0%E7%9A%84%E9%82%A3%E6%A0%B7%EF%BC%8C%E4%B8%AD%E6%96%AD%E6%97%A0%E6%B3%95%E7%94%9F%E6%88%90%20%22%20%E6%8C%89%E9%9C%80%20%22%EF%BC%8C%E5%AE%83%E7%94%B1%20LinflexD%20%E6%A8%A1%E5%9D%97%E8%87%AA%E5%8A%A8%E5%A4%84%E7%90%86%EF%BC%8C%E7%94%B1%20LINCR1%20%5BMBL%5D%20%E5%AF%84%E5%AD%98%E5%99%A8%E6%8E%A7%E5%88%B6%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%85%B3%E4%BA%8E%E6%82%A8%E6%8F%90%E5%88%B0%E7%9A%84%20Linux%20%E5%87%BD%E6%95%B0%EF%BC%8C%E5%AE%83%E6%98%AF%E7%A9%BA%E7%9A%84%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%8C%87%E9%92%88%E9%9C%80%E8%A6%81%E7%94%A8%E4%BA%8E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3Euart_ops%3C%2FFONT%3E%E7%BB%93%E6%9E%84%EF%BC%8C%E8%80%8Cuart_ops%E7%BB%93%E6%9E%84%E6%98%AF%20Linux%20UART%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E4%BD%BF%E7%94%A8%E7%9A%84%E3%80%82%20%3C%2FP%3E%0A%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E7%9B%AE%E5%89%8D%E8%BF%98%E6%B2%A1%E6%9C%89%E6%94%AF%E6%8C%81%E4%BB%8E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%AB%AF%E7%94%9F%E6%88%90%E6%96%AD%E7%82%B9%E7%9A%84%E6%9C%BA%E5%88%B6%E3%80%82%E5%B0%86%E5%BC%95%E8%84%9A%E6%9B%B4%E6%94%B9%E4%B8%BA%20GPIO%20%E6%A8%A1%E5%BC%8F%E5%B9%B6%E5%9C%A8%20TX%20%E7%BA%BF%E8%B7%AF%E4%B8%8A%E5%BC%BA%E5%88%B6%220%22%20%E6%98%AF%E5%8F%AF%E8%A1%8C%E7%9A%84%EF%BC%8C%E4%BD%86%E4%B8%8D%E5%BB%BA%E8%AE%AE%E5%9C%A8%E5%BA%94%E7%94%A8%E8%BF%87%E7%A8%8B%E4%B8%AD%E6%9B%B4%E6%94%B9%E5%BC%95%E8%84%9A%E7%9A%84%E5%A4%8D%E7%94%A8%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%A6%82%E6%9E%9C%E6%82%A8%E6%9C%89%E6%9B%B4%E5%A4%9A%E9%97%AE%E9%A2%98%EF%BC%8C%E8%AF%B7%E5%91%8A%E8%AF%89%E6%88%91%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E