打印

有收到开发板的兄弟跑到108M了没

[复制链接]
4717|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RT,,收到开发板的兄弟,有没有跑到108M的,
沙发
周立功GD32| | 2013-7-10 01:48 | 只看该作者
如果用8MHz晶振是无法跑到108MHz主频的,因为8×13=104、8×14=112
改用12MHz晶振则可以,12×9=108
其实完全不用纠结是否能跑到108MHz的额定最大主频,嵌入式应用大多对CPU速度要求不是很严格(当然,少数情况例外)
在我编写的例程中,大多喜欢用48MHz的主频,通用性非常好

使用特权

评论回复
板凳
周立功GD32| | 2013-7-10 01:51 | 只看该作者
本帖最后由 周立功GD32 于 2013-7-10 01:56 编辑

置顶贴当中对主频的配置方法太笨拙,无法任意更改,还是我自己写的sysClockSet()函数好用
示例:
sysClockSet(OSC_HSE, FREQ_8M, 13);    //  采用8MHz晶振,13倍频,主频=104MHz

使用特权

评论回复
地板
tjCFeng| | 2013-7-10 08:52 | 只看该作者
跑到12xM,又给改回来了,没敢再往上跑,呵呵。

使用特权

评论回复
5
liu8858| | 2013-7-10 08:58 | 只看该作者
本帖最后由 liu8858 于 2013-7-10 09:04 编辑

8M OSC 108M可以的:8/2*(15+12)=108MHz,按照置顶帖的设置就可以的,注意红色部分不要少哈
/*  PLL configuration: PLLCLK = HSE/2* (15+12) = 108 MHz */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                        RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(0x08000000 | RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL12);

使用特权

评论回复
6
周立功GD32| | 2013-7-10 09:12 | 只看该作者
这个写法能和STM32兼容吗?

使用特权

评论回复
7
sycamin|  楼主 | 2013-7-10 09:19 | 只看该作者
频率超过80M后程序不运行时怎么回事,
程序直接进入硬件错误中断

使用特权

评论回复
8
神器飞天| | 2013-7-10 09:21 | 只看该作者
周立功GD32 发表于 2013-7-10 01:48
如果用8MHz晶振是无法跑到108MHz主频的,因为8×13=104、8×14=112
改用12MHz晶振则可以,12×9=108
其 ...

8MHz HSE是可以跑到108MHz主频的,可以先2分频到4MHz,然后再27倍频就到108MHz。

使用特权

评论回复
9
sycamin|  楼主 | 2013-7-10 09:28 | 只看该作者
liu8858 发表于 2013-7-10 08:58
8M OSC 108M可以的:8/2*(15+12)=108MHz,按照置顶帖的设置就可以的,注意红色部分不要少哈
/*  PLL configura ...

兄弟你确认你按照这样的配置出来的时钟是108M??????

使用特权

评论回复
10
sycamin|  楼主 | 2013-7-10 09:56 | 只看该作者
终于看明白了。
多谢5楼的兄弟

使用特权

评论回复
11
周立功GD32| | 2013-7-10 09:59 | 只看该作者
原来倍频数是可以超过16的,学习了,抽空测试一下

使用特权

评论回复
12
GONGO| | 2013-7-10 10:31 | 只看该作者
如果在 超过 72 MHz 下使用串口,注意修改 RCC_GetClocksFreq()这个函数,增加 RCC_CFGR bit:27 的判定。(详见 GD 手册)
函数执行完成后, RCC_Clocks->SYSCLK_Frequency  应该等于要获得频率,具体的可以看一下 GD 库中的设置。

使用特权

评论回复
13
周立功GD32| | 2013-7-10 10:41 | 只看该作者
刚才对比了STM32和GD32的《用户指南》,发现“0x08000000”对应的STM32寄存器是“Reserved”
原来这是改进性的设计,所以这种写法确实不能和STM的芯片兼容!

使用特权

评论回复
14
周立功GD32| | 2013-7-10 10:46 | 只看该作者
在采用8M晶振的情况下,不必一定要配置到108M,配置为96M、104M或112M也很好嘛!尽量不使用不兼容的代码写法。

使用特权

评论回复
15
GONGO| | 2013-7-10 11:30 | 只看该作者
周立功GD32 发表于 2013-7-10 10:41
刚才对比了STM32和GD32的《用户指南》,发现“0x08000000”对应的STM32寄存器是“Reserved”
原来这是改进 ...

没错,这个在 ST 512K以下,是不用的,512K 以上 定义是 MCO 的高位


这里使用一个宏定义区分一下吧!
-------------------------------------------------------------------------------------------------

如果要使用ST的库  最理想的方式是
上电读一下 ID 识别一下芯片类型,然后自适应,调用相应函数与参数。
一次改动,就不用再改了。

使用特权

评论回复
16
GONGO| | 2013-7-10 11:47 | 只看该作者
周立功GD32 发表于 2013-7-10 10:46
在采用8M晶振的情况下,不必一定要配置到108M,配置为96M、104M或112M也很好嘛!尽量不使用不兼容的代码写 ...

如果不计较速度的话,104MHz 也是一个不错的选择。
这样 RCC 部分的库不用改动。
108 Mhz 尽量不要在正式应用中使用。

使用特权

评论回复
17
锐鑫同创| | 2013-7-10 12:11 | 只看该作者
周立功GD32 发表于 2013-7-10 01:48
如果用8MHz晶振是无法跑到108MHz主频的,因为8×13=104、8×14=112
改用12MHz晶振则可以,12×9=108
其 ...

不知道您是否是周立功公司的,首先感谢您在论坛里帮网友解答问题,周立功至少在mcu这个圈里是公众人物,您的一言一行可能直接影响到他人对GD32的判断,所以建议您的回答最好谨慎严谨一些,不然对网友会有误导,谢谢。

使用特权

评论回复
18
miaoguoqiang| | 2013-7-10 15:08 | 只看该作者
还没有试过27倍频

使用特权

评论回复
19
shenpingbing| | 2013-8-28 20:54 | 只看该作者
这个帖子貌似有点火*味

使用特权

评论回复
20
hudi008| | 2013-8-29 10:08 | 只看该作者
实验室周立功GD32的象棋就知道了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

100

帖子

0

粉丝