<?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: LIN on DEVKIT-MPC5748G Board in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723945#M9720</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Marek,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;from your description it looks like you do not have set priority for LIN interrupt. Check INTC PSR 376 register and set priority into PRIN field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this does not solve your problem, please let me know.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 28 May 2018 08:35:26 GMT</pubDate>
    <dc:creator>martin_kovar</dc:creator>
    <dc:date>2018-05-28T08:35:26Z</dc:date>
    <item>
      <title>LIN on DEVKIT-MPC5748G Board</title>
      <link>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723944#M9719</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;I have a question about LIN on DEVKIT-MPC5748G Board.&lt;/P&gt;&lt;P&gt;I am trying to configure it as SLAVE (on the board only LINFlexD_0 available).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I configured INPUT anOUTPUT as belo:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure PB2 for AF1 func: LIN0TX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.SSS = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Source signal is LIN0_TXD&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.OBE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Output Buffer Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.ODE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Output Drain Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.PUS = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Pull up selected */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.PUE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Pull Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.SRC = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Maximum slew rate */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure&amp;nbsp; PB3 for LIN0RX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB3].B.IBE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB3: Enable pad for input - LIN0_RXD */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.IMCR[165].B.SSS = 1;&amp;nbsp;&amp;nbsp; /* LIN0_RXD: connected to pad PB3 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also configured LIN module:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enter INIT mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.R = 0x0081; /* SLEEP=0, INIT=1 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait for the INIT mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0x1000 != (LINFlexD_0.LINSR.R &amp;amp; 0xF000)) {}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* configure baudrate 19200 */ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINFBRR.R = 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINIBRR.R = 130;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR2.B.IOBE = 1; /* IOBE=1, Bit error resets LIN state machine */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINTCSR.R = 0; /* LIN timeout mode, no idle on timeout */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.BIDR.B.CCS = 0; /* enhanced checksum for LIN Slave */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINIER.B.HEIE = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINIER.B.DTIE = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINIER.B.DRIE = 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enter NORMAL mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.B.LASE = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.B.MBL = 0b0011;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.B.MME = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.B.SSBL = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.B.INIT = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I place also interrupts vectors:&lt;/P&gt;&lt;P&gt;(uint32_t) &amp;amp;LINFlexD_0_RX_ISR, /* Vector # 376 LinFLEX0_0 LinFlex_0_RXI */&lt;BR /&gt;(uint32_t) &amp;amp;LINFlexD_0_TX_ISR, /* Vector # 377 LinFlex0_1 LinFlex_0_TXI */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am sure that on (LIN0_RX, PB3,&amp;nbsp; MCU pin 1) signal is proper, but MCU doesn't call interrupt function?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have checked LINESR.SZF is set to "1".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you give me a suggestion what could be a problem, I wasn't able to find anything in documentation&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 May 2018 10:20:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723944#M9719</guid>
      <dc:creator>marek_cz</dc:creator>
      <dc:date>2018-05-25T10:20:13Z</dc:date>
    </item>
    <item>
      <title>Re: LIN on DEVKIT-MPC5748G Board</title>
      <link>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723945#M9720</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Marek,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;from your description it looks like you do not have set priority for LIN interrupt. Check INTC PSR 376 register and set priority into PRIN field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this does not solve your problem, please let me know.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 May 2018 08:35:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723945#M9720</guid>
      <dc:creator>martin_kovar</dc:creator>
      <dc:date>2018-05-28T08:35:26Z</dc:date>
    </item>
    <item>
      <title>Re: LIN on DEVKIT-MPC5748G Board</title>
      <link>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723946#M9721</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;proper LIN0 configuration as slave in polling mode&amp;nbsp; for MPC5748G (&lt;A _jive_internal="true" href="https://community.nxp.com/thread/476565?sr=inbox&amp;amp;ru=226707"&gt;DEVKIT-MPC5748G Board&lt;/A&gt;) is as bellow:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure pad PB2: LIN0TX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.SSS = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Source signal is LIN0_TXD&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.OBE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Output Buffer Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.ODE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Output Drain Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.PUS = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Pull up selected */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.PUE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Pull Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB2].B.SRC = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB2: Maximum slew rate */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure pad PB3 for LIN0RX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.MSCR[PB3].B.IBE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Pad PB3: Enable pad for input - LIN0_RXD */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIUL2.IMCR[712-512].B.SSS = 2;&amp;nbsp;&amp;nbsp; /* LIN0_RXD: connected to pad PB3 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /*LIN0 initialization*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enter INIT mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.R = 0x0081; /* SLEEP=0, INIT=1 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait for the INIT mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0x1000 != (LINFlexD_0.LINSR.R &amp;amp; 0xF000)) {}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* configure baudrate 19200 , LIN0&amp;nbsp; is clocked from F40 so reference clock is 40MHz*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VU32 _baudRate;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VU32 _fraction;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VU32 _integer;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _baudRate&amp;nbsp; = (40 * 1000000) / 19200; //MHz * 1000000 /baudRate&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _integer&amp;nbsp;&amp;nbsp; = _baudRate / 16;&amp;nbsp; =&amp;gt; 130&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _fraction&amp;nbsp; = _baudRate - (_integer * 16); =&amp;gt;3&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* assuming 64 MHz peripheral set 1 clock */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; LINFlexD_0.LINIBRR.B.IBR= 130; /* Mantissa baud rate divider component */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; LINFlexD_0.LINFBRR.B.FBR = 3; /* Fraction baud rate divider comonent */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR2.R = 0x40; /* IOBE=1, Bit error resets LIN state machine */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINTCSR.R = 0; /* LIN timeout mode, no idle on timeout */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.BIDR.B.CCS = 0; /* enhanced checksum for LIN Slave */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enter NORMAL mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CCD bit 16 = 0 ... checksum calculation by hardware&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CFD bit 17 = 0 ... checksum field is sent after the required number&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of data bytes is sent&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LASE bit 18 = 1 ... Slave automatic resync enable&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AWUM bit 19 = 0 ... The sleep mode is exited on software request&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MBL bits 20:23 = 0b0011 ... 13-bit LIN Master break length&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BF bit 24 = 1 ... bypass filter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SFTM bit 25 = 0 ... Self Test mode disable&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBKM bit 26 = 0 ... Loop Back mode disable&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MME bit 27 = 0 ... Slave mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SBDT bit 28 = 0 ... 11-bit Slave Mode break threshold&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RBLM bit 29 = 0 ... Receive Buffer not locked on overrun&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SLEEP bit 30 = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INIT bit 31 = 0 ... entering Normal mode&lt;BR /&gt;&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; 0x2380&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINCR1.R = 0x2380;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in polling function there is a need to checking LINFlexD_0.LINSR.B.HRF, when it will be set, set direction of data flow, checksum type, data count and data if it is RX frame:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LINFlexD_0.LINSR.B.HRF==1){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t id=LINFlexD_0.BIDR.B.ID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (id==0x35) //TX frame set only checksum, data flow direction and data count&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;LINFlexD_0.BIDR.B.CCS=0;&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;LINFlexD_0.BIDR.B.DFL=7;&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;LINFlexD_0.BIDR.B.DIR=0;&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (id==0x37) // when RX frame also data should be set&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;LINFlexD_0.BIDR.B.DIR = 1; /* BDR direction - write */&lt;/P&gt;&lt;P&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; LINFlexD_0.BIDR.B.CCS = 0; // enhanced checksum for LIN Slave&lt;/P&gt;&lt;P&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;LINFlexD_0.BIDR.B.DFL = 0x07; // 8 bytes - 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;// fill the data registers&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;LINFlexD_0.BDRL.B.DATA0 = 'X';&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;LINFlexD_0.BDRL.B.DATA1 = 'a';&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;LINFlexD_0.BDRL.B.DATA2 = 'n';&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;LINFlexD_0.BDRL.B.DATA3 = 's';&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;LINFlexD_0.BDRM.B.DATA4 = 'w';&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;LINFlexD_0.BDRM.B.DATA5 = 'e';&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;LINFlexD_0.BDRM.B.DATA6 = 'r';&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;LINFlexD_0.BDRM.B.DATA7 = ' ';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;// specify the data field length BIDR[DFL]&lt;/P&gt;&lt;P&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;// trigger the data transmission&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;LINFlexD_0.LINCR2.B.DTRQ = 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;LINFlexD_0.LINSR.R = 0x1;&amp;nbsp;&amp;nbsp; &amp;nbsp;// clear HRF flag&lt;BR /&gt;&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;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to get received data use code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (LINFlexD_0.LINSR.B.RMB==1)&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; /* get the data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;vuint32_t&amp;nbsp; rx_s_data[8];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[0] = LINFlexD_0.BDRL.B.DATA0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[1] = LINFlexD_0.BDRL.B.DATA1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[2] = LINFlexD_0.BDRL.B.DATA2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[3] = LINFlexD_0.BDRL.B.DATA3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[4] = LINFlexD_0.BDRM.B.DATA4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[5] = LINFlexD_0.BDRM.B.DATA5;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[6] = LINFlexD_0.BDRM.B.DATA6;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_s_data[7] = LINFlexD_0.BDRM.B.DATA7;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear the HRF,DRF and RMB flags by writing 1 to them */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINFlexD_0.LINSR.R = 0x0205;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it works for me, I have spent on it a few time, so maybe it will be usefull for others.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 May 2018 13:41:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/LIN-on-DEVKIT-MPC5748G-Board/m-p/723946#M9721</guid>
      <dc:creator>marek_cz</dc:creator>
      <dc:date>2018-05-29T13:41:08Z</dc:date>
    </item>
  </channel>
</rss>

