<?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>LPC MicrocontrollersのトピックRe: LPC55S06 CAN TX issue</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713702#M53960</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Regarding your issue,&amp;nbsp; the api function MCAN_TransferSendBlocking(MAUTO_CAN,0, &amp;amp;txXfer); write TX buffer with the function status_t MCAN_WriteTxBuffer(CAN_Type *base, uint8_t idx, const mcan_tx_buffer_frame_t *pTxFrame); so before you call the MCAN_TransferSendBlocking(), you have to initialize the TX buffer with index 0.&lt;/P&gt;
&lt;P&gt;You can use the following code to initialize TX buffer, Note that the TX_BUFFER_OFS is an accumulated address for TX buffer.&lt;/P&gt;
&lt;P&gt;Pls refer to section 41.8.31 Tx buffer configuration register which specify the CAN buffer address in SRAM. Pls refer to the section&amp;nbsp;41.5.1 Message RAM configuration for the memory allocation. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/* TX buffer config. */&lt;BR /&gt;memset(&amp;amp;txBuffer, 0, sizeof(txBuffer));&lt;BR /&gt;txBuffer.address = TX_BUFFER_OFS;&lt;BR /&gt;txBuffer.dedicatedSize = 1U;&lt;BR /&gt;txBuffer.fqSize = 0;&lt;BR /&gt;txBuffer.datafieldSize = kMCAN_8ByteDatafield;&lt;BR /&gt;#if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt;txBuffer.datafieldSize = BYTES_IN_MB;&lt;BR /&gt;#endif&lt;BR /&gt;MCAN_SetTxBufferConfig(EXAMPLE_MCAN, &amp;amp;txBuffer);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 30 Aug 2023 05:10:21 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2023-08-30T05:10:21Z</dc:date>
    <item>
      <title>LPC55S06 CAN TX issue</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1712767#M53944</link>
      <description>&lt;P&gt;We are using LPC55S06 board, we're working with CAN, we are receiving the data from the CAN successfully but when we try CAN transmission it is not working.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;void can_transfer(uint16_t can_id)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memset(tx_data,'A',64);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.xtd&amp;nbsp; = kMCAN_FrameIDStandard;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.rtr&amp;nbsp; = kMCAN_FrameTypeData;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.fdf&amp;nbsp; = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.brs&amp;nbsp; = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.dlc&amp;nbsp; = 8U;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.id&amp;nbsp; &amp;nbsp;= (can_id &amp;lt;&amp;lt; STDID_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.data = tx_data;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txFrame.size = 8;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txXfer.frame = &amp;amp;txFrame;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txXfer.bufferIdx = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MCAN_TransferSendBlocking(MAUTO_CAN,0, &amp;amp;txXfer);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;after execution of this funciton code is waiting at&amp;nbsp;&amp;nbsp; /* Wait until message sent out. */&lt;BR /&gt;while (0U == MCAN_IsTransmitOccurred(base, idx))&amp;nbsp; &amp;nbsp;in&amp;nbsp;&lt;SPAN&gt;MCAN_TransferSendBlocking fucntion so please suggest possibel issue with our code&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Aug 2023 05:14:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1712767#M53944</guid>
      <dc:creator>gowthami_budideti</dc:creator>
      <dc:date>2023-08-29T05:14:44Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S06 CAN TX issue</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713702#M53960</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Regarding your issue,&amp;nbsp; the api function MCAN_TransferSendBlocking(MAUTO_CAN,0, &amp;amp;txXfer); write TX buffer with the function status_t MCAN_WriteTxBuffer(CAN_Type *base, uint8_t idx, const mcan_tx_buffer_frame_t *pTxFrame); so before you call the MCAN_TransferSendBlocking(), you have to initialize the TX buffer with index 0.&lt;/P&gt;
