1 认识F7-DISCO : a* |1 u0 t0 Z! N STM32F7-DISCOVERY是ST推出的最新的一款开发板,使用ARM最新的CORTEX-M7内核,CORTEX-M7提供了很多新的特性。F7-DISCO充分发掘并将这些特性提供给用户,F7-DISCO是迄今为止最为强大的ST官方开发板。下面我们来认识一下它吧。* g Q% W. N. _: Q7 M1 W4 X F7-DISCO使用简单的塑料包装,就像以往的NUCLEO和DISCO板一样,这样应该是为了节省成本吧,不过那么大一块LCD,小心被快递暴力了!建议以后带LCD的开发板包装里面,加一块防震海绵,应该会安全不少。不多说,下面先看图。% Z; z& x7 p1 d9 u+ r. m8 |) K/ b+ ~2 U " l1 f/ ^# R# q1 B9 o9 s" c 正面大图* k- h4 ?4 ?' L; Z5 x5 M 6 d2 }/ z1 v Z# L . H/ ^* P; K5 U$ _, G8 m K 反面大图 MCU特写8 I3 r) ^! u; m1 o; U , \: n- K) F: L3 F. D 接口一(SAI AUDIO, ETHERNET, USB(OTG, VCOM, HOST) 接口二(uSD, DCMI, SPDIF)! ^+ o- B! s5 y4 J; o / S( {* L- r2 M% Z3 @# U& \ . W, e' c! D: @5 M ' H& u ]) n8 q. Q1 b& J: g w 板子做得很精致,特别是那一块4.3的LCD,很好,板载接口也比较丰富,一般的学习研究够用了。走马观花也看完了,到底有哪些资源,下面来仔细看看吧。$ |. @2 H( R5 [( b' h7 q# n) b9 z % W# Z9 ?7 C0 x 板载资源 8 Z" D" C+ i) O8 p. ^/ p6 m
软件环境及例程 ST提供了丰富的生态环境,其中之一就是开发工具。如果要使用IDE来做研发的的话,有成熟的IAR及MDK供开发者使用,最新的MDK V5.16甚至为CORTEX-M7专门做了优化和调整。除了这些商业软件之外,ST也和AC6一起协作开发了一个名为System Workbench for STM32的基于ECLIPSE的免费开发工具,另外还有大名鼎鼎的CooCox CoIDE开发环境。还有一个名为mbed的在线IDE,mbed称之为云开发环境,使用它,全世界的程序员都是你坚强的后盾。另外,如果你熟悉ARM自己的开发工具链,也可以直接使用ARM GCC来编译下载自己的程序。4 U6 E0 U# T/ c- n" m# b & F; T3 q! q% {! `- Y1 C& Q& o; E/ r ST也提供自己的一些辅助开发工具,其中最有名的当数STM32CUBEMX了,这是一套生成代码的工具,它提供一个图形化配置界面,借助它,开发人员可以在很短的时间内生成自己的代码框架。CUBEMX基于ST自己的HAL库,和传统的STD库来说,HAL库的优势在于,将一些通用的操作抽象出来,以一种更高层次的API提供给开发者,低层的具体操作隐藏于这些HAL API之中。从传统的STD向HAL库转变,这有一个阵痛期。但毕竟,HAL库是以后ST提供的库的标准。 HAL库不仅仅是一个代码库,更重要的是它提供了一系列的例程。当一个新的MCU推出,资料相对有限,这些例程就是研发人员最珍贵的宝藏了! % h g, {( _( m# {- I" x 固件库里面不仅有单个的外设例程,也有综合性例程及完整的演示例程,甚至还提供了一个工程模板。 l0 Q2 O( b! ?: B [. m b8 I 2 F7-DISCO特色功能一览 F7-DISCO相对于以前的开发板来说,里面有很多新的特性值得我们关注。* K9 G: u2 R8 v' E ( j4 ]2 F1 L. N( @ 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上,这一功能被去掉了,只能用于本设备的调试。/ k5 f5 g3 V- _ SDRAM/ A" B! v" A# s! H, I( P$ l& k 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可就是一令人震撼的数值了! SDRAM可以工作在HCLK/2或HCLK/3的频率下,支持可编程的时序参数,重要的是,它还支持CACHE读写。 ' E( X" z. H9 Z. K( ?& F7 X 将SDRAM初始化后,SDRAM被映射到MCU的4G线性空间内,就可以像访问SRAM一样来访问SDRAM,非常的爽!举个例子来说,驱动板子上的LCD,使用的是LTDC来驱动,需要指定VRAM地址,现在将初始化SDRAM的地址指定给VRAM。这样配置后,读写点就是操纵一个指针的事,爽歪歪!" [/ ?7 E% ~0 r) @$ k 7 K5 K( n! D; R7 P" ? 可以说在F7-DISCO板上,或者是基于CORTEX-M7的产品上,内存限制已被极大改善。程序员再也不用像地主老财一样,抠抠索索的的了!(《亮剑》李云龙语)。 ( U0 E8 F; W- t; x5 i5 Y; }; c: A 不过坑爹的是,F7-DISCO板载的128M bit只连接了一半,是硬件上只连接了一半! : e$ p# x8 }7 H QSPI i/ }$ f6 b, @ QSPI的全称是Quad SPI,这是一种特殊的通信接口。按官方的描述,QSPI可以工作在三种模式下:间接模式、查询模式及内存映射模式。前面两种模式姑且不论,看到内存映射模式,有没有想到前面介绍的SDRAM工作,这也是一种内存映射模式啊! 请设想,将SPI FLASH初始化后,将它映射到4G的线性空间,然后将执行代码拷贝到该空间内,然后执行!是的,你没有看错,可以将执行代码拷贝到外部FLASH空间,然后执行代码!8 b3 X+ A2 Z+ D" H, C" @ 8 J) L3 U& y2 F 如果要尝试一下此功能,请打开HAL固件库EXAMPLE目录下的QSPI目录,里面有例程,自己亲自体验一下吧!1 h- |; v' Z- I( g. G ; R) J1 o8 ]' @. W+ U 再设想一下,程序功能升级换代时,主框架不变,变化的代码直接放入到外部FLASH中,主框架执行升级功能,其它逻辑都可以不变,这样是不是也不错? 这样说来,是不是内置的FLASH空间以后也不是问题了呢? % @( l. |& d/ |7 v. B 其它特色 F7-DISCO板载了丰富的外设,有下面这些:SD卡,ETHERNET接口,SAI AUDIO输出, SPDIF输入,摄像头接口, LCD。 这些其实都不是很有特色。一些三方的开发板,大都有这些功能。只不过对于一块DISCO板来说,很不错了! . V, t% c; \; D/ \( J& k SD卡接口,可以配合FATFS,体验一把当初BILL GATE写MSDOS系统的感觉! ETHERNET接口,从此开发板不再孤单,世界是互联的,LWIP可以助你一臂之力!; a$ B+ \. W* R- Z 9 I( `( I- G# m# @( s. Q, j SAI AUDIO, SPDIF, 摄像头, LCD等等,从些F7-DISCO也可以跨入多媒体世界!5 V$ I. V" J5 @, T 2 y! ?( Z1 O" \5 |. V" B/ l 所有上面的这一切,都在等待你进入F7-DISCO的精彩世界,探索吧!( f7 {( V' a( {) p$ s+ I ' }; P( p8 l) _/ I* e5 |: }2 Q 3 体验F7-DISCO 说了一大堆,还是好好体验一把F7-DISCO吧! 编译代码/ [! w: C+ V/ X! O$ G) @2 o6 ^ 如果你的F7-DISCO刚开箱,那么恭喜你,少了许多麻烦。如果你拿到板子,迫不及待的点了个LED灯,那么请仔细看下面的操作步骤,要不然就会出现错误,我也是在这上面跌了个跟头。 % ?3 l( @4 p) R- M3 V6 Y 打开F7的固件库,打开演示用代码,如下图所示/ C# {) F; ^; C* H" G ; h! j/ H7 Y( D) F- J& p l1 i 这是官方提供的演示例程,不用修改,直接按F7编译吧,正常情况下应该没有错误。 接下就像往常一样,开始下载代码到开发板,咦,出问题了! 为什么会出问题,不是官方的例程么?不要着急,我们先来看看编译后的文件: c/ n( n8 l7 e8 k ' s: |- ?+ \# ~9 L# \$ P r8 L 好家伙,18M,不是说内置的FLASH的只有1M,还记得前面说过128M bit QSPI FLASH么,工程里将部分数据放到这个里面,所以特大!怎么办,用ST-LINK UTILITY来烧写这个庞然大物吧!至于怎么烧写,看工程里的README文件就可以了,这里不多说。. q: A) H4 X; K& ? d# G 在正式体验之前,我们还要准备一些东西,列表如下:+ e, r- P, }5 b5 i" p2 c' B+ U& j; {
全家福 k8 }! }, s& N. Y- W, I. `5 \ 基本上就这些东西了,万事俱备,只欠东风。下面的很多图片都是用VNC抓取的,也就是在PC机上看到的画面。% Z# O. l. r. W 配置VCN SERVER 6 y- V; z# G5 w- x 上电后默认用户界面 " u0 f2 j' H- F; C! @; i 开启VNC, 点击"vnc server",点击启动图标后,出现如下配置画面,这个IP地址就是VNC SERVER的地址 1 y& d% ^' {, ~8 N4 ` 接下来配置VNC客户端. ^* I3 q9 P/ r/ ^ 这个IP地址就是前面VNC SERVER启动后自动通过DHCP获取的IP地址。 7 b3 X% P+ F1 B9 C5 \ 这样配置后,既可以直接在F7-DISCO上通过触屏来操作设备,也可以在PC上通过鼠标来操作设备,都试试吧!6 G# \0 y1 M$ U! {5 }+ ^ 部分功能演示3 l7 `. L6 X8 x% [: x/ R 下面看看几个功能演示吧,就不录像了,看看图片效果就好。+ b* U1 u& C: Y. F6 d 音频播放 5 `; X) L. M R 视频播放,有趣的是,打开VNC的话,就不能播放视频了,毕竟处理能力有限 ( j, d* o8 Y# ?! [- }, A6 B5 K4 Y 系统信息/ K; N+ | p! d6 I* n/ C- v 游戏 录音功能, |6 [/ x! w' r! |' n: M6 q " e% J% B! L+ U6 B1 U 也许是网络的原因,在开启VNC SERVER之后,系统就有点卡了,中间还死过一次机,原因不明。当然开启VNC后对CPU的处理要求也提高了。总体来说还好,只是对于它的多媒体处理能力期望值不要太高,毕竟它不是专业的DSP。 / b; I+ i! W' y7 @7 o 4 结论 F7-DISCO开发板总体来说,很好很强大!使用最先进的STM32F746NG处理器,该处理器引进了一些新的技术,如TCM,L1 CACHE等,从硬件上大大提升了MCU的性能。板载外设功能丰富,做为一款学习及评估用的开发板而言,还是能满足大部分人的需求的。
总的来说,F7-DISCO用来跑个RTOS系统,研究研究STEMWIN来做个UI,研究一下基本的数字信号处理如图像、视频及音频的编/解码等还是非常不错的,另外板载以太网接口,可以用来研究一下LWIP及网络通信技术。SD卡接口结合FATFS玩一玩文件系统,都很好!一句话,F7-DISCO可以用来玩一些比较高档的东西,这些东西以前要想玩的话,可能得找块LINUX或FPGA板子才能玩,现在在F7-DISCO也能体验一把啦!当然也可以玩基本的外设如AD/DA, PWM等,不过要把板子翻过来才能玩!再提醒一句,别把LCD压坏了,或者在反面再接几个铜柱!4 F. H1 [1 q- n ST的F7系列为自己打开了一片全新的天地,不过毕竟是试水之作,饱受诟病的就是F7系列200M的频率,不过这可能和首批产品使用的90NM制程有关,后续的产品,一但使用了全新的制程,将主频进一步提高,也许到那时,F7才能真正走得顺风顺水!/ Y, x2 x9 g/ _2 ?8 O/ H& D 4 f t0 K* N9 { |
基于STM32F746G-Discover的扩展电路板
【合集】STM32F7教程、资料大集合
F769 Discovery实现播放U盘音乐的播放器
STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)
STM32F765@216MHz跑NES模拟器【代码】【视频】
基于STM32F7实现ADC软件触发+轮询采集
基于STM32F7进行ADC采集解决更新问题
基于STM32F7使用定时器经验分享
实现基于STM32F7中周期采集
基于STM32F7中实现采集和中断
3 c u! J$ m# T) S) l8 n
附上楼主之前发的笔记等:
STM32F746G DISCO到手
LTDC简单学习-基于STM32F7 DISCO0 r1 q$ w1 \$ j5 I$ ^& l
F7通用工程模板(基于STM32F746NGHx)6 q B5 T( P6 U$ z1 V' R
STM32F7 平滑滚屏效果! W z6 C% l& n4 B
F7-DISCO笔记之二:SDRAM
F7-DISCO笔记之三:SD和FATFS
欢迎阅读爱板网评测文章:4 A! p2 t& L9 e7 d7 W/ l) X# a) g6 X
【点评送板】解密全球首款Cortex-M7 MCU——STM32F7探索板评测- ~/ y6 u( I0 E3 E; J
https://www.stmcu.org.cn/module/ ... &fromuid=366506
(出处: 意法半导体STM32/STM8技术社区)' g! F" D, W) Y- l% d( j! i2 P/ ?
2个USB_HS/FS是micro-USB端口,另一个是mini-USB接口。2 C5 G7 s3 j: J k% V. Y; D
你通过JP1的跳线,可以使用USB_HS/FS来启动,当然就无法测试对应的功能了。9 E/ G7 y- R. @$ j' P, P7 c
mini-USB无法启动开发板是另一个问题,具体后来搞清楚,并写在下面了:
https://www.stmcu.org.cn/module/forum/thread-603071-1-1.html
供电还是用的MICRO-USB,MINI-USB是用来做USB通信及HOST用的吧
有点无法理解这呵呵是什么意思
官方没有全部连接,只能用一半的内存容量
应该是IO不够用,主要是分给了摄像头。F7-EVAL板 是32bit的带宽。
我看帖的时候楼主的内容被屏蔽掉了。