Skip to main content

Module sdhost

Module sdhost 

Source

Constantsยง

FIFO_READ_THRESHOLD ๐Ÿ”’
FIFO_WRITE_THRESHOLD ๐Ÿ”’
GPFSEL4 ๐Ÿ”’
GPFSEL5 ๐Ÿ”’
GPIO_BASE ๐Ÿ”’
GPPUD ๐Ÿ”’
GPPUDCLK1 ๐Ÿ”’
SDARG ๐Ÿ”’
SDCDIV ๐Ÿ”’
SDCMD ๐Ÿ”’
SDCMD_BUSYWAIT ๐Ÿ”’
SDCMD_FAIL_ERROR ๐Ÿ”’
SDCMD_LONG_RESPONSE ๐Ÿ”’
SDCMD_NEW_CMD ๐Ÿ”’
SDCMD_NO_RESPONSE ๐Ÿ”’
SDCMD_READ ๐Ÿ”’
ใƒ‡ใƒผใ‚ฟ่ชญใฟๅ‡บใ—ใ‚’ไผดใ†ใ‚ณใƒžใƒณใƒ‰๏ผˆCMD17 ็ญ‰๏ผ‰ใ€‚ๅพ“ๆฅใพใฃใŸใๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใชใ‹ใฃใŸใ€‚
SDCMD_RESP_48 ๐Ÿ”’
SDCMD_RESP_136 ๐Ÿ”’
SDCMD_RESP_NONE ๐Ÿ”’
SDCMD_WRITE ๐Ÿ”’
ใƒ‡ใƒผใ‚ฟๆ›ธใ่พผใฟใ‚’ไผดใ†ใ‚ณใƒžใƒณใƒ‰ใ€‚ๅพ“ๆฅ 0x8000 ใจๅฎš็พฉใ•ใ‚ŒใฆใŠใ‚Š SDCMD_NEW_CMD ใจ่ก็ชใ—ใฆใ„ใŸใŸใ‚ใ€ๆ›ธใ่พผใฟใƒ“ใƒƒใƒˆใŒไธ€ๅบฆใ‚‚็ซ‹ใฃใฆ ใ„ใชใ‹ใฃใŸ๏ผˆCMD24 ใŒๆ›ธใ่พผใฟใจใ—ใฆๆ‰ฑใ‚ใ‚Œใชใ„๏ผ‰ใ€‚ๆญฃใ—ใใฏ 0x80ใ€‚
SDDATA ๐Ÿ”’
SDEDM ๐Ÿ”’
SDEDM_READ_THRESHOLD_SHIFT ๐Ÿ”’
SDEDM_THRESHOLD_MASK ๐Ÿ”’
SDEDM_WRITE_THRESHOLD_SHIFT ๐Ÿ”’
SDHBCT ๐Ÿ”’
1 ใƒ–ใƒญใƒƒใ‚ฏใ‚ใŸใ‚Šใฎใƒใ‚คใƒˆๆ•ฐ๏ผˆ512๏ผ‰ใ€‚
SDHBLC ๐Ÿ”’
่ปข้€ใƒ–ใƒญใƒƒใ‚ฏๆ•ฐใ€‚ ใ€2026-07-26ใ€‘ๅพ“ๆฅใ“ใฎๅฎš็พฉ่‡ชไฝ“ใŒๅญ˜ๅœจใ›ใšใ€ใƒ–ใƒญใƒƒใ‚ฏๆ•ฐใ‚’ SDHBCT ใฎ ไธŠไฝใƒ“ใƒƒใƒˆใธ่ฉฐใ‚่พผใ‚“ใงๆ›ธใ„ใฆใ„ใŸ๏ผˆ512 | (1 << 16)๏ผ‰ใ€‚BCM2835 SDHOST ใงใฏ ใƒใ‚คใƒˆๆ•ฐ(SDHBCT 0x3C)ใจใƒ–ใƒญใƒƒใ‚ฏๆ•ฐ(SDHBLC 0x50)ใฏๅˆฅใƒฌใ‚ธใ‚นใ‚ฟใงใ‚ใ‚Šใ€ SDHBLC ใŒ 0 ใฎใพใพใงใฏใ‚ณใƒณใƒˆใƒญใƒผใƒฉใŒ่ปข้€ใ™ในใใƒ–ใƒญใƒƒใ‚ฏๆ•ฐใ‚’็Ÿฅใ‚Šๅพ—ใชใ„ใŸใ‚ ใƒ‡ใƒผใ‚ฟ่ปข้€ใŒ้–‹ๅง‹ใ•ใ‚Œใชใ„ใ€‚ใ‚ณใƒžใƒณใƒ‰ๅฟœ็ญ”ใฏๆญฃๅธธใชใฎใซ่ชญใฟๆ›ธใใ ใ‘ใŒ ๆˆ็ซ‹ใ—ใชใ‹ใฃใŸๅŽŸๅ› ใฎไธ€ใคใ€‚
SDHCFG ๐Ÿ”’
SDHCFG_DATA_IRPT_EN ๐Ÿ”’
SDHCFG_REL_CMD_LINE ๐Ÿ”’
SDHCFG_SLOW_CARD ๐Ÿ”’
SDHCFG_WIDE_EXT_BUS ๐Ÿ”’
ๅค–้ƒจใƒใ‚น๏ผˆใ‚ซใƒผใƒ‰ใจใฎ DAT ็ทš๏ผ‰ใ‚’ 4bit ใงๆ‰ฑใ†ใ€‚ACMD6 ใง 4bit ใธๅˆ‡ใ‚Šๆ›ฟใˆใŸใ‚‰ ๅฟ…ใšใ“ใกใ‚‰ใ‚‚็ซ‹ใฆใ‚‹ใ“ใจใ€‚็‰‡ๆ–นใ ใ‘ใ ใจใƒ‡ใƒผใ‚ฟ่ปข้€ใŒๆˆ็ซ‹ใ—ใชใ„ใ€‚
SDHCFG_WIDE_INT_BUS ๐Ÿ”’
ๅ†…้ƒจใƒใ‚น๏ผˆFIFO ๅด๏ผ‰ใ‚’ๅบƒๅน…ใงๆ‰ฑใ†ใ€‚ๅธธใซ็ซ‹ใฆใ‚‹ใ€‚
SDHOST_BASE ๐Ÿ”’
SDHSTS ๐Ÿ”’
SDHSTS_BLOCK_IRPT ๐Ÿ”’
SDHSTS_BUSY ๐Ÿ”’
SDHSTS_CMD_TIME_OUT ๐Ÿ”’
SDHSTS_CRC7_ERROR ๐Ÿ”’
SDHSTS_CRC16_ERROR ๐Ÿ”’
SDHSTS_DATA_FLAG ๐Ÿ”’
FIFO ใซใƒ‡ใƒผใ‚ฟใŒๅญ˜ๅœจใ™ใ‚‹๏ผˆ่ชญใฟๅ‡บใ—ๅฏ่ƒฝ๏ผๆ›ธใ่พผใฟๅฏ่ƒฝ๏ผ‰ใ€‚
SDHSTS_ERROR ๐Ÿ”’
ใ‚จใƒฉใƒผ็ณปใƒ“ใƒƒใƒˆใฎใƒžใ‚นใ‚ฏ๏ผˆใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆใƒปCRCใƒปFIFO๏ผ‰ใ€‚
SDHSTS_FIFO_ERROR ๐Ÿ”’
SDHSTS_REW_TIME_OUT ๐Ÿ”’
SDRSP0 ๐Ÿ”’
SDRSP1 ๐Ÿ”’
SDRSP2 ๐Ÿ”’
SDRSP3 ๐Ÿ”’
SDTOUT ๐Ÿ”’
SDVDD ๐Ÿ”’

