<?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中的主题 SDIO internel DMA question of SDIO example code</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SDIO-internel-DMA-question-of-SDIO-example-code/m-p/1190970#M43090</link>
    <description>&lt;P&gt;Borad:LPC54S018M-EVK&lt;/P&gt;&lt;P&gt;SDK example:sdmmc_examples/sdio&lt;/P&gt;&lt;P&gt;My goals: to drive WF200(siliconlabs wireless chip) with sdio peripheral interface&amp;nbsp;&lt;/P&gt;&lt;P&gt;Q1:funtion SDIO_IO_Read_Extended(sdio_card_t *card, sdio_func_num_t func, uint32_t regAddr, uint8_t *buffer, uint32_t count, uint32_t flags)&amp;nbsp; in fsl_sdio.c I configed as&amp;nbsp;SDIO_IO_Read_Extended(card, kSDIO_FunctionNum1, 0,wx_dataRead,4,SDIO_EXTEND_CMD_OP_CODE_MASK)) and&amp;nbsp;SDK_ALIGN(uint8_t wx_dataRead[SDK_SIZEALIGN( 4 , SDMMC_DATA_BUFFER_ALIGN_CACHE)],&amp;nbsp; MAX(SDMMC_DATA_BUFFER_ALIGN_CACHE, SDMMCHOST_DMA_BUFFER_ADDR_ALIGN));&lt;/P&gt;&lt;P&gt;It's a stream transfer mode , but example code is without&amp;nbsp; "data.streamTransfer = 1U ;" . Should I add it?&lt;/P&gt;&lt;P&gt;Q2:I debug this funtion to the insert funtion&amp;nbsp;SDIF_TransferDataBlocking(SDIF_Type *base, sdif_data_t *data, bool isDMA). When it excuted "dmaStatus = SDIF_GetInternalDMAStatus(base);" ,dmaStatus&amp;nbsp; get the value 0xa000 which mean DMAC state machine present state is 5-DMA_WR_REQ_WAIT .Besides ,&amp;nbsp; i&lt;SPAN&gt;t's always going around here and&amp;nbsp;dmaStatus&amp;nbsp; is 0xa000 forever . I can't find any explain in reference UM11115.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 30 Nov 2020 14:04:46 GMT</pubDate>
    <dc:creator>NoOne</dc:creator>
    <dc:date>2020-11-30T14:04:46Z</dc:date>
    <item>
      <title>SDIO internel DMA question of SDIO example code</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SDIO-internel-DMA-question-of-SDIO-example-code/m-p/1190970#M43090</link>
      <description>&lt;P&gt;Borad:LPC54S018M-EVK&lt;/P&gt;&lt;P&gt;SDK example:sdmmc_examples/sdio&lt;/P&gt;&lt;P&gt;My goals: to drive WF200(siliconlabs wireless chip) with sdio peripheral interface&amp;nbsp;&lt;/P&gt;&lt;P&gt;Q1:funtion SDIO_IO_Read_Extended(sdio_card_t *card, sdio_func_num_t func, uint32_t regAddr, uint8_t *buffer, uint32_t count, uint32_t flags)&amp;nbsp; in fsl_sdio.c I configed as&amp;nbsp;SDIO_IO_Read_Extended(card, kSDIO_FunctionNum1, 0,wx_dataRead,4,SDIO_EXTEND_CMD_OP_CODE_MASK)) and&amp;nbsp;SDK_ALIGN(uint8_t wx_dataRead[SDK_SIZEALIGN( 4 , SDMMC_DATA_BUFFER_ALIGN_CACHE)],&amp;nbsp; MAX(SDMMC_DATA_BUFFER_ALIGN_CACHE, SDMMCHOST_DMA_BUFFER_ADDR_ALIGN));&lt;/P&gt;&lt;P&gt;It's a stream transfer mode , but example code is without&amp;nbsp; "data.streamTransfer = 1U ;" . Should I add it?&lt;/P&gt;&lt;P&gt;Q2:I debug this funtion to the insert funtion&amp;nbsp;SDIF_TransferDataBlocking(SDIF_Type *base, sdif_data_t *data, bool isDMA). When it excuted "dmaStatus = SDIF_GetInternalDMAStatus(base);" ,dmaStatus&amp;nbsp; get the value 0xa000 which mean DMAC state machine present state is 5-DMA_WR_REQ_WAIT .Besides ,&amp;nbsp; i&lt;SPAN&gt;t's always going around here and&amp;nbsp;dmaStatus&amp;nbsp; is 0xa000 forever . I can't find any explain in reference UM11115.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Nov 2020 14:04:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SDIO-internel-DMA-question-of-SDIO-example-code/m-p/1190970#M43090</guid>
      <dc:creator>NoOne</dc:creator>
      <dc:date>2020-11-30T14:04:46Z</dc:date>
    </item>
    <item>
      <title>Re: SDIO internel DMA question of SDIO example code</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SDIO-internel-DMA-question-of-SDIO-example-code/m-p/1191462#M43101</link>
      <description>&lt;P&gt;Hi, WuXin,&lt;/P&gt;
