<?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>Kinetis MicrocontrollersのトピックRe: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771911#M46935</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, the KEA64 Slave project works on my board. This program is designed in such way when a signal from slave is updated and then a sporadic frame is transmitted from master. So the "for loop in the main program" is not at all executed and I am using PCAN USB pro as my master and PLINView Pro to set the frames. But I donot understand the following part of program. Only the interrupt part with LED toggling is getting executed. And how can I update the signal from slave manually in the program?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if (1==((FTM0_C0SC &amp;amp; FTM_CnSC_CHF_MASK)&amp;gt;&amp;gt;FTM_CnSC_CHF_SHIFT) ) /* If the CHF of the channel is equal to 0 */&lt;BR /&gt;{&lt;BR /&gt;(void)FTM0_C0SC; /* Read to clear flag */&lt;BR /&gt;FTM0_C0SC ^= FTM_CnSC_CHF_MASK; /* Clear flag */&lt;BR /&gt;FTM0_C0V = FTM0_C0V + 391 ; /* Refresh interrupt period */&lt;/P&gt;&lt;P&gt;if (LED_counter&amp;gt;=50){&lt;BR /&gt;/* Toggle LED for LIN transmission */&lt;BR /&gt;/* Reset counter */&lt;BR /&gt;LED0_TOGGLE;&lt;BR /&gt;LED_counter = 0;&lt;BR /&gt;if (Motor1_Selection == MOTOR_SELECTION_INCREASE){&lt;BR /&gt;printf("motor1 slave");&lt;BR /&gt;Motor1_temp++; &lt;BR /&gt;LED2_ON;&lt;BR /&gt;LED3_OFF;&lt;/P&gt;&lt;P&gt;} &lt;BR /&gt;else if (Motor1_Selection == MOTOR_SELECTION_DECREASE){&lt;BR /&gt;Motor1_temp--;&lt;BR /&gt;LED2_OFF;&lt;BR /&gt;LED3_ON;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;LED_counter++;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;And as soon as I connected my LIN slave to the master PCANUSB pro the led0 started blinking.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 11 Jan 2018 10:17:06 GMT</pubDate>
    <dc:creator>jananisubraveti</dc:creator>
    <dc:date>2018-01-11T10:17:06Z</dc:date>
    <item>
      <title>Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771909#M46933</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using&amp;nbsp;FSL_LIN_2x_STACK_PACKAGE_4.5.9 and running an example design for LIN slave on kinetis KEA64.&lt;/P&gt;&lt;P&gt;I want to use the function to transmit a response using the following function but I couldnot see any response from the slave to the master.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my main.c file and the lin_lld_uart.c files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt; * main implementation: use this 'C' sample to create your own application&lt;BR /&gt; */&lt;BR /&gt;&lt;BR /&gt;#define MOTOR_SELECTION_INCREASE 1&lt;BR /&gt;#define MOTOR_SELECTION_DECREASE 2&lt;BR /&gt;#define MOTOR_SELECTION_STOP 3&lt;BR /&gt;/**********************************************************************************************&lt;BR /&gt;* Global variables&lt;BR /&gt;**********************************************************************************************/&lt;BR /&gt;l_u8 LIN_counter =0, LED_counter = 0;&lt;BR /&gt;l_u8 Motor1_temp = 30;&lt;BR /&gt;l_u8 Motor1_Selection;&lt;BR /&gt;/***********************************************************************************************&lt;BR /&gt;*&lt;BR /&gt;* @brief CLK_Init - Initialize the clocks to run at 20 MHz from the 10Mhz external XTAL&lt;BR /&gt;* @param none&lt;BR /&gt;* @return none&lt;BR /&gt;*&lt;BR /&gt;************************************************************************************************/ &lt;BR /&gt;void Clk_Init()&lt;BR /&gt;{&lt;BR /&gt; ICS_C1|=ICS_C1_IRCLKEN_MASK; /* Enable the internal reference clock*/ &lt;BR /&gt; ICS_C3= 0x50; /* Reference clock frequency = 39.0625 KHz*/ &lt;BR /&gt; while(!(ICS_S &amp;amp; ICS_S_LOCK_MASK)); /* Wait for PLL lock, now running at 40 MHz (1024 * 39.0625Khz) */ &lt;BR /&gt; ICS_C2|=ICS_C2_BDIV(1) ; /*BDIV=2, Bus clock = 20 MHz*/&lt;BR /&gt; ICS_S |= ICS_S_LOCK_MASK ; /* Clear Loss of lock sticky bit */ &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/***********************************************************************************************&lt;BR /&gt;*&lt;BR /&gt;* @brief lin_application_timer_FTM0 - Initialize the timer for LIN application&lt;BR /&gt;* @param none&lt;BR /&gt;* @return none&lt;BR /&gt;*&lt;BR /&gt;************************************************************************************************/&lt;BR /&gt;void lin_application_timer_FTM0()&lt;BR /&gt;{&lt;BR /&gt; SIM_SCGC |= SIM_SCGC_FTM0_MASK; /* Enable Clock for FTM0 */ &lt;BR /&gt; FTM0_SC |= FTM_SC_PS(7); /* Select Preescaler in this case 128. 20 Mhz /128 =156.25 Khz. */ &lt;BR /&gt; /* Counter increase by one every 6.4 us */ &lt;BR /&gt; /* Enable Channle 0*/&lt;BR /&gt; FTM0_C0SC |= FTM_CnSC_CHIE_MASK; /* Enable channel 0 interrupt */&lt;BR /&gt; FTM0_C0SC |= FTM_CnSC_MSA_MASK; /* Channel as Output compare mode */ &lt;BR /&gt; /*Select interrupt frequency*/&lt;BR /&gt; FTM0_C0V = FTM_CnV_VAL(391) ; /* Interrupt every 2.5ms */&lt;/P&gt;&lt;P&gt;FTM0_SC |= FTM_SC_CLKS(1); /*FTM0 use system clock*/&lt;BR /&gt; &lt;BR /&gt; /* Set the ICPR and ISER registers accordingly */&lt;BR /&gt; NVIC_ICPR |= 1 &amp;lt;&amp;lt; ((INT_FTM0-16)%32);&lt;BR /&gt; NVIC_ISER |= 1 &amp;lt;&amp;lt; ((INT_FTM0-16)%32);&lt;BR /&gt;}&lt;BR /&gt;void main() &lt;BR /&gt;{&lt;BR /&gt; l_u8 ret;&lt;BR /&gt; l_u8 vector_number;&lt;BR /&gt; //l_u16 i;&lt;BR /&gt; Clk_Init();&lt;BR /&gt; GPIO_Init();&lt;BR /&gt; ret = l_sys_init();&lt;BR /&gt; ret = l_ifc_init(LI0);&lt;BR /&gt; &lt;BR /&gt; vector_number = INT_UART0 -16;&lt;BR /&gt; &lt;BR /&gt; NVIC_ICPR |= 1 &amp;lt;&amp;lt; (vector_number%32);&lt;BR /&gt; NVIC_ISER |= 1 &amp;lt;&amp;lt; (vector_number%32);&lt;BR /&gt; lin_application_timer_FTM0();&lt;BR /&gt; for (;;){&lt;BR /&gt; /* Check if temp signal is updated */&lt;BR /&gt; if (l_flg_tst_LI0_Motor1Selection_flag()){&lt;BR /&gt; /* Clear this flag... */&lt;BR /&gt; l_flg_clr_LI0_Motor1Selection_flag();&lt;BR /&gt; /* Store selection data */&lt;BR /&gt; Motor1_Selection = l_u8_rd_LI0_Motor1Selection();&lt;BR /&gt; /* The application will change Motor selection in case &lt;BR /&gt; the temperature is greater than maximum value to release motor power&lt;BR /&gt; This will be transfered by sporadic frame type in LIN bus */&lt;BR /&gt; l_u8_wr_LI0_Motor1Temp(Motor1_temp); &lt;BR /&gt; /* Check if power off motor due to high temperature */&lt;BR /&gt; if (Motor1_Selection == MOTOR_SELECTION_STOP) {&lt;BR /&gt; /*---------- add code here to stop motor ------------*/ &lt;BR /&gt; }&lt;BR /&gt; if (Motor1_Selection == MOTOR_SELECTION_INCREASE){&lt;BR /&gt; LED2_ON; &lt;BR /&gt; } &lt;BR /&gt; if (Motor1_Selection == MOTOR_SELECTION_DECREASE){&lt;BR /&gt; LED2_OFF;&lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void FTM0_IRQHandler()&lt;BR /&gt; { &lt;BR /&gt; if (1==((FTM0_C0SC &amp;amp; FTM_CnSC_CHF_MASK)&amp;gt;&amp;gt;FTM_CnSC_CHF_SHIFT) ) /* If the CHF of the channel is equal to 0 */&lt;BR /&gt; {&lt;BR /&gt; (void)FTM0_C0SC; /* Read to clear flag */&lt;BR /&gt; FTM0_C0SC ^= FTM_CnSC_CHF_MASK; /* Clear flag */&lt;BR /&gt; FTM0_C0V = FTM0_C0V + 391 ; /* Refresh interrupt period */&lt;BR /&gt; &lt;BR /&gt; if (LED_counter&amp;gt;=50){&lt;BR /&gt; /* Toggle LED for LIN transmission */&lt;BR /&gt; /* Reset counter */&lt;BR /&gt; LED0_TOGGLE;&lt;BR /&gt;lin_lld_uart_tx_response();&amp;nbsp; //here my slave should transmit a response for the LIN transmission&amp;nbsp;&lt;BR /&gt; LED_counter = 0;&lt;BR /&gt; if (Motor1_Selection == MOTOR_SELECTION_INCREASE){&lt;BR /&gt; Motor1_temp++; &lt;BR /&gt; LED2_ON;&lt;BR /&gt; LED3_OFF;&lt;BR /&gt; } &lt;BR /&gt; else if (Motor1_Selection == MOTOR_SELECTION_DECREASE){&lt;BR /&gt; Motor1_temp--;&lt;BR /&gt; LED2_OFF;&lt;BR /&gt; LED3_ON;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; LED_counter++;&lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This part of the code or function definition is from lin_lld_uart.c file and this function is declared in lin_lld_uart.h file.&lt;/P&gt;&lt;P&gt;void lin_lld_uart_tx_response&lt;BR /&gt;(&lt;BR /&gt;)&lt;BR /&gt;{&lt;BR /&gt; /* calculate checksum */&lt;BR /&gt; response_buffer[*(response_buffer)+1] = lin_checksum(response_buffer, pid);&lt;BR /&gt; cnt_byte = 1;&lt;BR /&gt; /* Send First byte */&lt;BR /&gt; pUART-&amp;gt;uartd.byte = response_buffer[1];&lt;BR /&gt; /* Set LIN Status */&lt;BR /&gt; state = SEND_DATA;&lt;BR /&gt;} /* End function lin_lld_UART_tx_response() */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can i transmit a response from slave?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Jan 2018 10:26:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771909#M46933</guid>
      <dc:creator>jananisubraveti</dc:creator>
      <dc:date>2018-01-08T10:26:55Z</dc:date>
    </item>
    <item>
      <title>Re: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771910#M46934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the LIN Stack V4.5.9 provided LIN slave demo works on your site?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Jan 2018 04:59:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771910#M46934</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-01-11T04:59:09Z</dc:date>
    </item>
    <item>
      <title>Re: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771911#M46935</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, the KEA64 Slave project works on my board. This program is designed in such way when a signal from slave is updated and then a sporadic frame is transmitted from master. So the "for loop in the main program" is not at all executed and I am using PCAN USB pro as my master and PLINView Pro to set the frames. But I donot understand the following part of program. Only the interrupt part with LED toggling is getting executed. And how can I update the signal from slave manually in the program?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if (1==((FTM0_C0SC &amp;amp; FTM_CnSC_CHF_MASK)&amp;gt;&amp;gt;FTM_CnSC_CHF_SHIFT) ) /* If the CHF of the channel is equal to 0 */&lt;BR /&gt;{&lt;BR /&gt;(void)FTM0_C0SC; /* Read to clear flag */&lt;BR /&gt;FTM0_C0SC ^= FTM_CnSC_CHF_MASK; /* Clear flag */&lt;BR /&gt;FTM0_C0V = FTM0_C0V + 391 ; /* Refresh interrupt period */&lt;/P&gt;&lt;P&gt;if (LED_counter&amp;gt;=50){&lt;BR /&gt;/* Toggle LED for LIN transmission */&lt;BR /&gt;/* Reset counter */&lt;BR /&gt;LED0_TOGGLE;&lt;BR /&gt;LED_counter = 0;&lt;BR /&gt;if (Motor1_Selection == MOTOR_SELECTION_INCREASE){&lt;BR /&gt;printf("motor1 slave");&lt;BR /&gt;Motor1_temp++; &lt;BR /&gt;LED2_ON;&lt;BR /&gt;LED3_OFF;&lt;/P&gt;&lt;P&gt;} &lt;BR /&gt;else if (Motor1_Selection == MOTOR_SELECTION_DECREASE){&lt;BR /&gt;Motor1_temp--;&lt;BR /&gt;LED2_OFF;&lt;BR /&gt;LED3_ON;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;LED_counter++;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;And as soon as I connected my LIN slave to the master PCANUSB pro the led0 started blinking.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Jan 2018 10:17:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771911#M46935</guid>
      <dc:creator>jananisubraveti</dc:creator>
      <dc:date>2018-01-11T10:17:06Z</dc:date>
    </item>
    <item>
      <title>Re: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771912#M46936</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the later reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The LIN Slave application calls the lin_application_timer_FTM0() function, which enable the FTM0 module.&lt;/P&gt;&lt;P&gt;The FTM0 will generate the interrupt every 2.5ms.&lt;/P&gt;&lt;P&gt;In FTM0_IRQHandler() function, the LED0 will toggle every 2.5X50 = 125ms.&lt;/P&gt;&lt;P&gt;When the KEA64 board with board, the LED0 will start toggle without LIN bus working or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void lin_application_timer_FTM0()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SIM_SCGC |= SIM_SCGC_FTM0_MASK; /* Enable Clock for FTM0 */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FTM0_SC |= FTM_SC_PS(7);&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Select Preescaler in this case 128. 20 Mhz /128 =156.25 Khz. */ &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Counter increase by one every 6.4 us */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable Channle 0*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FTM0_C0SC |= FTM_CnSC_CHIE_MASK; /* Enable channel 0 interrupt */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FTM0_C0SC |= FTM_CnSC_MSA_MASK;&amp;nbsp; /* Channel as Output compare mode */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*Select interrupt frequency*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FTM0_C0V = FTM_CnV_VAL(391) ;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;/* Interrupt every 2.5ms */&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FTM0_SC |= FTM_SC_CLKS(1); /*FTM0 use system clock*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set the ICPR and ISER registers accordingly */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_ICPR |= 1 &amp;lt;&amp;lt; ((INT_FTM0-16)%32);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_ISER |= 1 &amp;lt;&amp;lt; ((INT_FTM0-16)%32);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Jan 2018 09:05:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771912#M46936</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-01-18T09:05:59Z</dc:date>
    </item>
    <item>
      <title>Re: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771913#M46937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yeah, it means that LED0 will toggle for no matter there is LIN transmission between master and slave. Then it is not compulsory to name the function by "lin_application_timer_FTM0()" and it can be any name right? A timer interrupt is running and LED0 will toggle on this timer interrupt, that's it right? It has nothing to do with LIN transmission from master to slave for LED0. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Jan 2018 14:51:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771913#M46937</guid>
      <dc:creator>jananisubraveti</dc:creator>
      <dc:date>2018-01-18T14:51:51Z</dc:date>
    </item>
    <item>
      <title>Re: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771914#M46938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How can I use the function lin_lld_uart_tx_response(); to send a response byte from my slave to master. My slave is receiving only and is not sending any response byte. And the response buffer i filled it with number 9. How can I add lines of code when it receives unconditional frame from master, my slave should respond back with number 9 using the following functions. &lt;/P&gt;&lt;P&gt;lin_lld_uart_rx_response(1);&lt;BR /&gt;lin_lld_uart_tx_response();&lt;/P&gt;&lt;P&gt;And how to detect an unconditional frame from the identifier or PID ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Jan 2018 15:20:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771914#M46938</guid>
      <dc:creator>jananisubraveti</dc:creator>
      <dc:date>2018-01-18T15:20:12Z</dc:date>
    </item>
    <item>
      <title>Re: Using lin_lld_uart_tx_response(); function for transmitting LIN response data</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771915#M46939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The LIN Stack for KEA product demo also provides how to response LIN Master.&lt;/P&gt;&lt;P&gt;The below function called in KEA64_LIN_Slave project will response LIN master with Motor1 Temperature.&lt;/P&gt;&lt;P&gt;l_u8_wr_LI0_Motor1Temp(Motor1_temp);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had make some change with LIN Master schedule table just with [NormalTable]:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22721i7564E1B9280EA7F3/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23040i85F366556ADDFB62/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;[Motor1Control] is LIN Master send to select motor1;&lt;/P&gt;&lt;P&gt;[Motor1State_Cycl] in LIN Slave send to response the motor1 state (6 bytes).&lt;/P&gt;&lt;P&gt;The 6 bytes located in lin_pFrameBuf[LIN_FRAME_BUF_SIZE] array at &amp;lt;lin_cfg.c&amp;gt; file:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23080i5C891433AAD55A86/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The l_u8_wr_LI0_Motor1Temp(Motor1_temp); function will modify the [Motor1State_Cycl] related data range.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For my LIN bus analyzer tool with some issues, I use scope to capture the LIN bus signal and could find the LIN Slave response data to LIN master.&lt;/P&gt;&lt;P&gt;Please check below LIN Bus communication signals:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_4.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22820i8D0682E423562E7C/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_4.png" alt="pastedImage_4.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_5.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23231i5AFD4B5BE1D6C7C4/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_5.png" alt="pastedImage_5.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_6.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22947iCA6A6C7D7E86BD91/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_6.png" alt="pastedImage_6.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;After I change the response data value, then I could get below LIN Slave response data changed.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_7.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22966i18138285B96EE7B1/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_7.png" alt="pastedImage_7.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Jan 2018 04:54:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Using-lin-lld-uart-tx-response-function-for-transmitting-LIN/m-p/771915#M46939</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-01-24T04:54:41Z</dc:date>
    </item>
  </channel>
</rss>

