1 认识F7-DISCO
STM32F7-DISCOVERY是ST推出的最新的一款开发板,使用ARM最新的CORTEX-M7内核,CORTEX-M7提供了很多新的特性。
F7-DISCO充分发掘并将这些特性提供给用户,F7-DISCO是迄今为止最为强大的ST官方开发板。下面我们来认识一下它吧。
F7-DISCO使用简单的塑料包装,就像以往的NUCLEO和DISCO板一样,这样应该是为了节省成本吧,不过那么大一块LCD,小心被快递暴力了!建议以后带LCD的开发板包装里面,加一块防震海绵,应该会安全不少。不多说,下面先看图。
正面大图
反面大图
板载资源
-
STM32F746NGH6微处理器,BGA216封装,自带1MB FLASH,340K SRAM
-
ST-LINK/V2-1,这个可是以前的DISCO板没有的哦
-
USB接口,可以用于VCOM, USB HOST, USB OTG及调试
-
4.3" LCD, 分辨率480X272,带触屏
-
摄像头接口
-
SAI音频接口,带立体声输出, SPDIF RCA输入接口
-
ST MEMS麦克输入
-
128Mb QSPI FLASH存储, 128Mb SDRAM
-
uSD接口
-
以太网接口
-
MORPH接口,兼容ARDUINO
-
5种供电接口,提供3.3/5V输出
软件环境及例程
ST提供了丰富的生态环境,其中之一就是开发工具。如果要使用IDE来做研发的的话,有成熟的IAR及MDK供开发者使用,最新的MDK
V5.16甚至为CORTEX-M7专门做了优化和调整。除了这些商业软件之外,ST也和AC6一起协作开发了一个名为System Workbench
for STM32的基于ECLIPSE的免费开发工具,另外还有大名鼎鼎的CooCox
CoIDE开发环境。还有一个名为mbed的在线IDE,mbed称之为云开发环境,使用它,全世界的程序员都是你坚强的后盾。另外,如果你熟悉ARM自
己的开发工具链,也可以直接使用ARM GCC来编译下载自己的程序。
ST也提供自己的一些辅助开发工具,其中最有名的当数STM32CUBEMX了,这是一套生成代码的工具,它提供一个图形化配置界面,借助它,开发人员可
以在很短的时间内生成自己的代码框架。CUBEMX基于ST自己的HAL库,和传统的STD库来说,HAL库的优势在于,将一些通用的操作抽象出来,以一
种更高层次的API提供给开发者,低层的具体操作隐藏于这些HAL
API之中。从传统的STD向HAL库转变,这有一个阵痛期。但毕竟,HAL库是以后ST提供的库的标准。
HAL库不仅仅是一个代码库,更重要的是它提供了一系列的例程。当一个新的MCU推出,资料相对有限,这些例程就是研发人员最珍贵的宝藏了!
2 F7-DISCO特色功能一览
F7-DISCO相对于以前的开发板来说,里面有很多新的特性值得我们关注。
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上,这一功能被去掉了,只能用于本设备的调试。
SDRAM
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读写。
将SDRAM初始化后,SDRAM被映射到MCU的4G线性空间内,就可以像访问SRAM一样来访问SDRAM,非常的爽!举个例子来说,驱动板子上的
LCD,使用的是LTDC来驱动,需要指定VRAM地址,现在将初始化SDRAM的地址指定给VRAM。这样配置后,读写点就是操纵一个指针的事,爽歪
歪!
可以说在F7-DISCO板上,或者是基于CORTEX-M7的产品上,内存限制已被极大改善。程序员再也不用像地主老财一样,抠抠索索的的了!(《亮剑》李云龙语)。
不过坑爹的是,F7-DISCO板载的128M bit只连接了一半,是硬件上只连接了一半!
QSPI
QSPI的全称是Quad SPI,这是一种特殊的通信接口。按官方的描述,QSPI可以工作在三种模式下:间接模式、查询模式及内存映射模式。前面两种模式姑且不论,看到内存映射模式,有没有想到前面介绍的SDRAM工作,这也是一种内存映射模式啊!
请设想,将SPI FLASH初始化后,将它映射到4G的线性空间,然后将执行代码拷贝到该空间内,然后执行!是的,你没有看错,可以将执行代码拷贝到外部FLASH空间,然后执行代码!
如果要尝试一下此功能,请打开HAL固件库EXAMPLE目录下的QSPI目录,里面有例程,自己亲自体验一下吧!
再设想一下,程序功能升级换代时,主框架不变,变化的代码直接放入到外部FLASH中,主框架执行升级功能,其它逻辑都可以不变,这样是不是也不错?
这样说来,是不是内置的FLASH空间以后也不是问题了呢?
其它特色
F7-DISCO板载了丰富的外设,有下面这些:SD卡,ETHERNET接口,SAI AUDIO输出, SPDIF输入,摄像头接口, LCD。
这些其实都不是很有特色。一些三方的开发板,大都有这些功能。只不过对于一块DISCO板来说,很不错了!
SD卡接口,可以配合FATFS,体验一把当初BILL GATE写MSDOS系统的感觉!
ETHERNET接口,从此开发板不再孤单,世界是互联的,LWIP可以助你一臂之力!
SAI AUDIO, SPDIF, 摄像头, LCD等等,从些F7-DISCO也可以跨入多媒体世界!
所有上面的这一切,都在等待你进入F7-DISCO的精彩世界,探索吧!
1 认识F7-DISCO
STM32F7-DISCOVERY是ST推出的最新的一款开发板,使用ARM最新的CORTEX-M7内核,CORTEX-M7提供了很多新的特性。
F7-DISCO充分发掘并将这些特性提供给用户,F7-DISCO是迄今为止最为强大的ST官方开发板。下面我们来认识一下它吧。
F7-DISCO使用简单的塑料包装,就像以往的NUCLEO和DISCO板一样,这样应该是为了节省成本吧,不过那么大一块LCD,小心被快递暴力了!建议以后带LCD的开发板包装里面,加一块防震海绵,应该会安全不少。不多说,下面先看图。
正面大图
反面大图
板载资源
-
STM32F746NGH6微处理器,BGA216封装,自带1MB FLASH,340K SRAM
-
ST-LINK/V2-1,这个可是以前的DISCO板没有的哦
-
USB接口,可以用于VCOM, USB HOST, USB OTG及调试
-
4.3" LCD, 分辨率480X272,带触屏
-
摄像头接口
-
SAI音频接口,带立体声输出, SPDIF RCA输入接口
-
ST MEMS麦克输入
-
128Mb QSPI FLASH存储, 128Mb SDRAM
-
uSD接口
-
以太网接口
-
MORPH接口,兼容ARDUINO
-
5种供电接口,提供3.3/5V输出
软件环境及例程
ST提供了丰富的生态环境,其中之一就是开发工具。如果要使用IDE来做研发的的话,有成熟的IAR及MDK供开发者使用,最新的MDK
V5.16甚至为CORTEX-M7专门做了优化和调整。除了这些商业软件之外,ST也和AC6一起协作开发了一个名为System Workbench
for STM32的基于ECLIPSE的免费开发工具,另外还有大名鼎鼎的CooCox
CoIDE开发环境。还有一个名为mbed的在线IDE,mbed称之为云开发环境,使用它,全世界的程序员都是你坚强的后盾。另外,如果你熟悉ARM自
己的开发工具链,也可以直接使用ARM GCC来编译下载自己的程序。
ST也提供自己的一些辅助开发工具,其中最有名的当数STM32CUBEMX了,这是一套生成代码的工具,它提供一个图形化配置界面,借助它,开发人员可
以在很短的时间内生成自己的代码框架。CUBEMX基于ST自己的HAL库,和传统的STD库来说,HAL库的优势在于,将一些通用的操作抽象出来,以一
种更高层次的API提供给开发者,低层的具体操作隐藏于这些HAL
API之中。从传统的STD向HAL库转变,这有一个阵痛期。但毕竟,HAL库是以后ST提供的库的标准。
HAL库不仅仅是一个代码库,更重要的是它提供了一系列的例程。当一个新的MCU推出,资料相对有限,这些例程就是研发人员最珍贵的宝藏了!
2 F7-DISCO特色功能一览
F7-DISCO相对于以前的开发板来说,里面有很多新的特性值得我们关注。
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上,这一功能被去掉了,只能用于本设备的调试。
SDRAM
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读写。
将SDRAM初始化后,SDRAM被映射到MCU的4G线性空间内,就可以像访问SRAM一样来访问SDRAM,非常的爽!举个例子来说,驱动板子上的
LCD,使用的是LTDC来驱动,需要指定VRAM地址,现在将初始化SDRAM的地址指定给VRAM。这样配置后,读写点就是操纵一个指针的事,爽歪
歪!
可以说在F7-DISCO板上,或者是基于CORTEX-M7的产品上,内存限制已被极大改善。程序员再也不用像地主老财一样,抠抠索索的的了!(《亮剑》李云龙语)。
不过坑爹的是,F7-DISCO板载的128M bit只连接了一半,是硬件上只连接了一半!
QSPI
QSPI的全称是Quad SPI,这是一种特殊的通信接口。按官方的描述,QSPI可以工作在三种模式下:间接模式、查询模式及内存映射模式。前面两种模式姑且不论,看到内存映射模式,有没有想到前面介绍的SDRAM工作,这也是一种内存映射模式啊!
请设想,将SPI FLASH初始化后,将它映射到4G的线性空间,然后将执行代码拷贝到该空间内,然后执行!是的,你没有看错,可以将执行代码拷贝到外部FLASH空间,然后执行代码!
如果要尝试一下此功能,请打开HAL固件库EXAMPLE目录下的QSPI目录,里面有例程,自己亲自体验一下吧!
再设想一下,程序功能升级换代时,主框架不变,变化的代码直接放入到外部FLASH中,主框架执行升级功能,其它逻辑都可以不变,这样是不是也不错?
这样说来,是不是内置的FLASH空间以后也不是问题了呢?
其它特色
F7-DISCO板载了丰富的外设,有下面这些:SD卡,ETHERNET接口,SAI AUDIO输出, SPDIF输入,摄像头接口, LCD。
这些其实都不是很有特色。一些三方的开发板,大都有这些功能。只不过对于一块DISCO板来说,很不错了!
SD卡接口,可以配合FATFS,体验一把当初BILL GATE写MSDOS系统的感觉!
ETHERNET接口,从此开发板不再孤单,世界是互联的,LWIP可以助你一臂之力!
SAI AUDIO, SPDIF, 摄像头, LCD等等,从些F7-DISCO也可以跨入多媒体世界!
所有上面的这一切,都在等待你进入F7-DISCO的精彩世界,探索吧!