&lt;P&gt;You can use the following code to initialize TX buffer, Note that the TX_BUFFER_OFS is an accumulated address for TX buffer.&lt;/P&gt;
&lt;P&gt;Pls refer to section 41.8.31 Tx buffer configuration register which specify the CAN buffer address in SRAM. Pls refer to the section&amp;nbsp;41.5.1 Message RAM configuration for the memory allocation. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/* TX buffer config. */&lt;BR /&gt;memset(&amp;amp;txBuffer, 0, sizeof(txBuffer));&lt;BR /&gt;txBuffer.address = TX_BUFFER_OFS;&lt;BR /&gt;txBuffer.dedicatedSize = 1U;&lt;BR /&gt;txBuffer.fqSize = 0;&lt;BR /&gt;txBuffer.datafieldSize = kMCAN_8ByteDatafield;&lt;BR /&gt;#if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt;txBuffer.datafieldSize = BYTES_IN_MB;&lt;BR /&gt;#endif&lt;BR /&gt;MCAN_SetTxBufferConfig(EXAMPLE_MCAN, &amp;amp;txBuffer);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Aug 2023 05:10:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713702#M53960</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2023-08-30T05:10:21Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S06 CAN TX issue</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713729#M53962</link>
      <description>&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MCAN_Init(MAUTO_CAN, &amp;amp;mcanConfig, MCAN_CLK_FREQ);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memoryConfig.baseAddr = (uint32_t)msgRam;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rxFifo0.address&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= RX_FIFO0_OFS;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rxFifo0.elementSize&amp;nbsp; &amp;nbsp;= 1U;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rxFifo0.watermark&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rxFifo0.opmode&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = kMCAN_FifoBlocking;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rxFifo0.datafieldSize = kMCAN_8ByteDatafield;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;#if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rxFifo0.datafieldSize = BYTES_IN_MB;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;#endif&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memoryConfig.rxFifo0Cfg = &amp;amp;rxFifo0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* TX buffer config. */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txBuffer.address&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= TX_BUFFER_OFS;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txBuffer.dedicatedSize = 1U;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txBuffer.fqSize&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txBuffer.datafieldSize = kMCAN_8ByteDatafield;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;#if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;txBuffer.datafieldSize = BYTES_IN_MB;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;#endif&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memoryConfig.txBufferCfg = &amp;amp;txBuffer;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Set Message RAM config and clear memory to avoid BEU/BEC error. */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memset((void *)msgRam, 0, MSG_RAM_SIZE * sizeof(uint8_t));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (kStatus_Success != MCAN_SetMessageRamConfig(MAUTO_CAN, &amp;amp;memoryConfig))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PRINTF("MCAN Message RAM configuration failed, please check parameters!\r\n");&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return -1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MCAN_EnableInterrupts(MAUTO_CAN, 0, CAN_IE_RF0NE_MASK);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;EnableIRQ(CAN0_IRQ0_IRQn);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We're following the above configurations.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Aug 2023 05:56:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713729#M53962</guid>
      <dc:creator>gowthami_budideti</dc:creator>
      <dc:date>2023-08-30T05:56:48Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S06 CAN TX issue</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713744#M53963</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Okay, I see that the TX buffer is initialized.&lt;/P&gt;