Staticsยง

CARD_SECTORS ๐Ÿ”’
RCA ๐Ÿ”’
SD_INITIALIZED ๐Ÿ”’

Functionsยง

delay_us ๐Ÿ”’
ใƒžใ‚คใ‚ฏใƒญ็ง’ๅ˜ไฝใฎ็ฐกๅ˜ใชใƒ‡ใ‚ฃใƒฌใ‚ค
get_total_sectors
ๅ…ฌ้–‹็”จใ‚ฒใƒƒใ‚ฟใƒผ
init
SDHOST ใŠใ‚ˆใณ SDใ‚ซใƒผใƒ‰ใฎๅˆๆœŸๅŒ–ใ‚ทใƒผใ‚ฑใƒณใ‚น
parse_csd ๐Ÿ”’
CSD (Card Specific Data) ใƒฌใ‚ธใ‚นใ‚ฟใ‹ใ‚‰ใ‚ซใƒผใƒ‰ใ‚ปใ‚ฏใ‚ฟๆ•ฐใ‚’ๅ–ๅพ—
read_sector
1ใ‚ปใ‚ฏใ‚ฟ (512ใƒใ‚คใƒˆ) ใฎใƒใƒผใƒชใƒณใ‚ฐ่ชญใฟ่พผใฟ
send_command ๐Ÿ”’
SDHOST ใ‚ณใƒณใƒˆใƒญใƒผใƒฉใซใ‚ณใƒžใƒณใƒ‰ใ‚’้€ไฟกใ—ใ€็ตๆžœใ‚’ๅพ…ใค
set_clock ๐Ÿ”’
SDHOST ใ‚ฏใƒญใƒƒใ‚ฏๅˆ†ๅ‘จๅ™จ่จญๅฎš (ๅ‘จๆณขๆ•ฐๅค‰ๆ›ด็”จ)
setup_gpio ๐Ÿ”’
GPIO 48-53 ใ‚’ SDHOST (ALT0) ใซ่จญๅฎš
write_sector
1ใ‚ปใ‚ฏใ‚ฟ (512ใƒใ‚คใƒˆ) ใฎใƒใƒผใƒชใƒณใ‚ฐๆ›ธใ่พผใฟ