1 认识F7-DISCO STM32F7-DISCOVERY是ST推出的最新的一款开发板,使用ARM最新的CORTEX-M7内核,CORTEX-M7提供了很多新的特性。F7-DISCO充分发掘并将这些特性提供给用户,F7-DISCO是迄今为止最为强大的ST官方开发板。下面我们来认识一下它吧。 F7-DISCO使用简单的塑料包装,就像以往的NUCLEO和DISCO板一样,这样应该是为了节省成本吧,不过那么大一块LCD,小心被快递暴力了!建议以后带LCD的开发板包装里面,加一块防震海绵,应该会安全不少。不多说,下面先看图。7 Z R* @/ J0 D( j, S* Z 正面大图; d; a7 Q) p& ~4 [8 u% _ / Q! L/ Y5 a2 t. {! e" y4 c 反面大图 MCU特写 接口一(SAI AUDIO, ETHERNET, USB(OTG, VCOM, HOST)/ t. f/ ^4 _ J! ?/ ~/ e 2 |- S% E& Y. @7 E2 {( o& K5 B* `! Q2 E 接口二(uSD, DCMI, SPDIF)8 a* _3 C# S* _5 ?$ ^ 4 P6 P: x4 D8 ^! f0 a+ O7 t 板子做得很精致,特别是那一块4.3的LCD,很好,板载接口也比较丰富,一般的学习研究够用了。走马观花也看完了,到底有哪些资源,下面来仔细看看吧。 板载资源 O8 @8 x+ e' S* u7 T, E 6 r0 b+ L4 [" W+ O- M. H
软件环境及例程. _7 K& a4 x# C# S / \1 k" r3 }2 [6 L- k0 z ST提供了丰富的生态环境,其中之一就是开发工具。如果要使用IDE来做研发的的话,有成熟的IAR及MDK供开发者使用,最新的MDK V5.16甚至为CORTEX-M7专门做了优化和调整。除了这些商业软件之外,ST也和AC6一起协作开发了一个名为System Workbench for STM32的基于ECLIPSE的免费开发工具,另外还有大名鼎鼎的CooCox CoIDE开发环境。还有一个名为mbed的在线IDE,mbed称之为云开发环境,使用它,全世界的程序员都是你坚强的后盾。另外,如果你熟悉ARM自己的开发工具链,也可以直接使用ARM GCC来编译下载自己的程序。% e. B& P, J+ t. u- m8 p' h 4 E8 J+ k, i e& A' v4 D( S ST也提供自己的一些辅助开发工具,其中最有名的当数STM32CUBEMX了,这是一套生成代码的工具,它提供一个图形化配置界面,借助它,开发人员可以在很短的时间内生成自己的代码框架。CUBEMX基于ST自己的HAL库,和传统的STD库来说,HAL库的优势在于,将一些通用的操作抽象出来,以一种更高层次的API提供给开发者,低层的具体操作隐藏于这些HAL API之中。从传统的STD向HAL库转变,这有一个阵痛期。但毕竟,HAL库是以后ST提供的库的标准。 , H% P1 u7 Y' j' i9 M+ Q) ]6 P% l1 T HAL库不仅仅是一个代码库,更重要的是它提供了一系列的例程。当一个新的MCU推出,资料相对有限,这些例程就是研发人员最珍贵的宝藏了!1 P- |0 }+ \$ x. L / d0 c, _9 ]& [0 | 固件库里面不仅有单个的外设例程,也有综合性例程及完整的演示例程,甚至还提供了一个工程模板。 2 F7-DISCO特色功能一览* b/ F3 e, L; M8 e" r0 j9 S ) Y$ E) P: T& F% I6 ? F7-DISCO相对于以前的开发板来说,里面有很多新的特性值得我们关注。* ]8 S/ b t; ?. Q* G$ Q( b! m 2 S! r; O. D6 L5 }$ S! e( |" [ ST-LINK/V2-1 这个其实不算新的特性了,只是相对于以前的DISCO板来说,它是新的。老版的DISCO板载的是ST-LINK/V2。ST-LINK/V2-1的特性就是支持VCOM,还记得以前使用DISCO板的时候,如果要使用UART与电脑通信的话,必须外接一个UART转换器,将UART转换器的RX/TX与板载的TX/RX连接,才可以实现串口通信,现在调试UART的时候就可能通过ST-LINK/V2-1直接来实现了,一般情况下,ST-LINK/V2-1使用UART2与外部通信。NUCLEO板上使用的都是ST-LINK/V2-1。NUCLEO板载的ST-LINK/V2-1甚至可以用来做为一个外部调试器,这样就省去了专门购买ST-LINK的费用了,不过在F7-DISCO上,这一功能被去掉了,只能用于本设备的调试。1 a6 w8 H& s+ c. p) m; y9 O 3 k* Y7 t0 O/ \. v" y# K Z$ r) n' S \ SDRAM4 d. r5 {! h+ @0 K; t CORTEX-M7内核包含FMC控制器。FMC与以前的FSMC控制器相比较,就是支持SDRAM。不管对程序员还是对最终的用户来说,更多的内存意味着更高的性能。F7-DISCO板载128M bit的SDRAM,结合FMC控制器,使用SDRAM就像使用SRAM一样的方便。根据官方文档的描述,SDRAM控制器支持两个独立的SDRAM BANK,可以在8/16/32位总线宽度之间独立选择;控制器包含13位行地址,11位列地址,4个内部BANK,这样的话,最高可以支持256MB的外部SDRAM,不要以PC的眼光看来待这个值,在MCU的世界里,256MB可就是一令人震撼的数值了! 6 K, d8 w( S. m0 U. V% e# B SDRAM可以工作在HCLK/2或HCLK/3的频率下,支持可编程的时序参数,重要的是,它还支持CACHE读写。: E! q& f" G' g; V+ { 将SDRAM初始化后,SDRAM被映射到MCU的4G线性空间内,就可以像访问SRAM一样来访问SDRAM,非常的爽!举个例子来说,驱动板子上的LCD,使用的是LTDC来驱动,需要指定VRAM地址,现在将初始化SDRAM的地址指定给VRAM。这样配置后,读写点就是操纵一个指针的事,爽歪歪!! g% ` \4 ]; M : Q+ a% d# N1 f, u+ O) h- o$ e 可以说在F7-DISCO板上,或者是基于CORTEX-M7的产品上,内存限制已被极大改善。程序员再也不用像地主老财一样,抠抠索索的的了!(《亮剑》李云龙语)。 7 Z. C+ A) E. M! J$ C 不过坑爹的是,F7-DISCO板载的128M bit只连接了一半,是硬件上只连接了一半! 9 l7 I( B7 g, |3 P$ M' e$ X& y QSPI- N; B% E3 j1 [" q0 D QSPI的全称是Quad SPI,这是一种特殊的通信接口。按官方的描述,QSPI可以工作在三种模式下:间接模式、查询模式及内存映射模式。前面两种模式姑且不论,看到内存映射模式,有没有想到前面介绍的SDRAM工作,这也是一种内存映射模式啊! 5 n$ n0 Q, C5 a3 Q9 T, P7 g 请设想,将SPI FLASH初始化后,将它映射到4G的线性空间,然后将执行代码拷贝到该空间内,然后执行!是的,你没有看错,可以将执行代码拷贝到外部FLASH空间,然后执行代码!; R4 e6 P, B) G1 @ 8 G8 [1 ?' ^# f& M# U, B 如果要尝试一下此功能,请打开HAL固件库EXAMPLE目录下的QSPI目录,里面有例程,自己亲自体验一下吧! 再设想一下,程序功能升级换代时,主框架不变,变化的代码直接放入到外部FLASH中,主框架执行升级功能,其它逻辑都可以不变,这样是不是也不错? # @# p& V* v. n! A4 p! g 这样说来,是不是内置的FLASH空间以后也不是问题了呢?' D. F/ A: d* u4 u6 ~* ^ ( R" |) C/ l) o- S: F( q5 K8 N, q, X 其它特色' t6 `; x c' i& V F7-DISCO板载了丰富的外设,有下面这些:SD卡,ETHERNET接口,SAI AUDIO输出, SPDIF输入,摄像头接口, LCD。" G0 a& H0 [2 F" Y $ r, P p2 X/ [ 这些其实都不是很有特色。一些三方的开发板,大都有这些功能。只不过对于一块DISCO板来说,很不错了!: Z7 I9 @3 U3 p6 R" N! ~ 6 d+ Q) G- y# q SD卡接口,可以配合FATFS,体验一把当初BILL GATE写MSDOS系统的感觉!- k& T+ H0 {: y ETHERNET接口,从此开发板不再孤单,世界是互联的,LWIP可以助你一臂之力!9 y% Z8 D3 p. ^- K " @: y7 d! W9 M SAI AUDIO, SPDIF, 摄像头, LCD等等,从些F7-DISCO也可以跨入多媒体世界! , v3 W# M( I; k" |$ r% ~& v5 c, M 所有上面的这一切,都在等待你进入F7-DISCO的精彩世界,探索吧! ' {7 s M8 R- U. Z! j 3 体验F7-DISCO/ ^$ y) X) f ?2 ^ 说了一大堆,还是好好体验一把F7-DISCO吧! 编译代码6 Z7 h. o4 h3 l- R) \3 `' Q 如果你的F7-DISCO刚开箱,那么恭喜你,少了许多麻烦。如果你拿到板子,迫不及待的点了个LED灯,那么请仔细看下面的操作步骤,要不然就会出现错误,我也是在这上面跌了个跟头。) ]& a$ a$ K0 q' r( V6 z5 f 打开F7的固件库,打开演示用代码,如下图所示2 q# U7 h4 H+ [( E9 X' J& `" r 1 W: [+ G. A) I6 A! T! v 这是官方提供的演示例程,不用修改,直接按F7编译吧,正常情况下应该没有错误。 $ K0 S3 v( K' t% u/ V# q 接下就像往常一样,开始下载代码到开发板,咦,出问题了! 为什么会出问题,不是官方的例程么?不要着急,我们先来看看编译后的文件 4 m; Q" C9 \* D; y) Z: M 好家伙,18M,不是说内置的FLASH的只有1M,还记得前面说过128M bit QSPI FLASH么,工程里将部分数据放到这个里面,所以特大!怎么办,用ST-LINK UTILITY来烧写这个庞然大物吧!至于怎么烧写,看工程里的README文件就可以了,这里不多说。 在正式体验之前,我们还要准备一些东西,列表如下:9 T1 \* R% o. j" n8 O) g( I
全家福) ^; A, c; S$ B- W1 E2 X 基本上就这些东西了,万事俱备,只欠东风。下面的很多图片都是用VNC抓取的,也就是在PC机上看到的画面。 - \7 A0 z% u0 C/ T: e 配置VCN SERVER 上电后默认用户界面 2 O( H; G/ C: ~; Y, o+ i* Z: \" s # ] V# c3 o( t1 t/ \ 开启VNC, 点击"vnc server",点击启动图标后,出现如下配置画面,这个IP地址就是VNC SERVER的地址4 j4 \7 g0 s" [! g / {4 R6 j! C. H/ O5 _% K! p . G8 v& t/ q& n' m( D, {7 C4 U 接下来配置VNC客户端$ O+ A; D4 l. E y : v, q/ I ~% I 这个IP地址就是前面VNC SERVER启动后自动通过DHCP获取的IP地址。+ N% `+ C2 l; ] 3 ^2 e! T0 ~! p# i3 R 这样配置后,既可以直接在F7-DISCO上通过触屏来操作设备,也可以在PC上通过鼠标来操作设备,都试试吧!% H+ V. F6 ?4 C, H4 T+ I " ?1 {4 X$ I. a% \" o 部分功能演示$ r$ |2 e# D- C' | / A* i+ B" c# S' Z B 下面看看几个功能演示吧,就不录像了,看看图片效果就好。 音频播放& B- m. L$ A% ^4 C7 q ! l' @+ b: O+ {6 I: m+ D. f% {0 B2 J 视频播放,有趣的是,打开VNC的话,就不能播放视频了,毕竟处理能力有限3 P4 i n* e' G 9 Z1 O" K2 x) ?- j# X 系统信息 |1 M- A0 I1 X, \7 ` 5 M& G1 ]+ @6 l, |/ Q& L# B 游戏 录音功能% q. ~3 a, b& y - |( w8 q& I9 J8 G0 r. ? 也许是网络的原因,在开启VNC SERVER之后,系统就有点卡了,中间还死过一次机,原因不明。当然开启VNC后对CPU的处理要求也提高了。总体来说还好,只是对于它的多媒体处理能力期望值不要太高,毕竟它不是专业的DSP。 4 结论 F7-DISCO开发板总体来说,很好很强大!使用最先进的STM32F746NG处理器,该处理器引进了一些新的技术,如TCM,L1 CACHE等,从硬件上大大提升了MCU的性能。板载外设功能丰富,做为一款学习及评估用的开发板而言,还是能满足大部分人的需求的。 4 u3 d7 ^8 K5 n6 U# n' @$ D# k
总的来说,F7-DISCO用来跑个RTOS系统,研究研究STEMWIN来做个UI,研究一下基本的数字信号处理如图像、视频及音频的编/解码等还是非常不错的,另外板载以太网接口,可以用来研究一下LWIP及网络通信技术。SD卡接口结合FATFS玩一玩文件系统,都很好!一句话,F7-DISCO可以用来玩一些比较高档的东西,这些东西以前要想玩的话,可能得找块LINUX或FPGA板子才能玩,现在在F7-DISCO也能体验一把啦!当然也可以玩基本的外设如AD/DA, PWM等,不过要把板子翻过来才能玩!再提醒一句,别把LCD压坏了,或者在反面再接几个铜柱! ST的F7系列为自己打开了一片全新的天地,不过毕竟是试水之作,饱受诟病的就是F7系列200M的频率,不过这可能和首批产品使用的90NM制程有关,后续的产品,一但使用了全新的制程,将主频进一步提高,也许到那时,F7才能真正走得顺风顺水! + t" [% R* y1 u- U |
基于STM32F746G-Discover的扩展电路板
【合集】STM32F7教程、资料大集合
F769 Discovery实现播放U盘音乐的播放器
STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)
STM32F765@216MHz跑NES模拟器【代码】【视频】
基于STM32F7实现ADC软件触发+轮询采集
基于STM32F7进行ADC采集解决更新问题
基于STM32F7使用定时器经验分享
实现基于STM32F7中周期采集
基于STM32F7中实现采集和中断
附上楼主之前发的笔记等:
STM32F746G DISCO到手
LTDC简单学习-基于STM32F7 DISCO
F7通用工程模板(基于STM32F746NGHx)
STM32F7 平滑滚屏效果! l9 `9 i' C7 A5 q+ Y# P2 t
F7-DISCO笔记之二:SDRAM C+ l; B% f8 n
F7-DISCO笔记之三:SD和FATFS
! Q. _% P) F: G* |+ Y+ a
欢迎阅读爱板网评测文章:
【点评送板】解密全球首款Cortex-M7 MCU——STM32F7探索板评测
https://www.stmcu.org.cn/module/ ... &fromuid=3665066 C' s5 `3 g% _& o+ w
(出处: 意法半导体STM32/STM8技术社区)# Y- Q, C/ d4 X# y' i3 t& t. Y
3 c3 e: e% m: T' x
2个USB_HS/FS是micro-USB端口,另一个是mini-USB接口。
你通过JP1的跳线,可以使用USB_HS/FS来启动,当然就无法测试对应的功能了。
mini-USB无法启动开发板是另一个问题,具体后来搞清楚,并写在下面了:
https://www.stmcu.org.cn/module/forum/thread-603071-1-1.html
供电还是用的MICRO-USB,MINI-USB是用来做USB通信及HOST用的吧
有点无法理解这呵呵是什么意思
官方没有全部连接,只能用一半的内存容量
应该是IO不够用,主要是分给了摄像头。F7-EVAL板 是32bit的带宽。
我看帖的时候楼主的内容被屏蔽掉了。