我使用 SDL 7.7 运行芯片 CYT3BB7CEBQ0AESGST。
我使用 SDL 的
启动文件夹启动 CM0 芯片。
配置:
system_tviibh4m_cm0plus.c文件中的系统初始时钟(ECO=16MHz 时的示例)。
我使用外部晶体 8MHz(ECO =
8MHz)。 因此,我更改了
CY_SYSTEM_PLLx_
CONFIG _REFDIV、CY_SYSTEM_PLLx_CONFIG_ FEEDBACKDIV、CY_SYSTEM_PLLx_CCONFIG_OUTDIV。
以获得
PLL0 = 250 MHz
#define CY_SYSTEM_PLL0_CONFIG_REFDIV (2UL)
#define CY_SYSTEM_PLL0_CONFIG_FEEDBACKDIV (125UL)
#define CY_SYSTEM_PLL0_CONFIG_OUTDIV (4UL)
PLL1 = 196607999.92Hz
#define CY_SYSTEM_PLL1_CONFIG_REFDIV (1UL)
#define CY_SYSTEM_PLL1_CONFIG_FB_INT (98UL)
#define CY_SYSTEM_PLL1_CONFIG_FB_FRAC (5100273UL)
#define CY_SYSTEM_PLL1_CONFIG_OUTDIV (4UL)
PLL2 = 160MHz
#define CY_SYSTEM_PLL2_CONFIG_REFDIV (1UL)
#define CY_SYSTEM_PLL2_CONFIG_FEEDBACKDIV (40UL)
#define CY_SYSTEM_PLL2_CONFIG_OUTDIV (4UL)
PLL3 = 80MHz
#define CY_SYSTEM_PLL3_CONFIG_REFDIV (2UL)
#define CY_SYSTEM_PLL3_CONFIG_FEEDBACKDIV (80UL)
#define CY_SYSTEM_PLL3_CONFIG_OUTDIV (4UL)
时钟
/*** 每个 clk_hf 的设置 ***/
结构{cy_en_hf_clk_dividers_t targetDiv; cy_en_hf_clk_sources_t source;} clkHfSet
ting[srss_num_hfroot] =
{
{ .targetDiv = CY_SYSCLK_HFCLK_NO_DIVIDE, .source = CY_SYSCLK_HFCLK_IN_CLKPATH3 /* PLL2: PLL200#0 */ }, // clk_hf0 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_NO_DIVIDE, .source = CY_SYSCLK_HFCLK_IN_CLKPATH1 /* PLL0: PLL400#0 */ }, // clk_hf1 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_NO_DIVIDE, .source = CY_SYSCLK_HFCLK_IN_CLKPATH4 /* PLL3: PLL200#1 */ }, // clk_hf2 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_DIVIDE_BY_2, .source = CY_SYSCLK_HFCLK_IN_CLKPATH3 /* PLL2: PLL200#0 */ }, // clk_hf3 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_DIVIDE_BY_4, .source = CY_SYSCLK_HFCLK_IN_CLKPATH2 /* PLL3: PLL400#1 */ }, // clk_hf4 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_NO_DIVIDE, .source = CY_SYSCLK_HFCLK_IN_CLKPATH2 /* PLL1: PLL400#1 */ }, // clk_hf5 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_NO_DIVIDE, .source = CY_SYSCLK_HFCLK_IN_CLKPATH3 /* PLL3: PLL200#1 */ }, // clk_hf6 的设置
{ .targetDiv = CY_SYSCLK_HFCLK_NO_DIVIDE, .source = CY_SYSCLK_HFCLK_IN_CLKPATH5 /* No PLL/FLL */ }, // clk_hf7 的设置
};
问题:
我使用 SDL API:
Cy_SysClk_GetPllOutputFrequency:
-> PLL400#0:250MHz
-> PLL400#1:196.60799992 MHz
-> PLL200#0:160MHz
-> PLL200#1:80MHz
Cy_SysClk_GetFast0Frequency:
-> 250MHz
Cy_SysClk_GetClkMemFrequency:
-> 160MHz
Cy_SysClk_GetClkSlowFrequency
-> 80MHz
似乎没有问题。 但当我运行 CM0 时,它将复位,无法跳转到 CM7_0。
如果将所有 PLL 输出时钟减半 -> CM0 和 CM7_0 正常运行(但时钟比所需时钟少 1/2)
如果使用 16MHz 外部晶振和默认文件
system_tviibh4m_cm0plus.c ,一切正常(CM0 和 CM7_0 运行正常)。
问题:
1我认为,根据数据表(Infineon-TRAVEO_T2G_CYT3BB_4BB-DataSheet-v09_00-EN.pdf)的限制,refdiv、feedbackdiv 和 output 均可正常工作。
但为什么芯片不能按预期运行呢?
2.我是否需要编辑其他值,如 ROM/RAM 等待状态和闪存等待周期?
如果是,那么数值应该是多少?