&lt;P&gt;For the api function MCAN_TransferSendBlocking(MAUTO_CAN,0, &amp;amp;txXfer); it uses polling mode instead of interrupt mode, but the example architecture is based on interrupt mode.&lt;/P&gt;
&lt;P&gt;Pls try to comment the MCAN_TransferCreateHandle(EXAMPLE_MCAN, &amp;amp;mcanHandle, mcan_callback, NULL); which enable and initialize the interrupt and have a try&lt;/P&gt;
&lt;P&gt;Hope it is helpful&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Aug 2023 06:24:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713744#M53963</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2023-08-30T06:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S06 CAN TX issue</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713999#M53968</link>
      <description>void can_transfer(uint16_t can_id)&lt;BR /&gt;{&lt;BR /&gt;memset(tx_data,0,64);&lt;BR /&gt;txFrame.xtd = kMCAN_FrameIDStandard;&lt;BR /&gt;txFrame.rtr = kMCAN_FrameTypeData;&lt;BR /&gt;txFrame.fdf = 0;&lt;BR /&gt;txFrame.brs = 0;&lt;BR /&gt;txFrame.dlc = 8U;&lt;BR /&gt;txFrame.id = (can_id &amp;lt;&amp;lt; STDID_OFFSET);&lt;BR /&gt;txFrame.data = tx_data;&lt;BR /&gt;txFrame.size = 8;&lt;BR /&gt;txXfer.frame = &amp;amp;txFrame;&lt;BR /&gt;txXfer.bufferIdx = 0;&lt;BR /&gt;&lt;BR /&gt;MCAN_TransferSendBlocking(MAUTO_CAN, &amp;amp;mcanHandle, &amp;amp;txXfer);&lt;BR /&gt;&lt;BR /&gt;while (!txComplete)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;txComplete = false;&lt;BR /&gt;// MCAN_TransferSendBlocking(MAUTO_CAN, &amp;amp;mcanHandle, &amp;amp;txFrame);&lt;BR /&gt;// MCAN_TransferSendNonBlocking(MAUTO_CAN, &amp;amp;mcanHandle, &amp;amp;txXfer);&lt;BR /&gt;//&lt;BR /&gt;// status_t status = MCAN_WriteTxBuffer(MAUTO_CAN, 0, &amp;amp;txFrame);&lt;BR /&gt;// MCAN_TransmitAddRequest(MAUTO_CAN, 0);&lt;BR /&gt;// if(status == kStatus_Success)&lt;BR /&gt;// {&lt;BR /&gt;// UART_PRINT("Transmited CAN message!\r\n");&lt;BR /&gt;// }&lt;BR /&gt;// else&lt;BR /&gt;// {&lt;BR /&gt;// UART_PRINT("*Error: Failed to transmit CAN message*\r\n");&lt;BR /&gt;// }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;MCAN_Init(MAUTO_CAN, &amp;amp;mcanConfig, MCAN_CLK_FREQ);&lt;BR /&gt;&lt;BR /&gt;memoryConfig.baseAddr = (uint32_t)msgRam;&lt;BR /&gt;&lt;BR /&gt;rxFifo0.address = RX_FIFO0_OFS;&lt;BR /&gt;rxFifo0.elementSize = 1U;&lt;BR /&gt;rxFifo0.watermark = 0;&lt;BR /&gt;rxFifo0.opmode = kMCAN_FifoBlocking;&lt;BR /&gt;rxFifo0.datafieldSize = kMCAN_8ByteDatafield;&lt;BR /&gt;#if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt;rxFifo0.datafieldSize = BYTES_IN_MB;&lt;BR /&gt;#endif&lt;BR /&gt;memoryConfig.rxFifo0Cfg = &amp;amp;rxFifo0;&lt;BR /&gt;/* TX buffer config. */&lt;BR /&gt;txBuffer.address = TX_BUFFER_OFS;&lt;BR /&gt;txBuffer.dedicatedSize = 1U;&lt;BR /&gt;txBuffer.fqSize = 0;&lt;BR /&gt;txBuffer.datafieldSize = kMCAN_8ByteDatafield;&lt;BR /&gt;#if (defined(USE_CANFD) &amp;amp;&amp;amp; USE_CANFD)&lt;BR /&gt;txBuffer.datafieldSize = BYTES_IN_MB;&lt;BR /&gt;#endif&lt;BR /&gt;memoryConfig.txBufferCfg = &amp;amp;txBuffer;&lt;BR /&gt;/* Set Message RAM config and clear memory to avoid BEU/BEC error. */&lt;BR /&gt;memset((void *)msgRam, 0, MSG_RAM_SIZE * sizeof(uint8_t));&lt;BR /&gt;if (kStatus_Success != MCAN_SetMessageRamConfig(MAUTO_CAN, &amp;amp;memoryConfig))&lt;BR /&gt;{&lt;BR /&gt;PRINTF("MCAN Message RAM configuration failed, please check parameters!\r\n");&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;BR /&gt;/*MCAN_EnableInterrupts(MAUTO_CAN, 0, CAN_IE_RF0NE_MASK);&lt;BR /&gt;EnableIRQ(CAN0_IRQ0_IRQn);*/&lt;BR /&gt;MCAN_TransferCreateHandle(MAUTO_CAN, &amp;amp;mcanHandle, mcan_callback, NULL);&lt;BR /&gt;&lt;BR /&gt;still we are facing same issue&lt;BR /&gt;</description>
      <pubDate>Wed, 30 Aug 2023 11:22:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S06-CAN-TX-issue/m-p/1713999#M53968</guid>
      <dc:creator>gowthami_budideti</dc:creator>
      <dc:date>2023-08-30T11:22:11Z</dc:date>
    </item>
  </channel>
</rss>

