1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 正点原子运营官 于 2020-4-25 11:30 编辑
2)摘自《正点原子STM32 F1 开发指南(NANO 板-HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子 第二章 实验平台硬件资源详解 本章,我们将节将向大家详细介绍正点原子 NANO STM32F103 各部分的硬件原理图,让 大家对该开发板的各部分硬件原理有个深入理解,并向大家介绍开发板的使用注意事项,为后 面的学习做好准备。 本章将分为如下两节: 2.1,开发板原理图详解; 2.2,开发板使用注意事项; 2.3,STM32F103 学习方法; 2.1 开发板原理图详解 2.1.1 MCU 正点原子 NANO STM32 开发板选择的是 STM32F103RBT6 作为 MCU,该芯片是STM32F103 里中容量的,它拥有的资源包括:128KB FLASH、20KB SRAM、3 个通用定时器、1 个高级定时器、1 个 DMA 控制器(共 7 个通道)、2 个 SPI、2 个 IIC、3 个串口、1 个 RTC、2 个看门狗、1 个 Systick 定时器、1 个 USB、1 个 CAN、2 个 12 位 ADC、以及 51 个通用 IO口。该芯片是 STM32F1 家族常用型号里面,中等配置的芯片,对于 STM32 初学者学习最为适合,所以我们选择了它作为我们 NANO 板的主芯片。MCU 部分的原理图如图 2.1.1.1(因为原理图比较大,缩小下来可能有点看不清,请大家打开开发板光盘的原理图进行查看)所示: 图 2.1.1.1 MCU 部分原理图 上图中 U1 为我们的主芯片:STM32F103RBT6。 注意:后备区域 VBAT 脚的供电采用 CR1220 纽扣电池和 VCC3.3 混合供电的方式,在有 外部电源(VCC3.3)的时候,CR1220 不给 VBAT 供电,而在外部电源断开的时候,则由 CR1220 给其供电。这样,VBAT 总是有电的,以保证 RTC 的走时以及后备寄存器的内容不丢失。 2.1.2 引出 IO 口 正点原子 NANO STM32F103 引出了 STM32F103RBT6 的部分 IO 口,如图 2.1.2.1 所示: 图 2.1.2.1 引出 IO 口 图中为 MCU 主 IO 引出口,排针共引出了 18 个 IO 口,STM32F103RBT6 总共有 51 个 IO, 除去 RTC 晶振占用的 4 个,还剩 47 个,有部分 IO 口被板载的功能芯片占用了,没做引出。通 过 P1 排针引出了 18 个 IO。 2.1.3 ST_LINK V2.1 正点原子 NANO STM32F103 板载 ST LINK V2.1 仿真器,仿真器电路分为几部分组成,下 面将简单介绍下: 1)ST_LINK MCU ST_LINK V2.1 的 MCU 使用的是 STM32F103C8T6 作为主芯片,原理图如图 2.1.3.1 所示: 图 2.1.3.1 ST_ LINK V2.1 部分原理图 NANO 板在出厂前已经刷好了 ST_LINK V2.1 版本的固件,固件集成了下载仿真和虚拟串 口两大的功能,用户无需另外再购买仿真器,另外 NANO 板节省 USB 转 TTL 电路,通过 P5 排针将 MCU 的串口 USART1_RX 和 USART1_TX 引脚(STM32F103RBT6),与 ST LINK 的 ST LINK_TX 和 ST LINK_RX 引脚(STM32F103C8T6)相连接,即可以实现 ST LINK USB 串 口和 STM32F103RBT6 的串口通信了。同时,P5 是 PA9 和 PA10 的引出口。 2)ST LINK 状态指示灯 ST_LINK 状态指示灯的电路,如图 2.1.3.2 所示: 图 2.1.3.2 ST LINK 状态指示灯 ST LINK 仿真器状态指示灯为绿色,当处于下载或仿真时,状态显示灯会闪亮。 3)ST LINK SWD 接口 ST_LINK SWD 接口的电路,如图 2.1.3.3 所示: 图 2.1.3.3 ST LINK SWD 接口 ST_LINK SWD 接口的电路,留出了 P4 SWD_5P 的标准下载接口,该接口可用于给外部 MCU 使用,即 NANO 板作为 ST_LINK 下载仿真器。SW1 是选择开关,用于选择 ST_ LINK 给内部 STM32F103RBT6 芯片下载还是外部 MCU 的下载,SW1 选择开关的往左拨(INS)内 部下载,往右拨(EXT)外部下载 PCB 图如图 2.1.3.3.1 所示: 图 2.1.3.3.1 SW1 选择开关 4)ST LINK USB 接口 ST_LINK USB 接口电路,如图 2.1.3.4 所示: 图 2.1.3.4 ST LINK USB 接口电路 ST_ LINK USB 电路为 ST _LINK 仿真器的部分电路,USB 座子为 Micro USB 座,该 USB 座可给 NANO 板供电使用,输入 5V。 2.1.4 复位电路 正点原子 NANO STM32F103 的复位电路如图 2.1.4.1 所示: 图 2.1.4.1 复位电路 因为 STM32 是低电平复位的,所以我们设计的电路也是低电平复位的,这里的 R4 和 C12 构成了上电复位电路。同时,开发板把 74HC595 芯片的复位引脚也接在 RESET 上,这样这个 复位按钮不仅可以用来复位 MCU,还可以复位 74HC595 芯片(数码管显示)。 2.1.5 启动模式设置接口 正点原子 NANO STM32F103 的启动模式设置端口电路如图 2.1.5.1 所示: 图 2.1.5.1 启动模式设置接口 NANO 板我们只留出了 BOOT0 选择,BOOT1 引脚已接了下拉电阻(BOOT1=0),我们 知道 BOOT0 和 BOOT1 用于设置 STM32 的启动方式,其对应启动模式如表 2.1.5.2 所示: 表 2.1.5.2 BOOT0、BOOT1 启动模式表 按照表 2.1.5.2,我们就可选择 MCU 的启动方式,注意:NANO 板不能使用 SRAM 启动模 式。 2.1.6 USB 接口 正点原子 NANO STM32F103 板载了 STM32 USB 接口电路如图 2.1.6.1 所示: 图 2.1.6.1 USB 接口 USB_D+/USB_D-连接在 MCU 的 USB 口(PA12/PA11)上,USB_SLAVE 可以用来连接电 脑,实现 USB 读卡器或 USB 虚拟串口等 USB 从机实验。另外,该接口还具有供电功能,VUSB 为开发板的 USB 供电电压,通过这个 USB 口,就可以给整个开发板供电了。 2.1.7 EEPROM 正点原子 NANO STM32F103 板载的 EEPROM 电路如图 2.1.7.1 所示: 图 2.1.7.1 EEPROM EEPROM 芯片我们使用的是 24C02,该芯片的容量为 2Kb,也就是 256 个字节,对于我们 普通应用来说是足够了的。当然,你也可以选择换大容量的芯片,因为我们的电路在原理上是 兼容 24C02~24C512 全系列 EEPROM 芯片的。 这里我们把 A0~A2 均接地,对 24C02 来说也就是把地址位设置成了 0 了,写程序的时候 要注意这点。IIC_SCL 接在 MCU 的 PB6 上,IIC_SDA 接在 MCU 的 PB7 上,这里我们虽然接 到了 STM32 的硬件 IIC 上,但是我们并不提倡使用硬件 IIC,因为 STM32 的 IIC 是鸡肋!请谨 慎使用。 2.1.8 SPI FLASH 正点原子 NANO STM32F103 板载的 SPI FLASH 电路如图 2.1.8.1 所示: 图 2.1.8.1 SPI FLASH 芯片 SPI FLASH 芯片型号为 W25Q16,该芯片的容量为 16Mb,也就是 2M 字节。图中 F_CS 连 接 在 MCU 的 PB12 上 ,SPI2_SCK/SPI2_MOSI/SPI2_MISO 则 分 别 连 接 在 MCU 的 PB13/PB15/PB14 上。 2.1.9 传感器接口 正点原子 NANO STM32F103 板载的传感器接口电路如图 2.1.9.1 所示: 图 2.1.9.1 温湿度传感器接口 该接口(U2)支持 DS18B20DHT11 等单总线数字温湿度传感器。1WIRE_DQ 是传感器的 数据线,该信号连接在 MCU 的 PB9 上。 2.1.10 红外接收头 正点原子 NANO STM32F103 板载的红外接收头电路如图 2.1.10.1 所示: 图 2.1.10.1 红外接收头 HS0038 是一个通用的红外接收头,几乎可以接收市面上所有红外遥控器的信号,有了它, 就可以用红外遥控器来控制开发板了。REMOTE_IN 为红外接收头的输出信号,该信号连接在 MCU 的 PB0 上。 2.1.11 LED 正点原子 NANO STM32F103 板载总共有 9 个 LED,其原理图如图 2.1.11.1 所示: 图 2.1.11.1 LED 其中 PWR 是系统电源指示灯,为蓝色。LED0(DS0)~LED7(DS7)分别接在 PC0~PC7 上。 DS0~DS7 灯颜色都为红色。 2.1.12 按键 正点原子 NANO STM32F103 板载总共有 4 个输入按键,其原理图如图 2.1.12.1 所示: 图 2.1.12.1 输入按键 KEY0、KEY1 和 KEY2 用作普通按键输入,分别连接在 PC8、PC9 和 PD2 上,这里并没 有使用外部上拉电阻,但是 STM32 的 IO 作为输入的时候,可以设置上下拉电阻,所以我们使 用 STM32 的内部上拉电阻来为按键提供上拉。 KEY_UP 按键连接到 PA0(STM32 的 WKUP 引脚),它除了可以用作普通输入按键外,还可 以用作 STM32 的唤醒输入。注意:这个按键是高电平触发的。 2.1.13 数码管 正点原子 NANO STM32F103 板载了两个 4 位的共阴数码管,以及数码管的驱动电路,其 原理图如图 2.1.13.1 所示: 图 2.1.13.1 数码管与驱动电路 LEDSEG1 和 LEDSEG2 为 4 位共阴极数码管,CH1~CH4 为位选端,A~DOT 为段选段。 74HC138(U7)为 3-8 译码器芯片,这里我们使用它实现数码管的位选功能,其 Y0~Y7 连接到 两个数码管的 CH1~CH4 位选端,通过 U7 的 A0~A2 三个地址线的控制,选择 Y0~Y7 的输出 (低电平有效),A0 连接在 MCU 的 PC10,A1 连接在 PC11,A2 连接在 PC12。74HC595(U6) 为串行转并行数据芯片,这里我们使用它实现数码管的段选功能,其 QA~QH 引脚连接在数码 管的 HC595_QA~HC595_QH 公共端,通过 SFTCLK 和 LCHCLK 的时钟控制,将 SDI 输入的 串行数据转换成并行数据,通过 QA~QH 端输出控制数码管的段选,SFTCLK 连接在 MCU 的 PB5,LCHCLK 连接在 PB4,SDI 连接在 PB3,而 RST 则连接在 MCU 的复位电路 RESET 端, 上电或按下 RESET 按键可对 74HC595 进行复位。 2.1.14 TPAD 电容触摸按键 正点原子 NANO STM32F103 板载了一个电容触摸按键,其原理图如图 2.1.14.1 所示: 图 2.1.14.1 电容触摸按键 图中 100K 电阻是电容充电电阻,TPAD 并没有直接连接在 MCU 上,而是连接在多功能端 口(P3)上面,通过跳线帽来选择是否连接到 STM32。多功能端口,我们将在 2.1.17 节介绍。 电容触摸按键的原理我们将在后续的实战篇里面介绍。 2.1.15 有源蜂鸣器 正点原子 NANO STM32F103 板载了一个有源蜂鸣器,其原理图如图 2.1.15.1 所示: 图 2.1.15.1 有源蜂鸣器 有源蜂鸣器是指自带了震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。而如 果是无源蜂鸣器,则需要外加一定频率(2~5Khz)的驱动信号,才会发声。这里我们选择使用 有源蜂鸣器,方便大家使用。 图中 Q1 是用来扩流,R25 则是一个限流电阻直接连接在 BEEP 信号端,BEEP 信号端连接 在 MCU 的 PB8 上面,PB8 可以做 PWM 输出,所以大家如果想玩高级点(如:控制蜂鸣器“唱 歌”),就可以使用 PWM 来控制蜂鸣器。 2.1.16 电位器 正点原子 NANO STM32F103 板载了一个 100K 电位器,其原理图如图 2.1.16.1 所示: 图 2.1.23.1 电位器 图中 1K 电阻是 ADC 采样的电压的限流电阻,VR1 为电位器,通过调节电位器调节采样的 分压电阻。VOL_SRC 采样端没有直接连接在 MCU 上,而是连接在多功能端口(P3)上面, 通过跳线帽来选择是否连接到 STM32。多功能端口,我们将在 2.1.17 节介绍。 2.1.17 多功能端口 正点原子 NANO STM32F103 板载的多功能端口 P3,其原理图如图 2.1.17.1 所示: 图 2.1.17.1 多功能端口 其中 TPAD 为电容触摸按键信号,连接在电容触摸按键上,VOL SRC 为电位器采样电压信 号。STM_ADC 连接在 PB1,当需要电容触摸按键的时候,我们通过跳线帽短接 TPAD 和 STM_ADC,就可以实现电容触摸按键(利用定时器的输入捕获),当需要电位器采样电压的 时候,我们通过跳线帽短接 VOL _SRC 和 STM_ADC,就可以实现电压采集(利用 ADC 的输 入采集),因为 STM32 的该管脚同时具有这两个外设功能。多功能端口 PCB 图,如图 2.1.17.2 所示: 图 2.1.17.2 多功能端口 图中 VR 为原理图的 VOL_SRC,ADC 为 STM_ADC,而 TPAD 则为 TPAD。 2.1.18 电源 正点原子 NANO STM32F103 板载的电源供电部分,其原理图如图 2.1.18.1 所示: 图 2.1.18.1 电源 图中,U9 为 5V 转 3.3V 直流稳压芯片,选用的是 AMS1117-3.3V 芯片。F1 为 1000ma 自 恢复保险丝,用于保护 USB,K1 位开发板的总电源开关。 这里还有 USB 供电部分在 2.1.3 ST LINK V2.1 和 2.1.6 USB 接口小节中已讲解,其中 VUSB 就是来自 USB 供电部分。 2.1.19 电源输入输出接口 正点原子 NANO STM32F103 板载了两组简单电源输入输出接口,其原理图如图 2.1.19.1 所示: 图 2.1.19.1 电源输入输出 图中,VOUT1 和 VOUT2 分别是 3.3V 和 5V 的电源输入输出接口,有了这 2 组接口,我们 可以通过开发板给外部提供 3.3V 和 5V 电源了,虽然功率不大(最大 1000ma),但是一般情 况都够用了,大家在调试自己的小电路板的时候,有这两组电源还是比较方便的。同时这两组 端口,也可以用来由外部给开发板供电。 2.2 开发板使用注意事项 为了让大家更好的使用正点原子 NANO STM32F103,我们在这里总结该开发板使用的时 候尤其要注意的一些问题,希望大家在使用的时候多多注意,以减少不必要的问题。 1, 开发板一般情况是由 USB_JTAG 口供电,由于该口为 ST_LINK 的 USB 口,在第一次 上电的时候会提示安装 ST_LINK 驱动。STLINK 驱动在,资料包 5,软件资料->ST LINK 驱动文件夹。 2, 1 个 USB 供电最多 500mA,且由于导线电阻存在,供到开发板的电压,一般都不会有 5V,如果外接了多个大负载模块,可能引起 USB 供电不够,建议可以同时插 2 个 USB 口,并插上 USB_SLAVE,这样供电可以更足一些。 3, 开发板自带了 ST_LINK V2.1 的仿真器,在对 NANO 开发板下载或仿真程序时,必须 将 SW1 开关拨到左边(INS),同时 P4 排针的信号线尽量不要连接外部,避免干扰信 号线,从而导致 NANO 板下载或仿真程序失败。需要对外部电路的 MCU 使用,则将 SW1 开关拨到右边(EXT),通过 P4 排针信号线的线序连接到外部对应接口上。记住: 无论仿真器给外部还是内部使用,MCU 必须选择为 SWD 模式。 4, 当你想使用某个 IO 口用作其他用处的时候,请先看看开发板的原理图,该 IO 口是否 有连接在开发板的某个外设上,如果有,该外设的这个信号是否会对你的使用造成干 扰,先确定无干扰,再使用这个 IO。比如 PB8 就不怎么适合再用做其他输出,因为他 接了蜂鸣器,如果你输出低电平就会听到蜂鸣器的叫声了。 5, 开发板上存在跳线帽,大家在使用某个功能的时候,要先查查这个是否需要设置跳线 帽,以免浪费时间,如:P5 跳线帽没接,虚拟串口无法使用。P3 跳线帽没接,ADC 电压采集或 TPAD 触摸按键无法使用。 至此,本手册的实验平台(正点原子 NANO STM32F103)的硬件部分就介绍完了,了 解了整个硬件对我们后面的学习会有很大帮助,有助于理解后面的代码,在编写软件的时 候,可以事半功倍,希望大家细读!另外正点原子开发板的其他资料及教程更新,都可以 在技术论坛 www.openedv.com 下载到,大家可以经常去这个论坛获取更新的信息。 2.3 STM32F103 学习方法 STM32 作为目前最热门的 ARM Cortex M3 处理器,正在被越来越多的公司选择使用。学 习 STM32 的朋友也越来越多,初学者,可能会认为 STM32 很难学,以前只学过 51,或者甚至 连 51 都没学过的,一看到 STM32 那么多寄存器,就懵了。其实,万事开头难,只要掌握了方 法,学好 STM32,还是非常简单的,这里我们总结学习 STM32 的几个要点: 1,一款实用的开发板。 这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板 在手,什么东西都可以直观的看到,效果不是仿真能比的。但开发板不宜多,多了的话连自己 都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个学半天,结果 学个四不像。倒不如从一而终,学完一个在学另外一个。 2,两本参考资料,即《STM32 中文参考手册》和《Cortex-M3 权威指南》。 《STM32 中文参考手册》是 ST 出的官方资料,有 STM32 的详细介绍,包括了 STM32 的 各种寄存器定义以及功能等,是学习 STM32 的必备资料之一。而《Cortex-M3 权威指南》则是 对《STM32 中文参考手册》的补充,后者一般认为使用 STM32 的人都对 CM3 有了较深的了解, 所以 Cortex-M3 的很多东西它只是一笔带过,但前者对 Cortex-M3 有非常详细的说明,这样两 者搭配,你就基本上任何问题都能得到解决了。 3,掌握方法,勤学慎思。 STM32 不是妖魔鬼怪,不要畏难,STM32 的学习和普通单片机一样,基本方法就是: a) 掌握时钟树图(见《STM32 中文参考手册_V10 版》图 8)。 任何单片机,必定是靠时钟驱动的,时钟就是单片机的动力,STM32 也不例外,通过时钟 树,我们可以知道,各种外设的时钟是怎么来的?有什么限制?从而理清思路,方便理解。 b) 多思考,多动手。 所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多练习了,光看/ 说,是没什么太多用的,很多人问我,STM32 这么多寄存器,如何记得啊?回答是:不需要全 部记住。我至今也就只记得 STM32 的 IO 口控制这几个寄存器,因为有规律可循,好记。其他 的一概不记得。学习 STM32,不是应试教育,不需要考试,不需要你倒背如流。你只需要知道 这些寄存器,在哪个地方,用到的时候,可以迅速查找到,就可以了。完全是可以翻书,可以 查资料的,可以抄袭的,不需要死记硬背。掌握学习的方法,远比掌握学习的内容重要的多。 熟悉了之后,就应该进一步思考,也就是所谓的巧了。我们提供了几十个例程,供大家学 习,跟着例程走,无非就是熟悉 STM32 的过程,只有进一步思考,才能更好的掌握 STM32, 也即所谓的举一反三。例程是死的,人是活的,所以,可以在例程的基础上,自由发挥,实现 更多的其他功能,并总结规律,为以后的学习/使用打下坚实的基础,如此,方能信手拈来。 所以,学习一定要自己动手,光看视频,光看文档,是不行的。举个简单的例子,你看视 频,教你如何煮饭,几分钟估计你就觉得学会了。实际上你可以自己测试下,是否真能煮好? 机会总是留给有准备的人,只有平时多做准备,才可能抓住机会。 只要以上三点做好了,学习 STM32 基本上就不会有什么太大问题了。如果遇到问题,可 以在我们的技术论坛:开源电子网:www.openedv.com 提问,论坛 STM32 板块已经有 3.7W 多 个主题,很多疑问已经有网友提过了,所以可以在论坛先搜索一下,很多时候,就可以直接找 到答案了。论坛是一个分享交流的好地方,是一个可以让大家互相学习,互相提高的平台,所 以有时间,可以多上去看看。 另外,很多 ST 官方发布的所有资料(芯片文档、用户手册、应用笔记、固件库、勘误手 册等),大家都可以在 www.stmcu.org 这个地方下载到。也可以经常关注下,ST 会将最新的资 料都放到这个网址。 |
|
相关推荐
|
|
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 03:15 , Processed in 0.433680 second(s), Total 36, Slave 29 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号