搜索
bottom↓
回复: 16

又测试了一下GD32F405RGT6

[复制链接]

出0入362汤圆

发表于 2023-11-29 23:29:53 | 显示全部楼层 |阅读模式
和之前测试的GD32F450ZET6一样, 标称168M但是可以超频到400M.

dhrystone 2.1, 168M时219DMIPS, 超400M时522DMIPS.

出0入362汤圆

 楼主| 发表于 2023-11-29 23:32:55 | 显示全部楼层
更新: 焊了两块板, 其中一块能跑到410M,  420M不启动. 另一块只能380M, 390M不启动. 估计是个体差异~

出0入0汤圆

发表于 2023-11-29 23:59:43 | 显示全部楼层
为什么GD的芯片,比ST的还贵

出0入90汤圆

发表于 2023-11-30 00:23:41 来自手机 | 显示全部楼层
以前在大学时,用有源晶振,把stc的52超到了48M,还很稳定

出0入13汤圆

发表于 2023-11-30 07:41:14 | 显示全部楼层
我的出现一个问题,就是PLL总是不能通过....哎,暂时没办法了....

出100入312汤圆

发表于 2023-11-30 08:44:46 | 显示全部楼层
f405是tmsc生产,可能超频能力强些,但不保证稳定性的

出0入362汤圆

 楼主| 发表于 2023-11-30 09:20:10 | 显示全部楼层
sy8501 发表于 2023-11-29 23:59
为什么GD的芯片,比ST的还贵
(引用自3楼)

怎么可能? 具体啥型号? 我在youxin买的GD32F405RGT6, 才13元多

出0入0汤圆

发表于 2023-12-5 22:52:49 | 显示全部楼层
sy8501 发表于 2023-11-29 23:59
为什么GD的芯片,比ST的还贵
(引用自3楼)

GD在商城有价格保护之类的措施, 有可能是这个原因导致价格高

出0入115汤圆

发表于 2023-12-6 10:06:45 来自手机 | 显示全部楼层
本帖最后由 三年模拟 于 2023-12-6 10:08 编辑

有一款产品用了,gd,有极低概率外置晶振无法启动,程序死在main函数前,但是st的从来没遇到过,确认过了不是焊接问题,晶振反复焊接解决不了

出100入312汤圆

发表于 2023-12-6 10:10:42 | 显示全部楼层
三年模拟 发表于 2023-12-6 10:06
有一款产品用了,gd,有极低概率外置晶振无法启动,程序死在main函数前,但是st的从来没遇到过,确认过了不 ...
(引用自9楼)

gd的哪个型号?印象中st的f103系列是有rtc不起振的问题。

出0入362汤圆

 楼主| 发表于 2023-12-6 10:39:23 | 显示全部楼层
三年模拟 发表于 2023-12-6 10:06
有一款产品用了,gd,有极低概率外置晶振无法启动,程序死在main函数前,但是st的从来没遇到过,确认过了不 ...
(引用自9楼)

GD哪款? 如果照抄ST的SystemInit函数有几个地方要改一下, GD官方有说明.
不过最好是用gd自家的库, SystemInit函数自己重写.


比如我的, 注意我用了bootloader, 如果不用bootloader的话, nvic_vector_table_set这行可以不要, 或者把后面的偏移量改成0x0.

GD32F405:
  1. void SystemInit(void)
  2. {
  3.     nvic_vector_table_set(NVIC_VECTTAB_FLASH, 0x8000);
  4.     __enable_irq();
  5.     rcu_deinit();
  6.     rcu_osci_on (RCU_HXTAL);
  7.     rcu_osci_stab_wait(RCU_HXTAL);
  8.     rcu_periph_clock_enable (RCU_PMU);
  9.     pmu_ldo_output_select (PMU_LDOVS_HIGH);
  10.     rcu_ahb_clock_config (RCU_AHB_CKSYS_DIV1);
  11.     rcu_apb1_clock_config (RCU_APB1_CKAHB_DIV4);     // APB1 84M
  12.     rcu_apb2_clock_config (RCU_APB2_CKAHB_DIV2);     // APB2 168M

  13.     rcu_pll_config(RCU_PLLSRC_HXTAL, 8, 168, 2, 10);
  14.     rcu_osci_on (RCU_PLL_CK);
  15.     rcu_osci_stab_wait(RCU_PLL_CK);
  16.     pmu_highdriver_mode_enable();
  17.     while(pmu_flag_get(PMU_FLAG_HDRF) == RESET);
  18.     pmu_highdriver_switch_select (PMU_HIGHDR_SWITCH_EN);
  19.     while(pmu_flag_get(PMU_FLAG_HDSRF) == RESET);
  20.     rcu_system_clock_source_config (RCU_CKSYSSRC_PLLP);
  21.     while(rcu_system_clock_source_get() != RCU_SCSS_PLLP);
  22. }
