====== SD Host Controller ====== {{template>:meta:template:pageinfo#tpl |desc=Introduce the SD host controller (SDHC) specified in SD specification.}} SDHC is the __standard__ controller specified by [[https://www.sdcard.org/developers/sd-standard-overview/host-controllers/|SD Association]] to manage SD Cards (SD Memory and SDIO). SDHC has been extended in connection with the Physical Layer functions extension. Major improvement aimed increase of data transfer rate by supporting __higher SD bus speed modes__ and improvement of __Direct Memory Access (DMA)__. * SD Host Ver.2 supported **ADMA2** that can handle scattered paging data in system memory (scatter gather DMA). * SD Host Ver.3 supported **UHS-I** bus modes. * SD Host Ver.4 supported **UHS-II** bus modes, **ADMA3** ((note:>ADMA3 can execute __multiple of ADMA2 data transfers__ without intervention of Host Driver by Descriptor programing. )) and **64-bit** system memory addressing. ===== Features List ===== ^ Feature |^ Version ||||| ^ Description ^ Key Component ^ 2.00 ^ 3.00 ^ 4.00 ^ 4.10 ^ 4.20 ^ | ADMA2 16-bit Data Length | ADMA2 descriptor | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | ADMA2 26-bit Data Length | ADMA2 descriptor | - | - | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | Re-define SDMA_R to 32-bit Block Count | SDMA_R ''000h'' | - | - | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | PLL control | Clock Control ''02Ch'' | - | - | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | 10-bit divided clock mode | Clock Control ''02Ch'' | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | Programmable clock mode | Clock Control ''02Ch'' | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | Clock generator select (__Programmable clock mode__ / __Divided clock mode__) | Clock Control ''02Ch'' | - | {{fa>check-circle?color=green}} | - | - | - | | Auto CMD12 | Transfer Mode ''00Ch'' | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | [[#auto_cmd23|Auto CMD23]] | Transfer Mode ''00Ch'' | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | Auto CMD auto select | Transfer Mode ''00Ch'' | - | - | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | | Response error check | Transfer Mode ''00Ch [8:6]'' | - | - | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | {{fa>check-circle?color=green}} | ==== Auto CMD23 ==== * 32-bit block count value for ''CMD23'' is set to SDMA. ((:sdhc420-p43)) {{template>meta:template:refnote#note}} {{template>meta:template:refnote#ref}} ===== Further Reading ===== * //[[https://www.sdcard.org/developers/sd-standard-overview/host-controllers/]]// * //[[https://www.sdcard.org/downloads/pls/]]//