2148956_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2148956_ja-JP

2148956_ja-JP

i.MX7D の DRAM_SDCLK0 は約 270MHz で遅いです。

こんにちは。

CCM_ANALOG_PLL_DDR が 0x0000302C に設定されている場合、DRAM_SDCLK0 は 132MHz になります。

SO、CCM_ANALOG_PLL_DDR の TEST_DIV_SELECT ビットが 0x01 に設定され、0x0020302C に設定されている場合、DRAM_SDCLK0 は約 270MHz になります。

533Mhzの半分です。

DRAM_PHYM_ALT_CLK_ROOT と DRAM_ALT_CLK_ROOT は DDR_PLL_DIV2 に設定されています。

1/2にする設定はありますか?

よろしくお願いいたします。


Re: DRAM_SDCLK0 of i.MX7D is about 270MHz,  it's slow !

こんにちは、ジョアンシー。

よろしくお願いします。

計算結果と実際の DDR_SDCKE には 1/2 の差があります。

理由は分かりませんが、とりあえずここで終わりにします。

周波数が高くなると、DDR_SDCLKE の電圧レベルは低下します。

SO、頻度を下げようと考えています。

よろしくお願いいたします。

Re: DRAM_SDCLK0 of i.MX7D is about 270MHz,  it's slow !

私が示したドライバは式を教えてくれるので、 CCM_ANALOG_PLL_DDR、CCM_ANALOG_PLL_DDR_NUM、CCM_ANALOG_PLL_DDR_DENOMレジスタを読み取って、正しいかどうかを確認する必要があります。

Re: DRAM_SDCLK0 of i.MX7D is about 270MHz,  it's slow !

こんにちは、ジョアンシー。

uboot-2022.01をビルディングしています。

示したコードは get_ddrc_clk(void) です。

このコードで見つけたもの

reg = readl(&ccm_reg->root[DRAM_CLK_ROOT].target_root;

「図5-7.DRAM_Clock構造」に記載されていないDRAM_CLK_ROOTがregにロードされます。

DRAM_CLK_ROOTの初期値は0x00000001でした。

DRAM_CLK_ROOT をクリアすると正しく表示されるようになりました。

ただし、DRAM_SDCKE0 は 270MHz です。これは正しいですか?オシロスコープで確認しました。

よろしくお願いいたします。

Re: DRAM_SDCLK0 of i.MX7D is about 270MHz,  it's slow !

以下のようにソースコードを確認しました

https://github.com/nxp-imx/uboot-imx/blob/lf_v2025.04/arch/arm/mach-imx/mx7/clock.c#L162

decode_pll関数をチェックした

CASE PLL_DDR:
reg = readl(&ccm_anatop->pll_ddr);

(reg & CCM_ANALOG_PLL_DDR_POWERDOWN_MASK) の場合
0を返します。

num = ccm_anatop->pll_ddr_num;
denom = ccm_anatop->pll_ddr_denom;

(reg & CCM_ANALOG_PLL_DDR_BYPASS_MASK) の場合
MXC_HCLK を返します。

div_sel = (reg & CCM_ANALOG_PLL_DDR_DIV_SELECT_MASK) >>
CCM_ANALOG_PLL_DDR_DIV_SELECT_SHIFT;

頻度を返します * (div_sel + num / denom);

SO、式は24M *(DIV_SELECT+(NUM/DENOM))、div_selはCCM_ANALOG_PLL_DDRから、mumはCCM_ANALOG_PLL_DDR_NUMから、denomはCCM_ANALOG_PLL_DDR_DENOMから取得されます。

Re: DRAM_SDCLK0 of i.MX7D is about 270MHz,  it's slow !

こんにちは、ジョアンシー。

説明していただいた図は理解できました。

しかし、リファレンスマニュアルには、FASTMIX がどのレジスタであるかは説明されていません。

レジスター名を教えてください。

このCASE、CCM_ANALOG_PLL_DDRn の TEST_DIV_SELECT を 0x00 に設定する必要がありますか?

よろしくお願いいたします。

Re: DRAM_SDCLK0 of i.MX7D is about 270MHz,  it's slow !

1/2にする設定はありますか?

>どういう意味ですか? DRAM_SDCLKに533Mhzが必要だということですか?

joanxie_0-1754714689138.png

図5-7を参照してください。専用のDRAM_PLLを使用して1066MHzの2倍クロックを生成し、分周器を使用してそれを2で分割して、デューティサイクルが良好な533MHzクロックを生成します。この533MHzクロックは
PHY_MCLK として使用されます。一方、1066MHzのクロックも2で割られ、
1/N 分周器を使用して 533MHz を PHY_CLK として取得するほか、PHY クロックを 266MHz や 133MHz などの低い周波数に分割するために使用される 1/N 分周器があります。1/N除算器は3ビットの除算器である
Nは2から8までの範囲で設定できます。SO、1/Nを1/2に設定すると533MHzになります。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-21-2025 06:11 PM
更新者: