完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用 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;} clkHfSetting[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 等待状态和闪存等待周期? 如果是,那么数值应该是多少? |
|
相关推荐
1个回答
|
|
CYT3BB7CES 在时钟频率为 250MHz 时不运行的原因可能有以下几点:
1. **PLL 配置错误**:您提供的 PLL 配置参数可能不正确。根据您提供的信息,您希望得到 250MHz 的时钟频率。但是,根据您提供的参数,PLL0 的输出频率计算如下: ``` PLL0 输出频率 = (8MHz * 125) / (2 * 4) = 250MHz ``` 这个计算是正确的,但是请确保您在代码中正确设置了这些参数。 2. **PLL 锁定问题**:在某些情况下,PLL 可能无法锁定所需的频率。这可能是由于外部晶体的质量问题或者 PLL 参数设置不正确。您可以检查 PLL 锁定状态,确保它在启动时成功锁定。 3. **时钟分配问题**:确保您正确地将 PLL 输出分配给了 CM0 核心。检查您的时钟分配设置,确保 CM0 核心使用的是 PLL0 的输出频率。 4. **电源问题**:确保您的芯片电源稳定且在规定的范围内。不稳定的电源可能会影响芯片的正常运行。 5. **代码问题**:检查您的代码,确保没有逻辑错误或配置错误。例如,确保您正确地初始化了芯片和时钟系统。 6. **硬件问题**:如果以上步骤都无法解决问题,可能是硬件本身存在问题。您可以尝试更换芯片或与制造商联系寻求技术支持。 为了解决这个问题,您可以尝试以下步骤: 1. 重新检查您的 PLL 配置参数,确保它们正确设置。 2. 检查 PLL 锁定状态,确保在启动时成功锁定。 3. 检查时钟分配设置,确保 CM0 核心使用的是 PLL0 的输出频率。 4. 检查电源稳定性和芯片电源范围。 5. 仔细检查您的代码,确保没有逻辑错误或配置错误。 6. 如果问题仍然存在,尝试更换芯片或联系制造商寻求技术支持。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
359 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6244 浏览 2 评论
4103 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3629 浏览 9 评论
1229 浏览 8 评论
456浏览 2评论
269浏览 2评论
375浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6250浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
453浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:39 , Processed in 0.942521 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号