发新帖本帖赏金 8.00元(功能说明)我要提问
12下一页
返回列表
打印
[STM32F4]

【F446RE开发板试用】【2】你们的446能跑到180MHz吗?

[复制链接]
2863|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wu1169668869 于 2015-10-3 14:07 编辑

找到问题了,在地板那一楼,感觉是cubemx的bug吧或者是我这个软件的问题。

感觉是个人现象还是和大家分享一下~

当然看到一块主频很高的板子
想必很多人都想好好研(shou)究(cang)研(yi)究(kuai)
抱着这种对知(ban)识(zi)的渴求,我申请了这块板子,并且有幸申请到了这块板子。

之前发了一个DCMI尝试的算是分享吧(https://bbs.21ic.com/icview-1131568-1-2.html)用的是原子的例程,直接对PLL_M,PLL_N,PLL_P的值进行修改
抛开板子型号的定义(如STM32F40_41xxx),直接在程序里敲PLL_M,PLL_N,PLL_P右键跳转就知道哪个值是有效的
找到时钟的配置,理论上说这个频率不可能正常工作啊???
PLL_M 8
PLL_N 336
PLL_P 2

配置使用PLLCLK作为系统时钟,则当前时钟:
SYSCLK = HSE/PLL_M * PLL_N / PLL_P = 168MHz
。。。。。。固件库单步运行了SystemInit函数中的时钟配置SetSysClock,没有问题的样子 = =。

然后是cubemx的配置



配置完成直接生成代码,芯片直接跑飞掉了单步调试,发现程序在
SystemClock_Config->HAL_RCC_ClockConfig中的
tickstart = HAL_GetTick();//具体是stm32f4xx_hal_rcc.c的671行左右
然后就跑飞了
不知道是什么问题
然后改到PLL输出时钟最大为256/2=128MHz的时候工程才能正常运行

打赏榜单

21ic小喇叭 打赏了 8.00 元 2015-10-30

沙发
wu1169668869|  楼主 | 2015-10-2 20:58 | 只看该作者
哦对
这个是焊接了外部8M晶振的条件下弄的

使用特权

评论回复
板凳
wu1169668869|  楼主 | 2015-10-2 21:38 | 只看该作者
突然觉得好像是cubemx的问题?
这里使用的版本是Version4.10.0
STM32Cube V.10的版本
发现有个升级,正在升级中

另外试了1.8的HAL库
stm32cubef4\Projects\STM32446E-Nucleo\Examples\RCC\RCC_ClockConfig\MDK-ARM
这个时钟配置的例程终于好像是OK的了,记得把main.h中的宏定义修改一下如果焊接了外部晶振

使用特权

评论回复
地板
wu1169668869|  楼主 | 2015-10-2 21:56 | 只看该作者
本帖最后由 wu1169668869 于 2015-10-3 14:05 编辑

然后就是找不同啦
对比1.8的HAL库中:(看了一下1.7的库中这个工程也是一样的
stm32cubef4\Projects\STM32446E-Nucleo\Examples\RCC\RCC_ClockConfig\MDK-ARM

cubemx生成的代码,
发现

if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
大概就是这个FLASH相关的什么值不一样
例程给的是
FLASH_LATENCY_5
而cubemx生成的是
FLASH_LATENCY_2
然后把
cubemx生成的代码里(默认main.c的127行,这个应该都一样吧…
SystemClock_Config->HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
改成
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
就可以用示波器观察到
PC9和PA8上的对应时钟输出了

使用特权

评论回复
5
wu1169668869|  楼主 | 2015-10-2 22:33 | 只看该作者
测试
修改FLASH_LATENCY之后PC9的输出频率仍然非常糟糕(相比之下下载的cube_f4包中的例程输出波形比较稳定且幅值较大。。
不过好歹程序算是运行起来了
这时候设置系统时钟为180MHz,并且配置串口2可以正常通过虚拟串口向电脑打印数据。

使用特权

评论回复
6
皈依| | 2015-10-2 22:54 | 只看该作者

使用特权

评论回复
7
wu1169668869|  楼主 | 2015-10-3 11:41 | 只看该作者

。。。。。。。我就看到受赏数了

使用特权

评论回复
8
Ketose| | 2015-10-3 12:59 | 只看该作者
本帖最后由 Ketose 于 2015-10-3 13:03 编辑

这个芯片是180M,你非要用168M...
我用内置的hsi跑180M没有问题啊。

使用特权

评论回复
9
wu1169668869|  楼主 | 2015-10-3 13:18 | 只看该作者
Ketose 发表于 2015-10-3 12:59
这个芯片是180M,你非要用168M...
我用内置的hsi跑180M没有问题啊。


我也想直接拿它跑180M啊
然而拿cubemx生成的代码发现即使用hsi 180M也会挂掉
然后找了一下是这个东西不一样FLASH_LATENCY_5
现在可以正常180了啊…
(原谅我对F4系列和hal库都不熟

使用特权

评论回复
10
icecut| | 2015-10-3 19:17 | 只看该作者
研究方式非常值得赞扬,这种问题首选是升级固件,如果没有固件才考虑先降频.然后再考虑与频率相关的问题.

使用特权

评论回复
11
wu1169668869|  楼主 | 2015-10-5 00:08 | 只看该作者
icecut 发表于 2015-10-3 19:17
研究方式非常值得赞扬,这种问题首选是升级固件,如果没有固件才考虑先降频.然后再考虑与频率相关的问题. ...

新入f4还请多多指教~

使用特权

评论回复
12
fanxsd| | 2015-10-6 21:52 | 只看该作者
wu1169668869 发表于 2015-10-5 00:08
新入f4还请多多指教~

你的说话方式非常的现实啊!

使用特权

评论回复
13
wu1169668869|  楼主 | 2015-10-8 08:02 | 只看该作者
fanxsd 发表于 2015-10-6 21:52
你的说话方式非常的现实啊!

能表达出意思就好了吧_(:з」∠)_
好久没写实验报告不知道该怎么写了

使用特权

评论回复
14
逍遥李| | 2015-10-10 15:07 | 只看该作者
wu1169668869 发表于 2015-10-2 20:58
哦对
这个是焊接了外部8M晶振的条件下弄的

焊接了外部8MHZ晶振也跑不到180M吗?我刚拿到板子也试了,最多跑到142MHZ,再大就不跑了,还以为没接外部晶振的原因:L

使用特权

评论回复
15
逍遥李| | 2015-10-10 15:08 | 只看该作者
Ketose 发表于 2015-10-3 12:59
这个芯片是180M,你非要用168M...
我用内置的hsi跑180M没有问题啊。

:o为啥我跑180M内置不行呀

使用特权

评论回复
16
Ketose| | 2015-10-10 15:47 | 只看该作者
逍遥李 发表于 2015-10-10 15:08
为啥我跑180M内置不行呀

看下你的时钟配置。

使用特权

评论回复
17
wu1169668869|  楼主 | 2015-10-10 22:31 | 只看该作者
逍遥李 发表于 2015-10-10 15:08
为啥我跑180M内置不行呀

你用的cubemx吗?
cubemx我这边是要改个参数,
固件库可以用

使用特权

评论回复
18
XC456| | 2015-10-12 20:11 | 只看该作者
同有此疑问啊楼主,我也是cubemx,1.8版本的支持包,直接配置180MHZ程序不运行

使用特权

评论回复
19
wu1169668869|  楼主 | 2015-10-12 23:50 | 只看该作者
XC456 发表于 2015-10-12 20:11
同有此疑问啊楼主,我也是cubemx,1.8版本的支持包,直接配置180MHZ程序不运行 ...

你都没看我帖子啊喂

使用特权

评论回复
20
XC456| | 2015-10-13 08:44 | 只看该作者
wu1169668869 发表于 2015-10-12 23:50
你都没看我帖子啊喂

看了!昨天晚上回去试了,可以跑起来,有没有什么方法在没有示波器情况下精确测试系统跑到了多少MHZ?

使用特权

评论回复
发新帖 本帖赏金 8.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

83

帖子

0

粉丝