我正在尝试将 SPI1 外设时钟增加到 25MHz(音频 DMA 子系统中的 SPI)。LPSPI CCR 寄存器配置了一个 2 的分频器,因此在我看来外设时钟需要为 50 MHz。
呼唤
错误 = sc_pm_set_clock_rate (l_i_mu_vaddr, SC_R_SPI_1, SC_PM_CLK_PER, &sc_rate);最多工作 24 000 000 (err=SC_ERR_NONE=0),超过它我们得到 SC_ERR_PARM=3。我猜这是因为如 i.MX 8X 参考手册 ADMA 子系统“图 8-3. 时钟树”所示,驱动 ADMA_SSSLICE5_CLK_ROOT (SPI1) 的时钟多路复用器可能是 24 MHz XTAL。所以我尝试更改该多路复用器以选择 1280MHz 系统 PLL (DIG_PLL0)。这是通过 SCFW API sc_pm_set_clock_parent() 完成的吗?当我尝试读取当前父级时:
sc_pm_clk_parent_t 父母;
错误 = sc_pm_clock_enable (l_i_mu_vaddr, SC_R_SPI_1, SC_PM_CLK_PER, FALSE, FALSE);
错误 = sc_pm_get_clock_parent (l_i_mu_vaddr, SC_R_SPI_1, SC_PM_CLK_PER, &parent);我得到 255 的父级......文档中不存在!
然后,我尝试设置父级:
父母= SC_PM_PARENT_PLL0;
错误 = sc_pm_set_clock_parent (l_i_mu_vaddr, SC_R_SPI_1, SC_PM_CLK_PER, &parent);但我收到 SC_ERR_PARM=3 错误...
0