<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: The application development of LIN communication in I2C peripherals in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/The-application-development-of-LIN-communication-in-I2C/m-p/2298131#M68168</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/258918"&gt;@benjieming&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Thanks for your post.&lt;/P&gt;
&lt;P&gt;Have you ever referred to our LIN2.x stack for KEA:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW-LIN2X-J2602-D" target="_blank"&gt;https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW-LIN2X-J2602-D&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In addition, based on your description, I suspect the issue may be related to the following points:&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;1. TheISR name does not match the vector table in the startup file.&lt;BR /&gt;This is especially common when porting the LIN_Stack to S32DS, you usually need to rename the UART1 ISR in lin_isr.c so that it matches the vector name defined in startup_*.s.&lt;BR /&gt;If the names don’t match, the UART1 interrupt will never be triggered.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;2. Improper interrupt priority configuration or excessive use of global interrupt masking.&lt;BR /&gt;If the I2C interrupt has a higher priority, runs for too long, or global interrupts are disabled in certain critical sections, the UART1 interrupt used by LIN may be blocked for an extended period.&lt;BR /&gt;As a result, LIN may miss critical timing windows such as Break, Sync, and Response.&lt;BR /&gt;Therefore, UART1/LIN should be assigned a higher priority than I2C, and all ISRs must remain as short as possible.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;3. Incorrect flag‑clearing sequence or register access order.&lt;BR /&gt;For example, UART requires reading UARTx_S1 before reading/writing the D register in order to clear RDRF/TDRE correctly.&lt;BR /&gt;If the order is wrong, the system may exhibit the classic symptom of “the ISR fires once and never fires again.”&lt;BR /&gt;The I2C module also requires flags to be cleared strictly in the sequence specified by the reference manual.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Additionally, others have performed similar migrations and have shared their experience.&lt;BR /&gt;I have found a useful reference link for you to review.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://blog.csdn.net/bjxdbz/article/details/120120302" target="_blank"&gt;如何使用S32DS开发KEA系列的LIN功能（二）_nxp kea lin协议栈生成-CSDN博客&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Celeste&lt;/P&gt;</description>
    <pubDate>Thu, 22 Jan 2026 09:46:11 GMT</pubDate>
    <dc:creator>Celeste_Liu</dc:creator>
    <dc:date>2026-01-22T09:46:11Z</dc:date>
    <item>
      <title>The application development of LIN communication in I2C peripherals</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/The-application-development-of-LIN-communication-in-I2C/m-p/2296253#M68162</link>
      <description>&lt;P&gt;Hi everyone:&lt;BR /&gt;&amp;nbsp; &amp;nbsp;During the application of the KEAZN32 single-chip microcontroller based on LIN communication and I2C host interrupt peripheral, I encountered problems such as abnormal LIN communication when calling the I2C interrupt in the program, and the UART1 interrupt used also failed. The engineering development environment I am using is the S32DS platform and the official FRDM-KEA-QSP driver library. Regarding the issues mentioned above, I sincerely hope for the support of all technical experts.&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Thank you very much.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 02:53:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/The-application-development-of-LIN-communication-in-I2C/m-p/2296253#M68162</guid>
      <dc:creator>benjieming</dc:creator>
      <dc:date>2026-01-20T02:53:16Z</dc:date>
    </item>
    <item>
      <title>Re: The application development of LIN communication in I2C peripherals</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/The-application-development-of-LIN-communication-in-I2C/m-p/2298131#M68168</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/258918"&gt;@benjieming&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Thanks for your post.&lt;/P&gt;
&lt;P&gt;Have you ever referred to our LIN2.x stack for KEA:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW-LIN2X-J2602-D" target="_blank"&gt;https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW-LIN2X-J2602-D&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In addition, based on your description, I suspect the issue may be related to the following points:&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;1. TheISR name does not match the vector table in the startup file.&lt;BR /&gt;This is especially common when porting the LIN_Stack to S32DS, you usually need to rename the UART1 ISR in lin_isr.c so that it matches the vector name defined in startup_*.s.&lt;BR /&gt;If the names don’t match, the UART1 interrupt will never be triggered.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;2. Improper interrupt priority configuration or excessive use of global interrupt masking.&lt;BR /&gt;If the I2C interrupt has a higher priority, runs for too long, or global interrupts are disabled in certain critical sections, the UART1 interrupt used by LIN may be blocked for an extended period.&lt;BR /&gt;As a result, LIN may miss critical timing windows such as Break, Sync, and Response.&lt;BR /&gt;Therefore, UART1/LIN should be assigned a higher priority than I2C, and all ISRs must remain as short as possible.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;3. Incorrect flag‑clearing sequence or register access order.&lt;BR /&gt;For example, UART requires reading UARTx_S1 before reading/writing the D register in order to clear RDRF/TDRE correctly.&lt;BR /&gt;If the order is wrong, the system may exhibit the classic symptom of “the ISR fires once and never fires again.”&lt;BR /&gt;The I2C module also requires flags to be cleared strictly in the sequence specified by the reference manual.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Additionally, others have performed similar migrations and have shared their experience.&lt;BR /&gt;I have found a useful reference link for you to review.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://blog.csdn.net/bjxdbz/article/details/120120302" target="_blank"&gt;如何使用S32DS开发KEA系列的LIN功能（二）_nxp kea lin协议栈生成-CSDN博客&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Celeste&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jan 2026 09:46:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/The-application-development-of-LIN-communication-in-I2C/m-p/2298131#M68168</guid>
      <dc:creator>Celeste_Liu</dc:creator>
      <dc:date>2026-01-22T09:46:11Z</dc:date>
    </item>
  </channel>
</rss>