&lt;P&gt;Frankly speaking, I am not familiar with SDIO protocol, regarding your question, pls refer to declaration in fsl_sdif.h:&lt;/P&gt;
&lt;P&gt;enum&lt;BR /&gt;{&lt;BR /&gt;kSDIF_CmdResponseExpect = SDIF_CMD_RESPONSE_EXPECT_MASK, /*!&amp;lt; command request response*/&lt;BR /&gt;kSDIF_CmdResponseLengthLong = SDIF_CMD_RESPONSE_LENGTH_MASK, /*!&amp;lt; command response length long */&lt;BR /&gt;kSDIF_CmdCheckResponseCRC = SDIF_CMD_CHECK_RESPONSE_CRC_MASK, /*!&amp;lt; request check command response CRC*/&lt;BR /&gt;kSDIF_DataExpect = SDIF_CMD_DATA_EXPECTED_MASK, /*!&amp;lt; request data transfer,either read/write*/&lt;BR /&gt;kSDIF_DataWriteToCard = SDIF_CMD_READ_WRITE_MASK, /*!&amp;lt; data transfer direction */&lt;BR /&gt;kSDIF_DataStreamTransfer = SDIF_CMD_TRANSFER_MODE_MASK, /*!&amp;lt; data transfer mode :stream/block transfer command */&lt;BR /&gt;kSDIF_DataTransferAutoStop = SDIF_CMD_SEND_AUTO_STOP_MASK, /*!&amp;lt; data transfer with auto stop at the end of */&lt;BR /&gt;kSDIF_WaitPreTransferComplete =&lt;BR /&gt;SDIF_CMD_WAIT_PRVDATA_COMPLETE_MASK, /*!&amp;lt; wait pre transfer complete before sending this cmd */&lt;BR /&gt;kSDIF_TransferStopAbort = SDIF_CMD_STOP_ABORT_CMD_MASK, /*!&amp;lt; when host issue stop or abort cmd to stop data transfer&lt;BR /&gt;,this bit should set so that cmd/data state-machines of CIU&lt;BR /&gt;can return to idle correctly*/&lt;BR /&gt;kSDIF_SendInitialization =&lt;BR /&gt;SDIF_CMD_SEND_INITIALIZATION_MASK, /*!&amp;lt; send initialization 80 clocks for SD card after power on */&lt;BR /&gt;kSDIF_CmdUpdateClockRegisterOnly =&lt;BR /&gt;SDIF_CMD_UPDATE_CLOCK_REGISTERS_ONLY_MASK, /*!&amp;lt; send cmd update the CIU clock register only */&lt;BR /&gt;kSDIF_CmdtoReadCEATADevice = SDIF_CMD_READ_CEATA_DEVICE_MASK, /*!&amp;lt; host is perform read access to CE-ATA device */&lt;BR /&gt;kSDIF_CmdExpectCCS = SDIF_CMD_CCS_EXPECTED_MASK, /*!&amp;lt; command expect command completion signal signal */&lt;BR /&gt;kSDIF_BootModeEnable = SDIF_CMD_ENABLE_BOOT_MASK, /*!&amp;lt; this bit should only be set for mandatory boot mode */&lt;BR /&gt;kSDIF_BootModeExpectAck = SDIF_CMD_EXPECT_BOOT_ACK_MASK, /*!&amp;lt; boot mode expect ack */&lt;BR /&gt;kSDIF_BootModeDisable = SDIF_CMD_DISABLE_BOOT_MASK, /*!&amp;lt; when software set this bit along with START_CMD, CIU&lt;BR /&gt;terminates the boot operation*/&lt;BR /&gt;kSDIF_BootModeAlternate = SDIF_CMD_BOOT_MODE_MASK, /*!&amp;lt; select boot mode ,alternate or mandatory*/&lt;BR /&gt;kSDIF_CmdVoltageSwitch = SDIF_CMD_VOLT_SWITCH_MASK, /*!&amp;lt; this bit set for CMD11 only */&lt;BR /&gt;kSDIF_CmdDataUseHoldReg = SDIF_CMD_USE_HOLD_REG_MASK, /*!&amp;lt; cmd and data send to card through the HOLD register*/&lt;BR /&gt;};&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The SDIF_CMD_TRANSFER_MODE_MASK is 0x800.&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;</description>
      <pubDate>Tue, 01 Dec 2020 09:16:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SDIO-internel-DMA-question-of-SDIO-example-code/m-p/1191462#M43101</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2020-12-01T09:16:46Z</dc:date>
    </item>
  </channel>
</rss>

