<?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>S32K中的主题 Re: CAN TX reset issue</title>
    <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1992869#M43182</link>
    <description>&lt;P&gt;Hi NXP,&lt;/P&gt;&lt;P&gt;Please find more details. Could you please share 8byte CAN TX operation example with attached setting. Need example in Blocking mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note: CAN TX not working in Blocking mode, it's not hitting any ISR. If not how to get SUCCESS notification?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have attached all CAN related configuration.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 12 Nov 2024 13:46:01 GMT</pubDate>
    <dc:creator>AbhiMR</dc:creator>
    <dc:date>2024-11-12T13:46:01Z</dc:date>
    <item>
      <title>CAN TX reset issue</title>
      <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1986713#M42840</link>
      <description>&lt;P&gt;Hi NXP,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; I need to operate CAN operation with Blocking mode to send data in faster rate. I have tried non blocking mode , there I have not faced any issue. Once I start using Blocking mode , COntroller will reset whenever I configure non zero value.&lt;/P&gt;&lt;P&gt;FLEXCAN_DRV_SendBlocking(INST_FLEXCAN_CONFIG_1, E_MB_MSG_TX, &amp;amp;arrayMessageBufferInfo[E_MB_MSG_TX].rx_info, psCanFrameToSend-&amp;gt;u32Identifier, psCanFrameToSend-&amp;gt;au8Data, (uint32_t)10UL/* Found Timeout error and operate at 0 */);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here it works only with 0, For other Timeout configs it's resetting the board. Could you please help me out? It's failing in semaphore wait might. Which are all the configs I need to consider when I want to use blocking mode operation&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2024 04:46:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1986713#M42840</guid>
      <dc:creator>AbhiMR</dc:creator>
      <dc:date>2024-11-04T04:46:46Z</dc:date>
    </item>
    <item>
      <title>Re: CAN TX reset issue</title>
      <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1987635#M42892</link>
      <description>&lt;P&gt;Further to my debugging info. The semaphore has not been posted to continue the operation. It has to happen from&amp;nbsp;&amp;nbsp;FLEXCAN_CompleteTransfer(instance, mb_idx); .&amp;nbsp; It will happen only when I receive a TX_Complete interrupt even in blocking mode, It's not happening. The config I am using is of for CAN init&amp;nbsp;&lt;/P&gt;&lt;P&gt;flexcan_user_config_t flexcanInitConfig_500k_listen = {&lt;BR /&gt;.flexcanMode = FLEXCAN_LISTEN_ONLY_MODE,&lt;BR /&gt;.fd_enable = false,&lt;BR /&gt;.payload = FLEXCAN_PAYLOAD_SIZE_8,&lt;BR /&gt;.max_num_mb = 16UL,&lt;BR /&gt;.num_id_filters = FLEXCAN_RX_FIFO_ID_FILTERS_8,&lt;BR /&gt;.is_rx_fifo_needed = false,&lt;BR /&gt;.transfer_type = FLEXCAN_RXFIFO_USING_INTERRUPTS,&lt;BR /&gt;.rxFifoDMAChannel = 0U,&lt;BR /&gt;.pe_clock = FLEXCAN_CLK_SOURCE_OSC,&lt;BR /&gt;.bitrate = {&lt;BR /&gt;.propSeg = 7UL,&lt;BR /&gt;.phaseSeg1 = 4UL,&lt;BR /&gt;.phaseSeg2 = 1UL,&lt;BR /&gt;.preDivider = 1UL,&lt;BR /&gt;.rJumpwidth = 1UL&lt;BR /&gt;}&lt;BR /&gt;};flexcan_user_config_t flexcanInitConfig_500k_listen = {&lt;BR /&gt;.flexcanMode = FLEXCAN_LISTEN_ONLY_MODE,&lt;BR /&gt;.fd_enable = false,&lt;BR /&gt;.payload = FLEXCAN_PAYLOAD_SIZE_8,&lt;BR /&gt;.max_num_mb = 16UL,&lt;BR /&gt;.num_id_filters = FLEXCAN_RX_FIFO_ID_FILTERS_8,&lt;BR /&gt;.is_rx_fifo_needed = false,&lt;BR /&gt;.transfer_type = FLEXCAN_RXFIFO_USING_INTERRUPTS,&lt;BR /&gt;.rxFifoDMAChannel = 0U,&lt;BR /&gt;.pe_clock = FLEXCAN_CLK_SOURCE_OSC,&lt;BR /&gt;.bitrate = {&lt;BR /&gt;.propSeg = 7UL,&lt;BR /&gt;.phaseSeg1 = 4UL,&lt;BR /&gt;.phaseSeg2 = 1UL,&lt;BR /&gt;.preDivider = 1UL,&lt;BR /&gt;.rJumpwidth = 1UL&lt;BR /&gt;}&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;FLEXCAN_DRV_Init(INST_FLEXCAN_CONFIG_1, &amp;amp;flexcanState0, &amp;amp;flexcanInitConfig_500k_listen);&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2024 05:21:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1987635#M42892</guid>
      <dc:creator>AbhiMR</dc:creator>
      <dc:date>2024-11-05T05:21:44Z</dc:date>
    </item>
    <item>
      <title>Re: CAN TX reset issue</title>
      <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1989673#M42987</link>
      <description>&lt;P&gt;Hi@&lt;SPAN&gt;AbhiMR&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Sorry for the long waiting, cause we overloaded recently.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Could you please provided your project and then i will help you to check it.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Nov 2024 02:35:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1989673#M42987</guid>
      <dc:creator>Senlent</dc:creator>
      <dc:date>2024-11-07T02:35:47Z</dc:date>
    </item>
    <item>
      <title>Re: CAN TX reset issue</title>
      <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1992864#M43181</link>
      <description>&lt;P&gt;Hi NXP,&lt;/P&gt;&lt;P&gt;I am sharing all my CAN config. Better if you can provide working example with 8byte TX payload.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please refer the details that we elaborated more&amp;nbsp;&lt;/P&gt;&lt;P&gt;In our application we have the following configuration, which are of initialization and run time operation to transmit the can frame.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*-------------------------------------------------INIT PART ---------------------------------------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;flexcan_user_config_t flexcanInitConfig_500k = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; .flexcanMode = FLEXCAN_NORMAL_MODE,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .fd_enable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .payload = FLEXCAN_PAYLOAD_SIZE_8,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .max_num_mb = 16UL,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .num_id_filters = FLEXCAN_RX_FIFO_ID_FILTERS_8,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .is_rx_fifo_needed = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .transfer_type = FLEXCAN_RXFIFO_USING_INTERRUPTS,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .rxFifoDMAChannel = 0U,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .pe_clock = FLEXCAN_CLK_SOURCE_OSC,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .bitrate = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .propSeg = 7UL,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg1 = 4UL,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg2 = 1UL,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .preDivider = 1UL,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rJumpwidth = 1UL&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;FLEXCAN_DRV_Init(INST_FLEXCAN_CONFIG_1, &amp;amp;flexcanState0, &amp;amp;flexcanInitConfig_500k);&lt;/P&gt;&lt;P&gt;/* Install callback function */&lt;/P&gt;&lt;P&gt;FLEXCAN_DRV_InstallEventCallback(INST_FLEXCAN_CONFIG_1, flexcanCallBack, NULL);&lt;/P&gt;&lt;P&gt;FLEXCAN_DRV_InstallErrorCallback(INST_FLEXCAN_CONFIG_1, flexcanErrorCallBack, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*--------------------------------------------------INIT Completed --------------------------------------------------------------------------------------------*/&lt;/P&gt;&lt;H2&gt;&lt;U&gt;Non-Blocking Mode &lt;/U&gt;&lt;/H2&gt;&lt;P&gt;We have developed our application to transmit CAN frame at every 100ms. In non-blocking mode able to use FLEXCAN_DRV_Send method to transfer CAN Buffer , where we can get FLEXCAN_EVENT_TX_COMPLETE response in the above configured callback "flexcanCallBack". It behaves as expected.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/*------------------------------ Runtime operation ----------------------------------------------*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FLEXCAN_DRV_Send(INST_FLEXCAN_CONFIG_1, E_MB_MSG_TX, &amp;amp;arrayMessageBufferInfo[E_MB_MSG_TX].rx_info, psCanFrameToSend-&amp;gt;u32Identifier, psCanFrameToSend-&amp;gt;au8Data);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/*------------------------------ Runtime operation ----------------------------------------------*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the above implementation we have drawback in transmission of frame at higher speed in non-blocking mode. Transmission is getting delayed whenever we have CAN request on the same time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H2&gt;&lt;U&gt;Blocking mode&lt;/U&gt;&lt;/H2&gt;&lt;P&gt;Thought of trying blocking mode and facing the following issues&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;With Timeout 0UL able to send the CAN frame with expected speed in our application without notifying success message. It will always return &lt;EM&gt;STATUS_TIMEOUT &lt;/EM&gt;from blocking call&lt;EM&gt;.&amp;nbsp; &lt;/EM&gt;We suspect not safer in implementation.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*-----------------------------------Runtime Operation -------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;Returnvalue=FLEXCAN_DRV_SendBlocking(INST_FLEXCAN_CONFIG_1, &lt;EM&gt;E_MB_MSG_TX&lt;/EM&gt;, &amp;amp;arrayMessageBufferInfo[&lt;EM&gt;E_MB_MSG_TX&lt;/EM&gt;].rx_info, psCanFrameToSend-&amp;gt;u32Identifier, psCanFrameToSend-&amp;gt;au8Data, (uint32_t)0UL);&lt;/P&gt;&lt;P&gt;/*-----------------------------------Runtime Operation -------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;I tried sending data with timeout(Any Value from 1UL ) to get &lt;EM&gt;STATUS_SUCCESS &amp;nbsp;&amp;nbsp;. &lt;/EM&gt;In this case controller will go for hang state.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;/*-----------------------------------Runtime Operation -------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;Returnvalue=FLEXCAN_DRV_SendBlocking(INST_FLEXCAN_CONFIG_1, &lt;EM&gt;E_MB_MSG_TX&lt;/EM&gt;, &amp;amp;arrayMessageBufferInfo[&lt;EM&gt;E_MB_MSG_TX&lt;/EM&gt;].rx_info, psCanFrameToSend-&amp;gt;u32Identifier, psCanFrameToSend-&amp;gt;au8Data, (uint32_t)10UL);&lt;/P&gt;&lt;P&gt;/*-----------------------------------Runtime Operation -------------------------------------------------------------------*/&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Observation is that controller is stuck at &lt;STRONG&gt;OSIF_SemaWait &lt;/STRONG&gt;function, because stopped producing osif_Tick. The following line of controller got hang, observed delta is 0 to hang the controller.&lt;/LI&gt;&lt;/OL&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;&amp;nbsp; if ((timeoutTicks != OSIF_WAIT_FOREVER) &amp;amp;&amp;amp; (delta &amp;gt; max)) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Line number 349 in osif_baremetal.c&amp;nbsp; */&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Not received any TX completion interrupt to post semaphore from ISR. Since Post semaphore we have at &lt;STRONG&gt;FLEXCAN_CompleteTransfer &lt;/STRONG&gt;function&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NOTE: It's not hitting any ISR in CAN Blocking mode&amp;nbsp;&lt;/P&gt;&lt;P&gt;Since we don’t have to process anything in non-blocking mode for TX operation. We want to try blocking mode with &lt;EM&gt;STATUS_SUCCESS &amp;nbsp;&amp;nbsp;&lt;/EM&gt;message.&lt;/P&gt;&lt;P&gt;Could you please review the above details and provide us the detail to fix the same and let us know the list of methods to improve CAN TX frame transmission from the application. Share suitable examples to explore all the methods.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Additional note:&lt;/P&gt;&lt;P&gt;Controller: S32k116&lt;/P&gt;&lt;P&gt;SDK Version : S32SDK_S32K1XX_RTM_4.0.2&lt;/P&gt;&lt;P&gt;Referred link : file:///C:/NXP/S32DS.3.4/S32DS/software/S32SDK_S32K1XX_RTM_4.0.2/doc/html_S32K116/group__flexcan__driver.html&lt;/P&gt;</description>
      <pubDate>Tue, 12 Nov 2024 13:35:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1992864#M43181</guid>
      <dc:creator>AbhiMR</dc:creator>
      <dc:date>2024-11-12T13:35:51Z</dc:date>
    </item>
    <item>
      <title>Re: CAN TX reset issue</title>
      <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1992869#M43182</link>
      <description>&lt;P&gt;Hi NXP,&lt;/P&gt;&lt;P&gt;Please find more details. Could you please share 8byte CAN TX operation example with attached setting. Need example in Blocking mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note: CAN TX not working in Blocking mode, it's not hitting any ISR. If not how to get SUCCESS notification?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have attached all CAN related configuration.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Nov 2024 13:46:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1992869#M43182</guid>
      <dc:creator>AbhiMR</dc:creator>
      <dc:date>2024-11-12T13:46:01Z</dc:date>
    </item>
    <item>
      <title>Re: CAN TX reset issue</title>
      <link>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1993498#M43213</link>
      <description>&lt;P&gt;Hi@&lt;SPAN&gt;AbhiMR&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;In the attachment, I have made sample codes for both non-blocking and blocking sending methods.&lt;/P&gt;
&lt;P&gt;You can test these two sample projects. If you have any questions or problems, you can point them out and I will help you reproduce and analyze it&lt;/P&gt;
&lt;P&gt;This is my test, you can send frame ID = 2 from PC to S32K116, S32K116 will send back the received frame counter and transmited frame counter.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Senlent_0-1731486023335.png" style="width: 754px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/310224iD396477054506BC5/image-dimensions/754x180?v=v2" width="754" height="180" role="button" title="Senlent_0-1731486023335.png" alt="Senlent_0-1731486023335.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Nov 2024 08:40:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN-TX-reset-issue/m-p/1993498#M43213</guid>
      <dc:creator>Senlent</dc:creator>
      <dc:date>2024-11-13T08:40:57Z</dc:date>
    </item>
  </channel>
</rss>