复制代码


GD32E230:
  1. void SystemInit(void)
  2. {

  3.     nvic_vector_table_set(NVIC_VECTTAB_FLASH, 0x2000);
  4.     __enable_irq();
  5.     rcu_deinit();
  6.     rcu_periph_clock_enable (RCU_PMU);
  7.     pmu_ldo_output_select (PMU_LDOVS_LOW);
  8.     fmc_wscnt_set (WS_WSCNT_0);
  9.     rcu_ahb_clock_config (RCU_AHB_CKSYS_DIV1);
  10.     rcu_apb1_clock_config (RCU_APB1_CKAHB_DIV1);
  11.     rcu_apb2_clock_config (RCU_APB2_CKAHB_DIV1);

  12.     rcu_hxtal_prediv_config (RCU_PLL_PREDV2);
  13.     rcu_pll_config(RCU_PLLSRC_IRC8M_DIV2, RCU_PLL_MUL12);
  14.     rcu_osci_on (RCU_PLL_CK);
  15.     rcu_osci_stab_wait(RCU_PLL_CK);
  16.     rcu_system_clock_source_config (RCU_CKSYSSRC_PLL);
  17.     while(rcu_system_clock_source_get() != RCU_SCSS_PLL);
  18. }
复制代码


GD32F303:
  1. void SystemInit(void)
  2. {
  3.     nvic_vector_table_set(NVIC_VECTTAB_FLASH, 0x2800);
  4.     __enable_irq();
  5.     rcu_deinit();
  6.     rcu_osci_on (RCU_HXTAL);
  7.     rcu_osci_stab_wait(RCU_HXTAL);
  8.     rcu_periph_clock_enable (RCU_PMU);
  9.     pmu_ldo_output_select (PMU_LDOVS_HIGH);
  10.     rcu_ahb_clock_config (RCU_AHB_CKSYS_DIV1);
  11.     rcu_apb1_clock_config (RCU_APB1_CKAHB_DIV2);
  12.     rcu_apb2_clock_config (RCU_APB2_CKAHB_DIV1);
  13.     rcu_pllpresel_config (RCU_PLLPRESRC_HXTAL);
  14.     rcu_predv0_config (RCU_PREDV0_DIV2);
  15.     rcu_pll_config(RCU_PLLSRC_HXTAL_IRC48M, RCU_PLL_MUL15);    // 16*12=192M
  16.     rcu_osci_on (RCU_PLL_CK);
  17.     rcu_osci_stab_wait(RCU_PLL_CK);
  18.     pmu_highdriver_mode_enable();
  19.     while(pmu_flag_get(PMU_FLAG_HDRF) == RESET);
  20.     pmu_highdriver_switch_select (PMU_HIGHDR_SWITCH_EN);
  21.     while(pmu_flag_get(PMU_FLAG_HDSRF) == RESET);
  22.     rcu_system_clock_source_config (RCU_CKSYSSRC_PLL);
  23.     while(rcu_system_clock_source_get() != RCU_SCSS_PLL);
  24. }
复制代码

出0入0汤圆

发表于 2023-12-6 10:46:33 来自手机 | 显示全部楼层
三年模拟 发表于 2023-12-6 10:06
有一款产品用了,gd,有极低概率外置晶振无法启动,程序死在main函数前,但是st的从来没遇到过,确认过了不 ...
(引用自9楼)

晶振启动timeout改了吗? gd需要把等待时间加长

出0入0汤圆

发表于 2023-12-6 10:57:05 | 显示全部楼层
tomzbj 发表于 2023-12-6 10:39
GD哪款? 如果照抄ST的SystemInit函数有几个地方要改一下, GD官方有说明.
不过最好是用gd自家的库, System ...
(引用自11楼)

请教,使能IRQ中断为啥要放在前面?

出0入0汤圆

发表于 2023-12-6 11:00:46 | 显示全部楼层
akey3000 发表于 2023-12-6 10:10
gd的哪个型号?印象中st的f103系列是有rtc不起振的问题。
(引用自10楼)

低频无源晶振吧?晶振也是有离散性差异的。

出0入4汤圆

发表于 2023-12-6 12:41:48 | 显示全部楼层
GD的405系列AD也是跟STM32F4一样有bug吗?

出0入115汤圆

发表于 2023-12-6 12:41:53 | 显示全部楼层
陆小凤之北京 发表于 2023-12-6 11:00
低频无源晶振吧?晶振也是有离散性差异的。
(引用自14楼)

yxc的8M晶振,感觉实gd的良率没有st高

出0入362汤圆

 楼主| 发表于 2023-12-6 15:41:03 | 显示全部楼层
陆小凤之北京 发表于 2023-12-6 10:57
请教,使能IRQ中断为啥要放在前面?
(引用自13楼)

无所谓吧, 放后面也行.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 20:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表