完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 正点原子运营官 于 2020-7-14 15:59 编辑
1)实验平台:正点原子水星 STM32F4/F7 开发板 2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子 3)正点原子资料下载中心:http://www.openedv.com/thread-13912-1-1.html 第二章 实验平台硬件资源详解 本章,我们将节将向大家详细介绍 ALIENTEK 水星 STM32F7 开发板各部分(包括底板和 核心板)的硬件原理图,让大家对该开发板的各部分硬件原理有个深入理解,并向大家介绍开 发板的使用注意事项,为后面的学习做好准备。 本章将分为如下两节: 2.1,开发板底板原理图详解; 2.2,STM32F7 核心板原理图详解 2.3,开发板使用注意事项; 2.4,STM32F7 学习方法; 2.1 开发板底板原理图详解 2.1.1 核心板接口 水星 STM32F767 开发板采用底板+核心板的形式,使得一块底板,可以学习多款 MCU, 提高资源利用率,从而降低学习成本。水星 STM32 开发板底板采用 2 个 2*30 的 3710F(母座) 板对板连接器来同核心板连接,接插非常方便,底板上面的核心板接口原理图如图2.1.1.1所示: 图 2.1.1.1 底板核心板接口部分原理图 图中的 M1 就是底板上的核心板接口,由 2 个 2*30PIN 的 3710F 板对板母座组成,总共引 出了核心板上面 110 个 IO 口,另外,还有:6 根电源线(VCC/GND 各占 3 根)、BOOT1、VBAT、 RESET 和 VREF+。 2.1.2 引出 IO 口 水星STM32F767开发板底板上面,总共引出了STM32F767IGT6的102个IO口,如图2.1.2.1 所示: 图 2.1.2.1 引出 IO 口 图中 P1、P2 为 MCU 主 IO 引出口,这两组排针共引出了 102 个 IO 口,另外,通过:P3 (PA9&PA10)、P6(PA2&PA3)、和 P7(PA11&PA12)等 3 组排针引出 6 个 IO 口,这样底板 上总共引出了 108 个 IO。STM32F767IGT6 总共有 140 个 IO,剩下的 30 几个 IO,主要用在了 晶振、SDRAM、RGBLCD 等常用外设上面,不太适合再引出来做其他用,所以,我们就没有 引出来了。 2.1.3 USB 串口/串口 1 选择接口 水星STM32F767开发板板载的USB串口和STM32F767IGT6的串口是通过P3连接起来的, 如图 2.1.3.1 所示: 图 2.1.3.1 USB 串口/串口 1 选择接口 图中 TXD/RXD 是相对 CH340G 来说的,也就是 USB 串口的发送和接受脚。而 USART1_RX 和 USART1_TX 则是相对于 STM32F767IGT6 来说的。这样,通过对接,就可以实现 USB 串口 和 STM32F767IGT6 的串口通信了。同时,P3 是 PA9 和 PA10 的引出口。 这样设计的好处就是使用上非常灵活。比如需要用到外部TTL串口和STM32通信的时候,只需要拔了跳线帽,通过杜邦线连接外部 TTL 串口,就可以实现和外部设备的串口通信了;又 比如我有个板子需要和电脑通信,但是电脑没有串口,那么你就可以使用开发板的 RXD 和 TXD 来连接你的设备,把我们的开发板当成 USB 转串口用了。 2.1.4 JTAG/SWD 水星 STM32F767 开发板板载的标准 20 针 JTAG/SWD 接口电路如图 2.1.4.1 所示: 图 2.1.4.1 JTAG/SWD 接口 这里,我们采用的是标准的 JTAG 接法(支持 SWD),但是 STM32 还有 SWD 接口,SWD 只需要最少 2 跟线(SWCLK 和 SWDIO)就可以下载并调试代码了,这同我们使用串口下载代 码差不多,而且速度非常快,也能调试。所以建议大家在设计产品的时候,可以留出 SWD 来 下载调试代码,而摒弃 JTAG。STM32 的 SWD 接口与 JTAG 是共用的,只要接上 JTAG,你就 可以使用 SWD 模式了(其实并不需要 JTAG 这么多线),当然,你的调试器必须支持 SWD 模 式,JLINK(必须是 V9 或者以上版本)、ULINK2 和 ST LINK 等都支持 SWD 调试。 特别提醒,JTAG 有几个信号线用来接其他外设了,但是 SWD 是完全没有接任何其他外设 的,所以在使用的时候,推荐大家一律使用 SWD 模式!!! 2.1.5 参考电压选择端口 水星 STM32F767 开发板板载了一个参考电压选择口,如图 2.1.5.1 所示: 图 2.1.5.1 参考电压选择端口 图中VREF_SEL默认用跳线帽连接1&2脚,从而VREF+=3.3V,即STM32芯片的ADC/DAC 参考电压,默认是 3.3V 的。如果大家想用自己的参考电压,则把你的参考电压接入 VREF+即 可(注意,还要共地)。 特别注意:该接口还是控制核心板 LED 的总开关,当 VREF+接 3.3V 时(插跳线帽),核 心板所有 LED(PWR&DS0)都不工作,当 VREF+悬空时(拔掉跳线帽),核心板所有 LED 都 正常工作。如不想让此接口控制核心板的 LED,那么请拆除核心板的 R14 电阻即可。 2.1.6 LCD 模块接口 水星 STM32F767 开发板板载的 LCD 模块接口电路如图 2.1.6.1 所示: 图 2.1.6.1 LCD 模块接口 图中 TFT_LCD 是一个通用的液晶模块接口,采用 16 位 80 并口,也称作 MCU 屏接口, 仅支持 MCU 接口的液晶(不支持 RGB 接口的液晶), ALIENTEK 的 MCU 接口 TFTLCD 模 块有:2.4 寸、2.8 寸、3.5 寸、4.3 寸和 7 寸等尺寸。LCD 接口连接在 STM32F767IGT6 的 FSMC 总线上面,可以显著提高 LCD 的刷屏速度。 图中的 T_MISO/T_MOSI/T_PEN/T_CS/T_SCK 连接在 MCU 的 PG3/PI3/PH7/PI8/PH6 上, 用于实现对液晶触摸屏的控制(支持电阻屏和电容屏)。LCD_BL 连接在 MCU 的 PB5 上,用 于控制 LCD 的背光。液晶复位信号 RESET 则是直接连接在开发板的复位按钮上,和 MCU 共 用一个复位电路。特别注意:该接口核心板上的 RGBLCD(RGB 屏)接口,共用触摸屏和背 光信号线,所以他们不能同时都使用触摸屏!!! 2.1.7 复位电路 水星 STM32F767 开发板的复位电路如图 2.1.7.1 所示: 图 2.1.7.1 复位电路 因为 STM32 是低电平复位的,所以我们设计的电路也是低电平复位的,这里的 R1 和 C2 构成了上电复位电路。同时,开发板把 LCD 接口的复位引脚也接在 RESET 上,这样这个复位 按钮不仅可以用来复位 MCU,还可以复位 LCD。 2.1.8 启动模式设置接口 水星 STM32F767 开发板的启动模式设置端口电路如图 2.1.8.1 所示: 图 2.1.8.1 启动模式设置接口 在 STM32F7 系列的芯片上,图中的 BOOT0 和 BOOT1 只有 BOOT0 有效,对应 STM32F7 芯片的 B00T 引脚。STM32F7 的启动模式(也称自举模式),如表 2.1.8.1 所示: 表 2.1.8.1 启动模式选择表 按照表 2. 1.8.1,一般情况下我们设置 B00T0 为低电平即可,默认情况下系统通过 ITCM 总 线接口访问 FLASH(地址从 0X0020 0000 开始)。 这里需要注意两点: 1,STM32F7 虽然也支持串口下载(B00T0=1,从系统存储器启动),但目前没有比较好的 支持 STM32F7 的串口下载软件,所以,大家必须自备 ST LINK V2 仿真器一个,用来下载和调 试代码。 2,STM32F7 实际上只有一个 FLASH 存储器,但是有两条访问路径:ITCM 和 AXIM,他 们访问 FLASH 的地址映射是不一样的,ITCM 是从 0X0020 0000 开始的 1MB 访问空间,AXIM 则是从 0X0800 0000 开始的 1MB 访问空间。我们通过 MDK 将代码下载到 0X0020 0000 还是 0X0800 0000 都是可以正常运行的,因为实际上只有一个 FLASH,只是地址映射不一样而已。 我们在 MDK 里面,一般设置 FLASH 地址为 0X0800 0000。 2.1.9 VBAT 供电接口 水星 STM32F767 开发板的 VBAT 供电电路如图 2.1.9.1 所示: 图 2.1.9.1 启动模式设置接口 上图的 VBAT 接 MCU 的 VBAT 脚,从而给核心板的后备区域供电,采用 CR1220 纽扣电 池和 VCC3.3 混合供电的方式,在有外部电源(VCC3.3)的时候,CR1220 不给 VBAT 供电, 而在外部电源断开的时候,则由 CR1220 给其供电。这样,VBAT 总是有电的,以保证 RTC 的 走时以及后备寄存器的内容不丢失。 2.1.10 RS485 接口 水星 STM32F767 开发板板载的 RS485 接口电路如图 2.1.10.1 所示: 图 2.1.10.1 RS485 接口 RS485 电平也不能直接连接到 STM32,同样需要电平转换芯片。这里我们使用 SP3485 来 做 485 电平转换,其中 R19 为终端匹配电阻,而 R16 和 R14,则是两个偏置电阻,以保证静默 状态时,485 总线维持逻辑 1。 RS485_RX/RS485_TX 连接在 P6 上面,通过 P6 跳线来选择是否连接在 MCU 上面, RS485_RE 则是连接在 PC4 引脚上的,该信号用来控制 SP3485 的工作模式(高电平为发送模 式,低电平为接收模式)。 2.1.11 CAN/USB 接口 ALIENTEK 水星 STM32F767 开发板板载的 CAN 接口电路以及 STM32 USB 接口电路如图 2.1.11.1 所示: 图 2.1.11.1 CAN/USB 接口 CAN 总线电平也不能直接连接到 STM32,同样需要电平转换芯片。这里我们使用 TJA1050 来做 CAN 电平转换,其中 R24 为终端匹配电阻。 USB_D+/USB_D-连接在 MCU 的 USB 口(PA12/PA11)上,同时,因为 STM32 的 USB 和 CAN 共用这组信号,所以我们通过 P7 来选择使用 USB 还是 CAN。 图中共有 2 个 USB 口:USB_SLAVE 和 USB_HOST,前者是用来做 USB 从机通信的,后 者则是用来做 USB 主机通信的。 USB_SLAVE 可以用来连接电脑,实现 USB 读卡器、虚拟串口和声卡等 USB 从机实验。 另外,该接口还具有供电功能,VUSB 为开发板的 USB 供电电压,通过这个 USB 口,就可以 给整个开发板供电了。 USB HOST 可以用来接如:U 盘、USB 鼠标、USB 键盘和 USB 手柄等设备,实现 USB 主 机功能。该接口可以对从设备供电,供电受 USB_PWR 控制。USB_PWR 信号连接在 PG13 引 脚上。 2.1.12 光环境传感器 水星 STM32F767 开发板板载了一个光环境传感器,可以用来感应周围光线强度、接近距 离和红外线强度等,该部分电路如图 2.1.12.1 所示: 图 2.1.12.1 光环境传感器电路 图中的 U7 就是光环境传感器:AP3216C,它集成了光照强度、近距离、红外三个传感器 功能于一身,被广泛应用于各种智能手机。该芯片采用 IIC 接口,IIC_SCL 和 IIC_SDA 分别连 接 PH4 和 PH5 上,AP_INT 是其中断输出脚,连接在 PA1 引脚上。 2.1.13 温湿度传感器接口 水星 STM32F767 开发板板载了一个温湿度传感器接口,电路如图 2.1.13.1 所示: 图 2.1.13.1 温湿度传感器接口 该接口支持 DS18B20/DS1820/DHT11 等单总线数字温湿度传感器。1WIRE_DQ 是传感器 的数据线,该信号连接在 MCU 的 PB12 上。 2.1.14 红外接收头 水星 STM32F767 开发板板载了一个红外接收头,电路如图 2.1.14.1 所示: 图 2.1.14.1 红外接收头 HS0038 是一个通用的红外接收头,几乎可以接收市面上所有红外遥控器的信号,有了它, 就可以用红外遥控器来控制开发板了。REMOTE_IN 为红外接收头的输出信号,该信号连接在 MCU 的 PA8 上。特别注意:PA8 同时连接了 DCMI_XCLK,如果要用到 DCMI_XCLK 的时候, HS0038 就不能同时使用了,但可以分时复用。 2.1.15 WIRELESS 模块接口 水星 STM32F767 开发板板载了一个 WIRELESS 模块接口,电路如图 2.1.15.1 所示: 图 2.1.15.1 无线模块接口 该接口用来连接 NRF24L01、SPI WIFI 模块等无线模块,从而实现开发板与其他设备的无 线数据传输(注意:NRF24L01 不能和蓝牙/WIFI 连接)。 NRF_CE/NRF_CS/NRF_IRQ 连接在 MCU 的 PG12/PG10/PI11 上,而另外 3 个 SPI 信号则 接 MCU 的 SPI2(PB13/PB14/PB15)。这里需要注意的是 PI11 还接了 ATK-MODULE 接口的 KEY 信号(GBC_KEY),所以在使用 WIRELESS 中断引脚的时候,不能和 ATK-MODULE 接 口同时使用,不过,如果没用到 WIRELESS 的中断引脚,那么 ATK-MODUL 接口和 WIRELESS 模块就可以同时使用了。 2.1.16 LED 水星 STM32F767 开发板板载总共有 3 个 LED,其原理图如图 2.1.16.1 所示: 图 2.1.16.1 LED 其中 PWR 是系统电源指示灯,为蓝色。LED0(DS0)和 LED1(DS1)分别接在 PB1 和 PB0。 为了方便大家判断,我们选择了 DS0 为红色的 LED,DS1 为绿色的 LED。 2.1.17 按键 水星 STM32F767 开发板板载总共有 3 个输入按键,其原理图如图 2.1.17.1 所示: 图 2.1.17.1 输入按键 KEY0 和 KEY1 用作普通按键输入,分别连接在 PH3 和 PH2 上,这里并没有使用外部上拉 电阻,但是 STM32 的 IO 作为输入的时候,可以设置上下拉电阻,所以我们使用 STM32 的内 部上拉电阻来为按键提供上拉。 KEY_UP 按键连接到 PA0(STM32 的 WKUP 引脚),它除了可以用作普通输入按键外,还可 以用作 STM32 的唤醒输入。注意:这个按键是高电平触发的。 2.1.18 TPAD 电容触摸按键 水星 STM32F767 开发板板载了一个电容触摸按键,其原理图如图 2.1.18.1 所示: 图 2.1.18.1 电容触摸按键 图中 100K 电阻是电容充电电阻,TPAD 并没有直接连接在 MCU 上,而是连接在多功能端 口(P8)上面,通过跳线帽来选择是否连接到 STM32。多功能端口,我们将在 2.1.22 节介绍。 电容触摸按键的原理我们将在后续的实战篇里面介绍。 2.1.19 OLED/摄像头模块接口 水星 STM32F767 开发板板载了一个 OLED/摄像头模块接口,连接在 MCU 的硬件摄像头 接口(DCMI)上面,其原理图如图 2.1.19.1 所示: 图 2.1.19.1 OLED/摄像头模块接口 图中 P5 是接口可以用来连接 ALIENTEK OLED 模块或者 ALIENTEK 摄像头模块。如果 是 OLED 模块,则 DCMI_PWDN 和 DCMI_XCLK 不需要接(在板上靠左插即可),如果是摄 像头模块,则需要用到全部引脚。 其中,DCMI_SCL/DCMI_SDA/DCMI_RESET/DCMI_XCLK/DCMI_PWDN 这 5 个信号是不 属于 STM32F767 硬件摄像头接口的信号,通过普通 IO 控制即可,前四根线分别接在 MCU 的: PB4/PB3/PA15/PA8 上面,DCMI_PWDN 则连接在 PA7 引脚上。 特别注意:DCMI_SCL、DCMI_SDA 和 DCMI_RESET 和 JTAG 接口共用 IO,所以,使用 摄像头的时候,不能用 JTAG 调试/下载代码,但是 SWD 模式调试不受影响,这也是为什么我 们极力推荐使用 SWD 模式。另外,DCMI_XCLK 和 REMOTE_IN 共用 IO,他们不可以同时使 用,不过可以分时复用。 其他信号全接MCU的硬件摄像头接口:DCMI_VSYNC/DCMI_HREF/DCMI_D0/DCMI_D1/ DCMI_D2/ DCMI_D3/ DCMI_D4/ DCMI_D5/ DCMI_D6/ DCMI_D7/ DCMI_PCLK 分别连接在: PB7/PH8/PC6/PC7/PC8/PC9/PC11/PD3/PB8/PB9/PA6 上。特别注意:这些信号和 SD 卡有 IO 共 用,所以在使用 OLED 模块或摄像头模块的时候,不能和 SD 卡同时使用,只能分时复用。 2.1.20 有源蜂鸣器 水星 STM32F767 开发板板载了一个有源蜂鸣器,其原理图如图 2.1.20.1 所示: 图 2.1.20.1 有源蜂鸣器 有源蜂鸣器是指自带了震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。而如 果是无源蜂鸣器,则需要外加一定频率(2~5Khz)的驱动信号,才会发声。这里我们选择使用 有源蜂鸣器,方便大家使用。BEEP 信号直接连接在 PC1 上。 2.1.21 SD 卡接口 水星 STM32F767 开发板板载了一个 SD 卡(大卡)接口,其原理图如图 2.1.21.1 所示: 图 2.1.21.1 SD 卡/以太网接口 图中 SD_CARD 为 SD 卡接口,该接口在开发板的底面,这也是水星 STM32F767 开发板底 面唯一的元器件。 SD 卡采用 4 位 SDIO 方式驱动,理论上最大速度可以达到 24MB/S,非常适合需要高速存 储的情况。图中:SDIO_D0/SDIO_D1/SDIO_D2/SDIO_D3/SDIO_SCK/SDIO_CMD 分别连接在 MCU 的 PC8/PC9/PC10/PC11/PC12/PD2 上面。特别注意:SDIO 和 OLED/摄像头的部分 IO 有 共用,所以在使用 OLED 模块或摄像头模块的时候,只能和 SDIO 分时复用,不能同时使用。 2.1.22 ATK 模块接口 水星 STM32F767 开发板板载了 ATK 模块接口,其原理图如图 2.1.22.1 所示: 图 2.1.22.1 ATK 模块接口 如图所示,U3 是一个 1*6 的排座,可以用来连接 ALIENTEK 推出的一些模块,比如:蓝 牙串口模块、GPS 模块、MPU6050 模块、WIFI 模块和 RGB 彩灯模块等。有了这个接口,我们 连接模块就非常简单,插上即可工作。 图中: GBC_KEY 和 GBC_LED 则分别连接在 MCU 的 PI11 和 PA4 上面。特别注意: GBC_LED 和 STM_DAC 共用 PA4,GBC_KEY 和 NRF_IRQ 共用 PI11,在使用的时候,注意分 时复用。 2.1.23 AD/DA 组合接口 水星 STM32F767 板载了一个 AD/DA 组合接口,即 P8 接口,其原理图如图 2.1.23.1 所示: 图 2.1.23.1 多功能端口 相对于阿波罗上的多功能接口,水星板的 AD/DA 组合接口功能相对简单一些了。其中 TPAD 为电容触摸按键信号,连接在电容触摸按键上。STM_ADC 和 STM_DAC 则分别连接在 PA5 和 PA4 上,用于 ADC 采集或 DAC 输出。当需要电容触摸按键的时候,我们通过跳线帽短 接 TPAD 和 STM_ADC(默认是连接的),就可以实现电容触摸按键(利用定时器的输入捕获)。 另外,STM_ADC 还可以用与 AD 采集。STM_DAC 信号则既可以用作 DAC 输出,也可以用作 ADC 输入,因为 STM32 的该管脚同时具有这两个复用功能。 特别注意:STM_DAC 与 ATK-MODULE 接口的 GBC_LED 共用 PA4,所以他们不可以同 时使用,但是可以分时复用。 2.1.24 电源 水星 STM32F767 开发板板载的电源供电部分,其原理图如图 2.1.30.1 所示: 图 2.1. 24.1 电源 图中,总共有 3 个稳压芯片:U8/U9,DC_IN 用于外部直流电源输入,经过 U8 DC-DC 芯 片转换为 5V 电源输出,其中 D4 是防反接二极管,避免外部直流电源极性搞错的时候,烧坏开 发板。K1 为开发板的总电源开关,F1 为 1000ma 自恢复保险丝,用于保护 USB。U9 为 3.3V 稳压芯片,给开发板提供 3.3V 电源。 这里还有 USB 供电部分没有列出来,其中 VUSB 就是来自 USB 供电部分,我们将在相应 章节进行介绍。 2.1.25 电源输入输出接口 水星 STM32F767 开发板板载了两组简单电源输入输出接口,其原理图如图 2.1.25.1 所示: 图 2.1.25.1 电源 图中,VOUT1 和 VOUT2 分别是 3.3V 和 5V 的电源输入输出接口,有了这 2 组接口,我们 可以通过开发板给外部提供 3.3V 和 5V 电源了,虽然功率不大(最大 1000ma),但是一般情况 都够用了,大家在调试自己的小电路板的时候,有这两组电源还是比较方便的。同时这两组端 口,也可以用来由外部给开发板供电。 图中 D6 为 TVS 管,可以有效避免 VOUT 外接电源/负载不稳的时候(尤其是开发板外接 电机/继电器/电磁阀等感性负载的时候),对开发板造成的损坏。同时还能一定程度防止外接电 源接反,对开发板造成的损坏。 2.1.26 USB 串口 水星 STM32F767 开发板板载了一个 USB 串口,其原理图如图 2.1.32.1 所示: 图 2.1.26.1 USB 串口 USB 转串口,我们选择的是 CH340G,是国内芯片公司南京沁恒的产品,稳定性经测试还 不错,所以还是多支持下国产。 图中 Q3 和 Q4 的组合构成了我们开发板的一键下载电路,只需要在 flymcu 软件设置:DTR 的低电平复位,RTS 高电平进 BootLoader。就可以一键下载代码了,而不需要手动设置 B0 和 按复位了。其中,RESET 是开发板的复位信号,BOOT0 则是启动模式的 B0 信号。 一键下载电路的具体实现过程:首先,mcuisp 控制 DTR 输出低电平,则 DTR_N 输出高, 然后 RTS 置高,则 RTS_N 输出低,这样 Q5 导通了,BOOT0 被拉高,即实现设置 BOOT0 为 1, 同时 Q4 也会导通,STM32F767 的复位脚被拉低,实现复位。然后,延时 100ms 后,mcuisp 控制 DTR 为高电平,则 DTR_N 输出低电平,RTS 维持高电平,则 RTS_N 继续为低电平,此 时 STM32F767 的复位引脚,由于 Q4 不再导通,变为高电平,STM32F767 结束复位,但是 BOOT0 还是维持为 1,从而进入 ISP 模式,接着 mcuisp 就可以开始连接 STM32F767,下载代码了,从 而实现一键下载。 USB_232 是一个 MiniUSB 座,提供 CH340G 和电脑通信的接口,同时可以给开发板供电, VUSB 就是来自电脑 USB 的电源,USB_232 是本开发板的主要供电口。 2.2 STM32F767 核心板原理图详解 2.2.1 MCU 水星 STM32 开发板配套的 STM32F767 核心板,采用 STM32F767IGT6 作为 MCU,该芯片 采用六级流水线,自带指令和数据 Cache、集成 JPEG 编解码器、集成双精度硬件浮点计算单 元(DPFPU)和 DSP 指令,并具有 512KB SRAM、1024KB FLASH、13 个 16 位定时器、2 个 32 位定时器、2 个 DMA 控制器(共 16 个通道)、6 个 SPI、1 个 QSPI 接口、3 个全双工 I2S、 2 个 SAI、4 个 IIC、8 个串口、2 个 USB(支持 HOST /SLAVE)、3 个 CAN、3 个 12 位 ADC、 2 个 12 位 DAC、1 个 SPDIF RX 接口、1 个 RTC(带日历功能)、2 个 SDMMC 接口、1 个 FMC 接口、1 个 TFTLCD 控制器(LTDC)、1 个 10/100M 以太网 MAC 控制器、1 个摄像头接口、 1 个硬件随机数生成器、以及 140 个通用 IO 口等,芯片主频高达 216Mhz,轻松应对各种应用。 MCU 部分的原理图如图 2.2.1.1 和图 2.2.1.2(因为原理图比较大,缩小下来可能有点看不 清,请大家打开开发板光盘的原理图进行查看)所示: 图 2.2.1.1 MCU 部分原理图-A 图 2.2.1.2 MCU 部分原理图-B 上图中 U1 为我们的主芯片:STM32F767IGT6。 这里主要讲解以下 4 个地方(有部分原理图未贴出,请参考光盘完整原理图查看): 1,后备区域供电脚 VBAT 脚的供电采用 CR1220 纽扣电池(在底板上)和 VCC3.3 混合供 电的方式,在有外部电源(VCC3.3)的时候,CR1220 不给 VBAT 供电,而在外部电源断开的 时候,则由 CR1220 给其供电。这样,VBAT 总是有电的,以保证 RTC 的走时以及后备寄存器 的内容不丢失。 2,原理图中的 R8 和 R9 用隔离 MCU 部分和外部的电源,这样的设计主要是考虑了后期 维护,如果 3.3V 电源短路,可以断开这两个电阻,来确定是 MCU 部分短路,还是外部短路, 有助于生产和维修。当然大家在自己的设计上,这两个电阻是完全可以去掉的。 3,图中 VREF+是 MCU AD/DA 的参考电压,引出到底板。R2 默认不焊接,这样 VREF+ 由底板提供(底板的 P5 排针)。另外,VREF+还具有控制核心板 LED 总开关的功能,我们将 在后续介绍。 4,PDR_ON 引脚,用于复位控制等,一般接 VCC 即可。在我们核心板上,默认通过 R5 电阻连接到 VCC3.3V。 2.2.2 底板接口 STM32F767 核心板采用 2 个 2*30 的 3710M(公座)板对板连接器来同底板连接(在核心板 底面),接插非常方便,核心板上面的底板接口原理图如图 2.2.2.1 所示: 图 2.2.2.1 底板接口 图中,J1 和 J2 是 2 个 2*30 的板对板公座(3710M),和底板的接插非常方便,方便大家嵌 入自己的项目中去。该接口总共引出 110 个 IO 口,另外,还有 3 根电源线、3 根地线、VBAT、 RESET、BOOT0 和 VREF+。 2.2.3 SWD 调试接口 STM32F767 核心板板载了一个 SWD 调试接口,只需要最少 3 根线(GND、SWDCLK 和 SWDIO),即可实现代码调试和下载,SWD 接口原理图如图 2.2.3.1 所示: 图 2.2.3.1 SWD 调试接口 图中 P1 就是一个 6P 的排针(默认没有焊接,需自行焊接),引出了 SWD 的信号线 (JTMS=SWDIO,JTCK=SWDCLK)、RESET、电源和地。将这几个引脚正确连接 ST LINK、 JLINK(V9 或者以上版本)或 ULINK 等仿真器对应的引脚,就可以对核心板进行仿真调试了。 2.2.4 SDRAM STM32F767 核心板板载了 SDRAM,此部分电路如图 2.2.4.1 所示: 2.2.4.1 SDRAM 图中,U3 就是 SDRAM 芯片,型号为:W9825G6KH,容量为 32M 字节。该芯片挂在 STM32F767 的 FMC 接口上,有了这颗芯片,大大扩展了 STM32 的内存(本身只有 256KB), 在各种大内存需求场合,ALIENTEK 这款 STM32F767 核心板,都可以从容面对。 2.2.5 NAND FLASH STM32F767 核心板板载了 NAND FLASH,此部分电路如图 2.2.5.1 所示: 2.2.5.1 NAND FLASH 图中,U4 就是 NAND FLASH 芯片,型号为:MT29F4G08,容量为 512M 字节。该芯片同 样是挂在 STM32F767 的 FMC 接口上,有了这颗芯片,大大扩展了 STM32 的存储空间,可以 实现海量数据存储。另外,如果大家觉得 512M 不够用,还可以更换其他更大容量的 NAND FLASH 芯片,硬件上,接口是完全兼容的。 2.2.6 SPI FLASH STM32F767 核心板板载了 SPI FLASH,此部分电路如图 2.2.6.1 所示: 2.2.6.1 SPI FLASH 图中,U6 就是 SPI FLASH 芯片,支持 QSPI 接口,型号为:W25Q256,容量为 32M 字节, 可以用来存放字库、启动文件等重要的数据。这里我们采用 STM32F7 的 QSPI 接口连接,使得 访问速度大大提高。 2.2.7 EEPROM STM32F767 核心板板载了 EEPROM,此部分电路如图 2.2.7.1 所示: 图 2.2.7.1 EEPROM 图中,U5 就是 EEPROM 芯片,型号为:24C02,该芯片的容量为 2Kb,也就是 256 个字 节,对于我们普通应用来说是足够了的。当然,你也可以选择换大的芯片,因为我们的电路在 原理上是兼容 24C02~24C512 全系列 EEPROM 芯片的。 这里我们把 A0~A2 均接地,对 24C02 来说也就是把地址位设置成了 0 了,写程序的时候 要注意这点。IIC_SCL 接在 MCU 的 PH4 上,IIC_SDA 接在 MCU 的 PH5 上,这里我们虽然接 到了 STM32 的硬件 IIC 上,但是我们并不提倡使用硬件 IIC,因为 STM32 的 IIC 非常不好用! 请慎用。IIC_SCL/IIC_SDA 总线上总共挂了 5 个器件:24C02、AP3216C、PCF8574、MPU9250 和 WM8978(后面四个在之前已经介绍过)。 2.2.8 RGB LCD 接口 STM32F767 核心板板载了 RGB LCD 接口,此部分电路如图 2.2.8.1 所示: 图 2.2.8.1 RGB LCD 接口 图中,J3(RGBLCD)就是 RGB LCD 接口,采用 RGB565 数据格式,并支持触摸屏(支 持电阻屏和电容屏)。该接口仅支持 RGB 接口的液晶(不支持 MCU 接口的液晶),目前 ALIENTEK 的 RGB 接口 LCD 模块有:4.3 寸(ID:4342,480*272)和 7 寸(ID:7084,800*480 和 ID:7016,1024*600)等尺寸可选。 图中的 T_MISO/T_MOSI/T_PEN/T_CS/T_SCK 连接在 MCU 的 PG3/PI3/PH7/PI8/PH6 上, 用于实现对液晶触摸屏的控制(支持电阻屏和电容屏)。LCD_BL 连接在 MCU 的 PB5 上,用 于控制 LCD 的背光。液晶复位信号 RESET 则是直接连接在开发板的复位按钮上,和 MCU 共 用一个复位电路。特别注意:该接口底板上的 LCD(MCU 屏)模块接口,共用触摸屏和背光 信号线,所以他们不能同时都使用触摸屏!!! 2.2.9 串口 STM32F767 核心板板载了一个 TTL 串口,引出了 MCU 的串口 1(USART1),此部分电路 如图 2.2.9.1 所示: 图 2.2.9.1 串口 图中,P2 就是核心板引出的串口 1(USART1)接口,通过 3 个排针引出(默认没有焊接, 需自行焊接),USART1_TX 和 USART1_RX 分别连接在 MCU 的 PA9 和 PA10 上面。注意:它 和底板上的 P4 是连接在一起的。 2.2.10 Micro USB 接口 STM32F767 核心板板载了一个 Micro USB 接口,此部分电路如图 2.2.10.1 所示: 图 2.2.10.1 Micro USB 接口 图中,USB-AB 就是一个 Micro USB 座,可以用来连接电脑,做从机(SLAVE),也可以 通过外接 USB OTG 线连接 U 盘/USB 鼠标/USB 键盘和 USB 手柄等,做主机(HOST)。USB_D- 和 USB_D+分别连接在 MCU 的 PA11 和 PA12 上面,它们和底板上的 P10 是连接在一起的。 同时,该接口也可以用于给核心板提供电源。 2.2.11 按键 STM32F767 核心板板载了一个功能按键:WK_UP,此部分电路如图 2.2.11.1 所示: 图 2.2.11.1 功能按键 图中,KEY_UP 按键,连接在 MCU 的 PA0,高电平有效,可以用来实现按键输入, 也可以用作 MCU 的唤醒(WKUP)。注意:它和底板上的 KEY_UP 是连接在一起的。 2.2.12 LED STM32F767 核心板板载了 2 个 LED,此部分电路如图 2.2.12.1 所示: 图 2.2.12.1 2 个 LED 图中,PWR 是电源指示灯(蓝色),用于指示核心板的供电状态;DS0 是功能指示灯(红 色),LED0 连接在 MCU 的 PB1,可以用于指示程序运行状态。这两个 LED 的工作状态,都受 VREF+的控制,当 VREF+悬空的时候(核心板单独工作或拔了底板 P5 的跳线帽),PWR 和 DS0 都正常工作,当 VREF+接 3.3V 的时候(底板的 P5 跳线帽短接),PWR 和 DS0 都关闭。 如果不想 PWR 和 DS0 受 VREF+控制(一直工作),去掉 R13 即可。 2.2.13 电源 STM32F767 核心板板载的电源供电部分,原理图如图:2.2.13.1 所示: 图 2.2.13.1 电源 图中,U2 是稳压芯片,将 5V 转换为 3.3V,整个核心板的 3.3V 电源,都来自此芯片。F1 是自恢复保险丝,可以起到过流保护的作用。右侧的 5V、3.3V 和 GND 等三个 TEST_POINT 是在核心板流出的 3 个焊盘,可以给开发板供电,或者从开发板取电。 2.3 开发板使用注意事项 为了让大家更好的使用 ALIENTEK 水星 STM32F767 开发板,我们在这里总结该开发板使 用的时候尤其要注意的一些问题,希望大家在使用的时候多多注意,以减少不必要的问题。 1, 如果 USB_232 接口连接了电脑,在第一次上电的时候由于 CH340G 在和电脑建立连接 的过程中,导致 DTR/RTS 信号不稳定,会引起 STM32 复位 3~5 次左右,这个现象是 正常的,后续按复位键就不会出现这种问题了。 2, 核心板上的 PWR 和 DS0 两个 LED 是受 VREF+控制的,所以,当底板上的 P5 跳线帽 连接时(默认就是连接的,短接 VREF+和 3.3V),核心板的 PWR 和 DS0 是一直关闭 的(不会亮)!如果想要核心板的 PWR 和 DS0 受控,拔了 P4 的跳线帽即可! 3, 1 个 USB 供电最多 500mA,且由于导线电阻存在,供到开发板的电压,一般都不会有 5V,如果使用了很多大负载外设,比如 4.3 寸屏模块等,那么可能引起 USB 供电不够, 所以如果是使用 4.3 屏的朋友,或者同时用到多个模块的时候,建议大家使用一个独立 电源供电。 如果没有独立电源,建议可以同时插 2 个 USB 口,并插上 JTAG,这样供 电可以更足一些。 4, JTAG 接口有几个信号(JTDI/JTDO/JTRST)被 OLED/CAMERA 接口占用了,所以在 调试这个接口的时候,请大家选择 SWD 模式,其实最好就是一直用 SWD 模式。 5, 当你想使用某个 IO 口用作其他用处的时候,请先看看开发板的原理图,该 IO 口是否 有连接在开发板的某个外设上,如果有,该外设的这个信号是否会对你的使用造成干 扰,先确定无干扰,再使用这个 IO。比如 PA8 就不太适合做输入 IO,因为 REMOTE_IN 连接在这个 IO 上面,可能会对输入检测造成影响。 6, 开发板上的跳线帽比较多,大家在使用某个功能的时候,要先查查这个是否需要设置 跳线帽,以免浪费时间。 7, 当液晶显示白屏的时候,请先检查液晶模块是否插好(拔下来重新插试试),如果还不 行,可以通过串口看看 LCD ID 是否正常,再做进一步的分析。 8, 开发板的 USB SLAVE 和 USB HOST 共用同一个 USB 口,所以,他们不可以同时使用。 使用的时候多加注意。 至此,本手册的实验平台(ALIENTEK 水星 STM32F767 开发板)的硬件部分就介绍 完了,了解了整个硬件对我们后面的学习会有很大帮助,有助于理解后面的代码,在编写 软件的时候,可以事半功倍,希望大家细读!另外 ALIENTEK 开发板的其他资料及教程更 新,都可以在技术论坛 www.openedv.com 下载到,大家可以经常去这个论坛获取更新的信 息。 2.3 STM32F767 学习方法 STM32F7 系列是目前最强大的 ARM Cortex M7 处理器,由于其强大的功能,可替代 DSP 等特性,具有非常广泛的应用前景。初学者可能会认为 STM32F767 很难学,以前可能只学过 51,或者甚至连 51 都没学过的,一看到 STM32F767 那么多寄存器,就懵了。其实,万事开头 难,只要掌握了方法,学好 STM32F767,还是非常简单的,这里我们总结学习 STM32F767 的 几个要点: 1,一款实用的开发板。 这个是实验的基础,有个开发板在手,什么东西都可以直观的看到。但开发板不宜多,多 了的话连自己都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个 学半天,结果学个四不像。倒不如从一而终,学完一个在学另外一个。 2,三本参考资料,即《STM32F7 中文参考手册》、《STM32F7xx 参考手册》和《STM32F7 编程手册》。 《STM32F7 中文参考手册》和《STM32F7xx 参考手册》都是 STM32F7 系列的参考手册, 前者是中文翻译版本,仅针对 STM32F74x/75x 系列,后者则是英文版本,针对 STM32F76x/77x 系列,这两本手册详细介绍了 STM32F7 的各种寄存器定义以及外设的使用说明等,是学习 STM32F767 的必备资料。而《STM327 编程手册》则是对《STM32F7 中文参考手册》的补充, 很多关于 Cortex M7 内核的介绍(寄存器等),都可以在这个文档找到答案,该文档同样是 ST 的官方资料,专门针对 ST 的 Cortex M7 产品。结合这三本参考资料,就可以比较好的学习 STM32F7 了。 3,掌握方法,勤学善悟。 STM32F767 不是妖魔鬼怪,不要畏难,STM32F767 的学习和普通单片机一样,基本方法 就是: a) 掌握时钟树图(见《STM32F7 中文参考手册》图 12)。 任何单片机,必定是靠时钟驱动的,时钟就是单片机的动力,STM32F767 也不例外,通过 时钟树,我们可以知道,各种外设的时钟是怎么来的?有什么限制?从而理清思路,方便理解。 b) 多思考,多动手。 所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多练习了,光看/ 说,是没什么太多用的。学习 STM32F767,不是应试教育,不需要考试,不需要你倒背如流。 你只需要知道这些寄存器,在哪个地方,用到的时候,可以迅速查找到,就可以了。完全是可 以翻书,可以查资料的,可以抄袭的,不需要死记硬背。掌握学习的方法,远比掌握学习的内 容重要的多。 熟悉了之后,就应该进一步思考,也就是所谓的巧了。我们提供了几十个例程,供大家学 习,跟着例程走,无非就是熟悉 STM32F767 的过程,只有进一步思考,才能更好的掌握 STM32F767,也即所谓的举一反三。例程是死的,人是活的,所以,可以在例程的基础上,自 由发挥,实现更多的其他功能,并总结规律,为以后的学习/使用打下坚实的基础,如此,方能 信手拈来。 所以,学习一定要自己动手,光看视频,光看文档,是不行的。举个简单的例子,你看视 频,教你如何煮饭,几分钟估计你就觉得学会了。实际上你可以自己测试下,是否真能煮好? 机会总是留给有准备的人,只有平时多做准备,才可能抓住机会。 只要以上三点做好了,学习 STM32F767 基本上就不会有什么太大问题了。如果遇到问题, 可以在我们的技术论坛:开源电子网:www.openedv.com 提问,论坛 STM32 板块已经有 6W 多个主题,很多疑问已经有网友提过了,所以可以在论坛先搜索一下,很多时候,就可以直接 找到答案了。论坛是一个分享交流的好地方,是一个可以让大家互相学习,互相提高的平台, 所以有时间,可以多上去看看。 另外,很多 ST 官方发布的所有资料(芯片文档、用户手册、应用笔记、固件库、勘误手 册等),大家都可以在 www.stmcu.org 这个地方下载到。也可以经常关注下,ST 会将最新的资 料都放到这个网址。 |
|
相关推荐
|
|
很棒棒哦,值得学习
|
|
|
|
|
|
1252 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1184 浏览 3 评论
2263 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1351 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1774 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 13:00 , Processed in 0.625955 second(s), Total 67, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号