<?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 Unable to Send/Receive can messages to PCAN adapter from K66F Flexcan  in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Unable-to-Send-Receive-can-messages-to-PCAN-adapter-from-K66F/m-p/964800#M55107</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am unable to send/receive CAN msgs to PCAN adapter from K66F microcontroller, my connection setup is as follows,&lt;/P&gt;&lt;P&gt;K66F is connected to&amp;nbsp;CAN-Transceiver TJA1050 (120 ohms terminated) to CANH and CANL of Peak can adapter(120 ohms terminated).&amp;nbsp;I am using SDK Flexcan loopback example and modified can bus timing and also made sure that baud rate is 50 kbps when I connect CANH and CANL to oscilloscope all I see is error frames, bit stuff error frames and unknown CAN message with unknown ID.&amp;nbsp; I think the problem is with setting bus timing. Please find the modified K66F flex can loopback code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86155iEBB794EDE9885FE5/image-size/large?v=v2&amp;amp;px=999" title="PCAN_settings.PNG" alt="PCAN_settings.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;static void flexcan_callback(CAN_Type *base, flexcan_handle_t *handle, status_t status, uint32_t result, void *userData) {&lt;/P&gt;&lt;P&gt;switch (status) {&lt;/P&gt;&lt;P&gt;/* Process FlexCAN Rx event. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kStatus_FLEXCAN_RxIdle:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (RX_MESSAGE_BUFFER_NUM == result) { rxComplete = true; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;/* Process FlexCAN Tx event. */&lt;/P&gt;&lt;P&gt;case kStatus_FLEXCAN_TxIdle:&lt;/P&gt;&lt;P&gt;if (TX_MESSAGE_BUFFER_NUM == result) { txComplete = true; }&lt;/P&gt;&lt;P&gt;break;&lt;/P&gt;&lt;P&gt;default: break; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*! * @brief Main function */&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;flexcan_config_t flexcanConfig;&lt;/P&gt;&lt;P&gt;flexcan_rx_mb_config_t mbConfig;&lt;/P&gt;&lt;P&gt;/* Initialize board hardware. */&lt;/P&gt;&lt;P&gt;BOARD_InitPins();&lt;BR /&gt; BOARD_BootClockRUN();&lt;BR /&gt; BOARD_InitDebugConsole();&lt;/P&gt;&lt;P&gt;PRINTF("\r\n==FlexCAN loopback example -- Start.==\r\n\r\n");&lt;/P&gt;&lt;P&gt;FLEXCAN_GetDefaultConfig(&amp;amp;flexcanConfig);&lt;/P&gt;&lt;P&gt;#if (!defined(FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE)) || !FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE&lt;BR /&gt; flexcanConfig.clkSrc = kFLEXCAN_ClkSrcOsc;&lt;BR /&gt; #else&lt;BR /&gt; #if defined(CAN_CTRL1_CLKSRC_MASK)&lt;BR /&gt; if (!FSL_FEATURE_FLEXCAN_INSTANCE_SUPPORT_ENGINE_CLK_SEL_REMOVEn(EXAMPLE_CAN))&lt;BR /&gt; {&lt;BR /&gt; flexcanConfig.clkSrc = kFLEXCAN_ClkSrcPeri;&lt;BR /&gt; }&lt;BR /&gt; #endif&lt;BR /&gt; #endif /* FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE */&lt;/P&gt;&lt;P&gt;flexcanConfig.enableLoopBack = false;&lt;BR /&gt; flexcanConfig.baudRate = 50000;&lt;BR /&gt; flexcanConfig.timingConfig.phaseSeg1 = 3;&lt;BR /&gt; flexcanConfig.timingConfig.phaseSeg2 = 2;&lt;BR /&gt; flexcanConfig.timingConfig.propSeg = 1;&lt;BR /&gt; flexcanConfig.timingConfig.rJumpwidth = 1;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; FLEXCAN_FDInit(EXAMPLE_CAN, &amp;amp;flexcanConfig, EXAMPLE_CAN_CLK_FREQ, BYTES_IN_MB, false);&lt;BR /&gt; #else&lt;BR /&gt; FLEXCAN_Init(EXAMPLE_CAN, &amp;amp;flexcanConfig, 12000000UL);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Setup Rx Message Buffer. */&lt;BR /&gt; mbConfig.format = kFLEXCAN_FrameFormatStandard;&lt;BR /&gt; mbConfig.type = kFLEXCAN_FrameTypeData;&lt;BR /&gt; mbConfig.id = FLEXCAN_ID_STD(0x321);&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_NUM, &amp;amp;mbConfig, true);&lt;BR /&gt; #else&lt;BR /&gt; FLEXCAN_SetRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_NUM, &amp;amp;mbConfig, true);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Setup Tx Message Buffer. */&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; FLEXCAN_SetFDTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true);&lt;BR /&gt; #else&lt;BR /&gt; FLEXCAN_SetTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Create FlexCAN handle structure and set call back function. */&lt;BR /&gt; FLEXCAN_TransferCreateHandle(EXAMPLE_CAN, &amp;amp;flexcanHandle, flexcan_callback, NULL);&lt;/P&gt;&lt;P&gt;/* Start receive data through Rx Message Buffer. */&lt;BR /&gt; rxXfer.mbIdx = RX_MESSAGE_BUFFER_NUM;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; rxXfer.framefd = &amp;amp;rxFrame;&lt;BR /&gt; FLEXCAN_TransferFDReceiveNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;rxXfer);&lt;BR /&gt; #else&lt;BR /&gt; rxXfer.frame = &amp;amp;rxFrame;&lt;BR /&gt; FLEXCAN_TransferReceiveNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;rxXfer);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Prepare Tx Frame for sending. */&lt;BR /&gt; txFrame.format = kFLEXCAN_FrameFormatStandard;&lt;BR /&gt; txFrame.type = kFLEXCAN_FrameTypeData;&lt;BR /&gt; txFrame.id = FLEXCAN_ID_STD(0x7B);&lt;BR /&gt; txFrame.length = DLC;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; txFrame.brs = 1;&lt;BR /&gt; #endif&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; uint8_t i = 0;&lt;BR /&gt; for (i = 0; i &amp;lt; DWORD_IN_MB; i++)&lt;BR /&gt; {&lt;BR /&gt; txFrame.dataWord[i] = i;&lt;BR /&gt; }&lt;BR /&gt; #else&lt;BR /&gt; txFrame.dataWord0 = CAN_WORD0_DATA_BYTE_0(0x11) | CAN_WORD0_DATA_BYTE_1(0x22) | CAN_WORD0_DATA_BYTE_2(0x33) |&lt;BR /&gt; CAN_WORD0_DATA_BYTE_3(0x44);&lt;BR /&gt; txFrame.dataWord1 = CAN_WORD1_DATA_BYTE_4(0x55) | CAN_WORD1_DATA_BYTE_5(0x66) | CAN_WORD1_DATA_BYTE_6(0x77) |&lt;BR /&gt; CAN_WORD1_DATA_BYTE_7(0x88);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;PRINTF("Send message from MB%d to MB%d\r\n", TX_MESSAGE_BUFFER_NUM, RX_MESSAGE_BUFFER_NUM);&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; for (i = 0; i &amp;lt; DWORD_IN_MB; i++)&lt;BR /&gt; {&lt;BR /&gt; PRINTF("tx word%d = 0x%x\r\n", i, txFrame.dataWord[i]);&lt;BR /&gt; }&lt;BR /&gt; #else&lt;BR /&gt; PRINTF("tx word0 = 0x%x\r\n", txFrame.dataWord0);&lt;BR /&gt; PRINTF("tx word1 = 0x%x\r\n", txFrame.dataWord1);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt; {&lt;BR /&gt; /* Send data through Tx Message Buffer. */&lt;BR /&gt; txXfer.mbIdx = TX_MESSAGE_BUFFER_NUM;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; txXfer.framefd = &amp;amp;txFrame;&lt;BR /&gt; FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;txXfer);&lt;BR /&gt; #else&lt;BR /&gt; txXfer.frame = &amp;amp;txFrame;&lt;BR /&gt; FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;txXfer);&lt;BR /&gt; #endif&lt;BR /&gt; /* Waiting for Rx Message finish. */&lt;BR /&gt; while ((!rxComplete) || (!txComplete))&lt;BR /&gt; {&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; PRINTF("\r\nReceived message from MB%d\r\n", RX_MESSAGE_BUFFER_NUM);&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; for (i = 0; i &amp;lt; DWORD_IN_MB; i++)&lt;BR /&gt; {&lt;BR /&gt; PRINTF("rx word%d = 0x%x\r\n", i, rxFrame.dataWord[i]);&lt;BR /&gt; }&lt;BR /&gt; #else&lt;BR /&gt; PRINTF("rx word0 = 0x%x\r\n", rxFrame.dataWord0);&lt;BR /&gt; PRINTF("rx word1 = 0x%x\r\n", rxFrame.dataWord1);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;PRINTF("\r\n==FlexCAN loopback example -- Finish.==\r\n");&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please, can anyone help me? Thanks in advance.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 07 Aug 2019 15:36:33 GMT</pubDate>
    <dc:creator>shanker424</dc:creator>
    <dc:date>2019-08-07T15:36:33Z</dc:date>
    <item>
      <title>Unable to Send/Receive can messages to PCAN adapter from K66F Flexcan</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Unable-to-Send-Receive-can-messages-to-PCAN-adapter-from-K66F/m-p/964800#M55107</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am unable to send/receive CAN msgs to PCAN adapter from K66F microcontroller, my connection setup is as follows,&lt;/P&gt;&lt;P&gt;K66F is connected to&amp;nbsp;CAN-Transceiver TJA1050 (120 ohms terminated) to CANH and CANL of Peak can adapter(120 ohms terminated).&amp;nbsp;I am using SDK Flexcan loopback example and modified can bus timing and also made sure that baud rate is 50 kbps when I connect CANH and CANL to oscilloscope all I see is error frames, bit stuff error frames and unknown CAN message with unknown ID.&amp;nbsp; I think the problem is with setting bus timing. Please find the modified K66F flex can loopback code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86155iEBB794EDE9885FE5/image-size/large?v=v2&amp;amp;px=999" title="PCAN_settings.PNG" alt="PCAN_settings.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;static void flexcan_callback(CAN_Type *base, flexcan_handle_t *handle, status_t status, uint32_t result, void *userData) {&lt;/P&gt;&lt;P&gt;switch (status) {&lt;/P&gt;&lt;P&gt;/* Process FlexCAN Rx event. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kStatus_FLEXCAN_RxIdle:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (RX_MESSAGE_BUFFER_NUM == result) { rxComplete = true; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;/* Process FlexCAN Tx event. */&lt;/P&gt;&lt;P&gt;case kStatus_FLEXCAN_TxIdle:&lt;/P&gt;&lt;P&gt;if (TX_MESSAGE_BUFFER_NUM == result) { txComplete = true; }&lt;/P&gt;&lt;P&gt;break;&lt;/P&gt;&lt;P&gt;default: break; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*! * @brief Main function */&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;flexcan_config_t flexcanConfig;&lt;/P&gt;&lt;P&gt;flexcan_rx_mb_config_t mbConfig;&lt;/P&gt;&lt;P&gt;/* Initialize board hardware. */&lt;/P&gt;&lt;P&gt;BOARD_InitPins();&lt;BR /&gt; BOARD_BootClockRUN();&lt;BR /&gt; BOARD_InitDebugConsole();&lt;/P&gt;&lt;P&gt;PRINTF("\r\n==FlexCAN loopback example -- Start.==\r\n\r\n");&lt;/P&gt;&lt;P&gt;FLEXCAN_GetDefaultConfig(&amp;amp;flexcanConfig);&lt;/P&gt;&lt;P&gt;#if (!defined(FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE)) || !FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE&lt;BR /&gt; flexcanConfig.clkSrc = kFLEXCAN_ClkSrcOsc;&lt;BR /&gt; #else&lt;BR /&gt; #if defined(CAN_CTRL1_CLKSRC_MASK)&lt;BR /&gt; if (!FSL_FEATURE_FLEXCAN_INSTANCE_SUPPORT_ENGINE_CLK_SEL_REMOVEn(EXAMPLE_CAN))&lt;BR /&gt; {&lt;BR /&gt; flexcanConfig.clkSrc = kFLEXCAN_ClkSrcPeri;&lt;BR /&gt; }&lt;BR /&gt; #endif&lt;BR /&gt; #endif /* FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE */&lt;/P&gt;&lt;P&gt;flexcanConfig.enableLoopBack = false;&lt;BR /&gt; flexcanConfig.baudRate = 50000;&lt;BR /&gt; flexcanConfig.timingConfig.phaseSeg1 = 3;&lt;BR /&gt; flexcanConfig.timingConfig.phaseSeg2 = 2;&lt;BR /&gt; flexcanConfig.timingConfig.propSeg = 1;&lt;BR /&gt; flexcanConfig.timingConfig.rJumpwidth = 1;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; FLEXCAN_FDInit(EXAMPLE_CAN, &amp;amp;flexcanConfig, EXAMPLE_CAN_CLK_FREQ, BYTES_IN_MB, false);&lt;BR /&gt; #else&lt;BR /&gt; FLEXCAN_Init(EXAMPLE_CAN, &amp;amp;flexcanConfig, 12000000UL);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Setup Rx Message Buffer. */&lt;BR /&gt; mbConfig.format = kFLEXCAN_FrameFormatStandard;&lt;BR /&gt; mbConfig.type = kFLEXCAN_FrameTypeData;&lt;BR /&gt; mbConfig.id = FLEXCAN_ID_STD(0x321);&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_NUM, &amp;amp;mbConfig, true);&lt;BR /&gt; #else&lt;BR /&gt; FLEXCAN_SetRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_NUM, &amp;amp;mbConfig, true);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Setup Tx Message Buffer. */&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; FLEXCAN_SetFDTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true);&lt;BR /&gt; #else&lt;BR /&gt; FLEXCAN_SetTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Create FlexCAN handle structure and set call back function. */&lt;BR /&gt; FLEXCAN_TransferCreateHandle(EXAMPLE_CAN, &amp;amp;flexcanHandle, flexcan_callback, NULL);&lt;/P&gt;&lt;P&gt;/* Start receive data through Rx Message Buffer. */&lt;BR /&gt; rxXfer.mbIdx = RX_MESSAGE_BUFFER_NUM;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; rxXfer.framefd = &amp;amp;rxFrame;&lt;BR /&gt; FLEXCAN_TransferFDReceiveNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;rxXfer);&lt;BR /&gt; #else&lt;BR /&gt; rxXfer.frame = &amp;amp;rxFrame;&lt;BR /&gt; FLEXCAN_TransferReceiveNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;rxXfer);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;/* Prepare Tx Frame for sending. */&lt;BR /&gt; txFrame.format = kFLEXCAN_FrameFormatStandard;&lt;BR /&gt; txFrame.type = kFLEXCAN_FrameTypeData;&lt;BR /&gt; txFrame.id = FLEXCAN_ID_STD(0x7B);&lt;BR /&gt; txFrame.length = DLC;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; txFrame.brs = 1;&lt;BR /&gt; #endif&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; uint8_t i = 0;&lt;BR /&gt; for (i = 0; i &amp;lt; DWORD_IN_MB; i++)&lt;BR /&gt; {&lt;BR /&gt; txFrame.dataWord[i] = i;&lt;BR /&gt; }&lt;BR /&gt; #else&lt;BR /&gt; txFrame.dataWord0 = CAN_WORD0_DATA_BYTE_0(0x11) | CAN_WORD0_DATA_BYTE_1(0x22) | CAN_WORD0_DATA_BYTE_2(0x33) |&lt;BR /&gt; CAN_WORD0_DATA_BYTE_3(0x44);&lt;BR /&gt; txFrame.dataWord1 = CAN_WORD1_DATA_BYTE_4(0x55) | CAN_WORD1_DATA_BYTE_5(0x66) | CAN_WORD1_DATA_BYTE_6(0x77) |&lt;BR /&gt; CAN_WORD1_DATA_BYTE_7(0x88);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;PRINTF("Send message from MB%d to MB%d\r\n", TX_MESSAGE_BUFFER_NUM, RX_MESSAGE_BUFFER_NUM);&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; for (i = 0; i &amp;lt; DWORD_IN_MB; i++)&lt;BR /&gt; {&lt;BR /&gt; PRINTF("tx word%d = 0x%x\r\n", i, txFrame.dataWord[i]);&lt;BR /&gt; }&lt;BR /&gt; #else&lt;BR /&gt; PRINTF("tx word0 = 0x%x\r\n", txFrame.dataWord0);&lt;BR /&gt; PRINTF("tx word1 = 0x%x\r\n", txFrame.dataWord1);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt; {&lt;BR /&gt; /* Send data through Tx Message Buffer. */&lt;BR /&gt; txXfer.mbIdx = TX_MESSAGE_BUFFER_NUM;&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; txXfer.framefd = &amp;amp;txFrame;&lt;BR /&gt; FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;txXfer);&lt;BR /&gt; #else&lt;BR /&gt; txXfer.frame = &amp;amp;txFrame;&lt;BR /&gt; FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN, &amp;amp;flexcanHandle, &amp;amp;txXfer);&lt;BR /&gt; #endif&lt;BR /&gt; /* Waiting for Rx Message finish. */&lt;BR /&gt; while ((!rxComplete) || (!txComplete))&lt;BR /&gt; {&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; PRINTF("\r\nReceived message from MB%d\r\n", RX_MESSAGE_BUFFER_NUM);&lt;BR /&gt; #if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt; for (i = 0; i &amp;lt; DWORD_IN_MB; i++)&lt;BR /&gt; {&lt;BR /&gt; PRINTF("rx word%d = 0x%x\r\n", i, rxFrame.dataWord[i]);&lt;BR /&gt; }&lt;BR /&gt; #else&lt;BR /&gt; PRINTF("rx word0 = 0x%x\r\n", rxFrame.dataWord0);&lt;BR /&gt; PRINTF("rx word1 = 0x%x\r\n", rxFrame.dataWord1);&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt;PRINTF("\r\n==FlexCAN loopback example -- Finish.==\r\n");&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please, can anyone help me? Thanks in advance.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Aug 2019 15:36:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Unable-to-Send-Receive-can-messages-to-PCAN-adapter-from-K66F/m-p/964800#M55107</guid>
      <dc:creator>shanker424</dc:creator>
      <dc:date>2019-08-07T15:36:33Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to Send/Receive can messages to PCAN adapter from K66F Flexcan</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Unable-to-Send-Receive-can-messages-to-PCAN-adapter-from-K66F/m-p/964801#M55108</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-family: arial; font-size: small;"&gt;Hi Steffen Probst, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial; font-size: small;"&gt;Seems that you have refer the flexcan_interrupt_transfer of TWR-K65F180M SDK.&lt;BR /&gt;According to your codes, &lt;STRONG&gt;OSCERCLK &lt;/STRONG&gt;is select as the clock for the FlexCAN instead of &lt;STRONG&gt;Bus clock&lt;/STRONG&gt;.&amp;nbsp;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86418i7968B08592141D98/image-size/large?v=v2&amp;amp;px=999" title="FlexCAN clocking.png" alt="FlexCAN clocking.png" /&gt;&lt;/span&gt;&lt;BR /&gt;So the &lt;STRONG&gt;sourceClock_Hz &lt;/STRONG&gt;of &lt;STRONG&gt;FLEXCAN_FDInit &lt;/STRONG&gt;should not be 12000000UL?&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86458i5CF06B95A85FF24A/image-size/large?v=v2&amp;amp;px=999" title="FLEXCAN_FDInit.png" alt="FLEXCAN_FDInit.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86485iF432380EE91EE379/image-size/large?v=v2&amp;amp;px=999" title="FLEXCAN_FDInit sourceClock_Hz.png" alt="FLEXCAN_FDInit sourceClock_Hz.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86541iF4CD6DDB7FE5CD4A/image-size/large?v=v2&amp;amp;px=999" title="12MHz crystal FRDM-K66F.png" alt="12MHz crystal FRDM-K66F.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;The oscilloscope should be able to observe the bit time, would you please measure if the bit time meet the baud rate?&lt;BR /&gt;&lt;BR /&gt;Additionally, CAN0_TX and CAN0_RX need to configure.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86583i563BF1C4B1F3955B/image-size/large?v=v2&amp;amp;px=999" title="CAN0_TX CAN0_RX pins.png" alt="CAN0_TX CAN0_RX pins.png" /&gt;&lt;/span&gt;&lt;BR /&gt;For example:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; /* Port B Clock Gate Control: Clock enabled */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; CLOCK_EnableClock(kCLOCK_PortB);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; /* PORTB18 (pin D12) is configured as CAN0_TX */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; PORT_SetPinMux(PORTB, 18U, kPORT_MuxAlt2);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; /* PORTB19 (pin D11) is configured as CAN0_RX */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; PORT_SetPinMux(PORTB, 19U, kPORT_MuxAlt2);&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;Best Regards,&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;Robin&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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, 08 Aug 2019 07:46:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Unable-to-Send-Receive-can-messages-to-PCAN-adapter-from-K66F/m-p/964801#M55108</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2019-08-08T07:46:09Z</dc:date>
    </item>
  </channel>
</rss>

