器件型号: AM623
在 TRM 上、MMC_CTLCFG_HOST_CONTROL1 寄存器字段说明:高速模式会将数据置于时钟 上升 沿。

但在数据表中、MMC0 高速 SDR 模式在 下降 沿发送。

说明错误、上升沿应对应于全周期时序、或 UHS 模式。
BTW、如何定义高速模式?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号: AM623
在 TRM 上、MMC_CTLCFG_HOST_CONTROL1 寄存器字段说明:高速模式会将数据置于时钟 上升 沿。

但在数据表中、MMC0 高速 SDR 模式在 下降 沿发送。

说明错误、上升沿应对应于全周期时序、或 UHS 模式。
BTW、如何定义高速模式?
我们发现、 如果使用半周期时序而不是全周期时序、则更容易关闭高速 SDR 传输的 MMC0 外设时序。 因此、我们决定使用相同的半周期数据传输时序方法、其中数据在下降沿发生变化并在上升沿捕获、适用于旧 SDR(高达 25MHz)和高速 SDR(高达 50MHz)。
有一个计划 针对 TRM 中支持的每种数据传输模式包括以下寄存器位的预期配置。 但是、我不确定这是已完成还是仍待处理。 数据到时钟时序是这些主机控制器位以及数据表“所有 时序模式的 MMC0 DLL 延迟映射“表中定义的 PHY 配置的函数。
MMCSD0_MMC_CTLCFG_HOST_CONTROL1[2](HIGH_SPEED_ENA)、
MMCSD0_MMC_CTLCFG_HOST_CONTROL2[3、2:0](V1P8_SIGNAL_ENA、UHS_MODE_SELECT)
对于 MMC0 外设上的 eMMC、预计具有以下配置:
旧 SDR - HIGH_SPEED_ENA = 0b0、 V1P8_SIGNAL_ENA = 0b0、 UHS_MODE_SELECT = 0x0
高速 SDR - HIGH_SPEED_ENA = 0b0、 V1P8_SIGNAL_ENA = 0b0、 UHS_MODE_SELECT = 0x0
HS200 - HIGH_SPEED_ENA = 0b1、V1P8_SIGNAL_ENA = 0b0、 UHS_MODE_SELECT = 0x3
此致、
Paul
此 E2E 帖子的标题似乎表明您询问了与 eMMC 器件的通信、我假设该器件连接到 AM62x MMC0 端口、因为它是支持 eMMC 的唯一端口。 如果是这样、则与 MMC0 关联的 UHS 数据传输模式都不 适用。 UHS 模式仅在连接 到嵌入式 SDIO 器件时适用。 对于嵌入式 SDIO 器件 UHS 用例、我们使用全周期时序执行数据传输。
决定使用半周期时序进行高速 eMMC 通信是为了适应可能具有长保持时间要求的旧版传统 eMMC 器件。
我们仍然支持 高达 50MHz 的高速数据传输。 但是、我们 使用半周期时序而不是全周期时序来执行数据传输。 我同意这可能与预期不同、但该方法提供了更好的时序裕度。
此致、
Paul
是的、我指的是 eMMC。 我现在明白了。
是的。 eMMC0 仅在 DTS 中支持传统 (25MHz)、hs (50MHz SDR) 和 HS200 SDR、而 MMC1 和 MMC2 支持 ddr50。
因此、无论在什么频率下工作、eMMC0 都仅支持 SDR 模式。
sdhci0: mmc@fa10000 {
compatible = "ti,am62-sdhci";
reg = <0x00 0x0fa10000 0x00 0x1000>, <0x00 0x0fa18000 0x00 0x400>;
interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 57 5>, <&k3_clks 57 6>;
clock-names = "clk_ahb", "clk_xin";
bus-width = <8>;
mmc-hs200-1_8v;
ti,clkbuf-sel = <0x7>;
ti,otap-del-sel-legacy = <0x0>;
ti,otap-del-sel-mmc-hs = <0x0>;
ti,otap-del-sel-hs200 = <0x6>;
ti,itap-del-sel-legacy = <0x0>;
ti,itap-del-sel-mmc-hs = <0x0>;
status = "disabled";
};
sdhci1: mmc@fa00000 {
compatible = "ti,am62-sdhci";
reg = <0x00 0x0fa00000 0x00 0x1000>, <0x00 0x0fa08000 0x00 0x400>;
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 58 5>, <&k3_clks 58 6>;
clock-names = "clk_ahb", "clk_xin";
bus-width = <4>;
ti,clkbuf-sel = <0x7>;
ti,otap-del-sel-legacy = <0x0>;
ti,otap-del-sel-sd-hs = <0x0>;
ti,otap-del-sel-sdr12 = <0xf>;
ti,otap-del-sel-sdr25 = <0xf>;
ti,otap-del-sel-sdr50 = <0xc>;
ti,otap-del-sel-sdr104 = <0x6>;
ti,otap-del-sel-ddr50 = <0x9>;
ti,itap-del-sel-legacy = <0x0>;
ti,itap-del-sel-sd-hs = <0x0>;
ti,itap-del-sel-sdr12 = <0x0>;
ti,itap-del-sel-sdr25 = <0x0>;
status = "disabled";
};
sdhci2: mmc@fa20000 {
compatible = "ti,am62-sdhci";
reg = <0x00 0x0fa20000 0x00 0x1000>, <0x00 0x0fa28000 0x00 0x400>;
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&k3_pds 184 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 184 5>, <&k3_clks 184 6>;
clock-names = "clk_ahb", "clk_xin";
bus-width = <4>;
ti,clkbuf-sel = <0x7>;
ti,otap-del-sel-legacy = <0x0>;
ti,otap-del-sel-sd-hs = <0x0>;
ti,otap-del-sel-sdr12 = <0xf>;
ti,otap-del-sel-sdr25 = <0xf>;
ti,otap-del-sel-sdr50 = <0xc>;
ti,otap-del-sel-sdr104 = <0x6>;
ti,otap-del-sel-ddr50 = <0x9>;
ti,itap-del-sel-legacy = <0x0>;
ti,itap-del-sel-sd-hs = <0x0>;
ti,itap-del-sel-sdr12 = <0x0>;
ti,itap-del-sel-sdr25 = <0x0>;
status = "disabled";
};
因此、MMCSD0_MMC_CTLCFG_HOST_CONTROL1[2](HIGH_SPEED_ENA) 字段说明最好为:
0:半周期时序
1:全周期时序。