Other Parts Discussed in Thread: SK-AM62A-LP
器件型号: AM62A7
主题中讨论的其他器件: SK-AM62A-LP
您能否告诉我、我可以使用 MCU+SDK/FreeRTOS SDK 来缩短 MCU_I2C 和 MCU_UART 响应时间的步骤以及测量该时间的方法?
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.
Other Parts Discussed in Thread: SK-AM62A-LP
器件型号: AM62A7
主题中讨论的其他器件: SK-AM62A-LP
您能否告诉我、我可以使用 MCU+SDK/FreeRTOS SDK 来缩短 MCU_I2C 和 MCU_UART 响应时间的步骤以及测量该时间的方法?
本节介绍了优化 AM62A 的 MCU_I2C 和 MCU_UART 响应时间的步骤。在使用 OSPI NAND 引导模式时、应用程序在 MCU R5 内核上运行、并 使用 SK-AM62A-LP EVM 进行测试。
在 SBL stage-1 中初始化 MCU_I2C 和 MCU_UART 模块、以避免对 MCU R5 应用程序的 DM 固件产生任何依赖。 在这种情况下初始化意味着启用 LPSC 门进行外设时钟并设置所配置模块的工作频率。
在应用阶段会配置其他参数、如设置中断/轮询模式、I2C 的比特率、UART 的波特率、外设实例以及与不使用 DM/Sciclient 调用的 IP 相关的其他参数。
| SAR ADC | 说明 |
| t1. | 从 ECU 上电到 PMIC 完成电源轨斜升并从复位中释放 SOC 的持续时间。 该时序因电路板设计而异。 |
| T2 | ROM 执行时间 |
| t3. | SBL 阶段 1 引导 MCU R5 内核所需的时间 |
| t4. | MCU R5 应用程序启动数据传输的 MCU_I2C 启动条件所需的时间。 |
| SAR ADC | 说明 |
| t1. | 从 ECU 上电到 PMIC 完成电源轨斜升并从复位中释放 SOC 的持续时间。 该时序因电路板设计而异。 |
| T2 | ROM 执行时间 |
| t3. | SBL 阶段 1 引导 MCU R5 内核所需的时间 |
| t4. | MCU R5 应用程序启动 MCU_UART 事务所需的时间。 |
1.禁用 SBL 打印。
2. 在 SBL 1 级中启用 MCU_I2C 和 MCU_UART 时钟。
在 SBL stage-1 中添加以下代码:
/* To enable MCU domain I2C */ SOC_moduleClockEnable(TISCI_DEV_MCU_I2C0, 1); /* To enable MCU domain UART */ SOC_moduleClockEnable(TISCI_DEV_MCU_UART0, 1); SOC_moduleSetClockFrequency(TISCI_DEV_MCU_UART0,TISCI_DEV_MCU_UART0_FCLK_CLK,48000000);
3.更改 clock.c 以避免 在调用 pminit () 时复位 MCU_I2C 和 MCU_UART 时钟
应用以下补丁以避免复位 MCU 域的 MCU_I2C 和 MCU_UART 时钟。
diff --git a/source/drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm/soc/am62ax/clocks.c b/source/drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm/soc/am62ax/clocks.c
index 086b1f05..b1fadc06 100644
--- a/source/drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm/soc/am62ax/clocks.c
+++ b/source/drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm/soc/am62ax/clocks.c
@@ -3782,7 +3782,7 @@ const struct clk_data soc_clock_data[260] = {
.drv = &clk_drv_pll_16fft,
.freq_idx = AM62AX_FREQ_VALUE_PLLFRACF2_SSMOD_16FFT_MCU_0,
.data = &clk_data_pllfracf2_ssmod_16fft_mcu_0.data_pll.data,
- .flags = 0,
+ .flags = CLK_DATA_FLAG_NO_HW_REINIT,
},
[CLK_AM62AX_POSTDIV1_16FFT_MAIN_1_HSDIVOUT5_CLK] = {
.parent = {
@@ -4786,7 +4786,7 @@ const struct clk_data soc_clock_data[260] = {
1,
},
.drv = &clk_drv_div_pll_16fft_hsdiv.drv,
- .flags = 0,
+ .flags = CLK_DATA_FLAG_NO_HW_REINIT,
.type = CLK_TYPE_DIV,
.data = &clk_data_hsdiv4_16fft_mcu_0_hsdiv1.data_div.data,
},
@@ -4796,7 +4796,7 @@ const struct clk_data soc_clock_data[260] = {
1,
},
.drv = &clk_drv_div_pll_16fft_hsdiv.drv,
- .flags = 0,
+ .flags = CLK_DATA_FLAG_NO_HW_REINIT,
.type = CLK_TYPE_DIV,
.data = &clk_data_hsdiv4_16fft_mcu_0_hsdiv2.data_div.data,
},
4. 可以重新排序对 SBL S1 main.c 中 App_runCpus API 的调用、以缩短 R5F0-0 引导时间:
应当在 App_loadImages API 之后立即移动 APP_runCpus。
5.从在 MCU R5 上为 I2C 和 UART 运行的映像中删除 SCI 服务器调用
在 main.c 文件中使用修改后的 System init:
void mod_system_init()
{
/* DPL init sets up address transalation unit, on some CPUs this is needed
* to access SCICLIENT services, hence this needs to happen first
*/
Dpl_init();
/* Now we can do pinmux */
Pinmux_init();
/* finally we initialize all peripheral drivers */
Drivers_uartInit();
I2C_init();
}
int main()
{
int32_t status = SystemP_SUCCESS;
// System_init();
mod_system_init();
请注意、此处删除了 system_init 中可能需要 SCI 服务器服务的任何 API 调用、因此也会删除 CycleCounterP_init。 如果客户不使用 CycleCounter P、则可以将其移除、如果 MCU 应用中需要任何其他模块、则也需要为此在 SBL 中对其进行初始化。
完成上述更改后、您必须重新编译库、SBL 和其他应用。
MCU+SDK 版本: 11_01_00_16
EVM:SK-AM62A-LP
引导模式引脚设置 (OSPI NAND):
有关测量方法 、请参阅 AM62A SK EVM 原理图、可使用以下引脚进行测量;
MCU_PORz:J8 上的#28
MCU_SPI0_D1:J8 上为#4
MCU_SPI0_D0:J8 上的#6
MCU_I2C0_SDA:J8 上的#21
MCU_I2C0_SCL:J8 上#24
MCU_UART0_TXD_CONN:J8 上的#19
EVM 的近似 PMIC 启动时间为 22.5ms、这取决于硬件、因此该数字在定制电路板上可能不同。
| SAR ADC | 说明 | 时间 (ms) |
| t1. | PMIC | 22.5 |
| T2 | ROM 执行时间 | 48.2. |
| t3. | SBL 引导 MCU R5 内核所需的时间 | 56 |
| t4. | MCU R5 应用程序 启动 MCU_I2C 启动条件所需的时间 | 0.069 |
| t4. | MCU R5 应用程序启动 MCU_UART 事务所需的时间 | 0.035 |
| 总 MCU_I2C 响应时间 |
127. |
|
| 总 MCU_UART 响应时间 |
127. |
以下是 SBL stage1 和 MCU 应用程序的工程。
注意:要检查早期 I2C、请删除/注释 UART 相关 API;对于早期 UART、请从给定工程中删除/注释所有 I2C 相关 API。
Project - Early_I2C_UART.zip
Salae 逻辑分析仪的日志。
早期 UART -

早期 I2C -

此致、
Tushar