STM32F系列ARMCortexM3核微控制器开发与应用+样章.docx
- 文档编号:25792816
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:27
- 大小:555.89KB
STM32F系列ARMCortexM3核微控制器开发与应用+样章.docx
《STM32F系列ARMCortexM3核微控制器开发与应用+样章.docx》由会员分享,可在线阅读,更多相关《STM32F系列ARMCortexM3核微控制器开发与应用+样章.docx(27页珍藏版)》请在冰豆网上搜索。
STM32F系列ARMCortexM3核微控制器开发与应用+样章
第1章开发板硬件结构
OpenM3V开发板是作者专门为本书设计的硬件原型,采用了ST公司基于M3核的STM32F103VB,可通过ISP下载,也可以通过JTAG方式调试和下载。
开发板上提供了众多的功能部件,都是工程师在实际应用中常用并必须要使用的模块,充分使用这些模块能尽可能地发挥STM32系列的性能。
这些功能模块包括键盘和LED灯功能部件;I2C方式接口的EEPROM储存器电路;两个RS-232串口电路;简单AD采集电路,语音AD采集电路;CAN接口电路;USB接口电路;JTAG接口电路;后备供电电路;SPI方式接口的Flash储存器接口电路模块,SPI方式接口的SD卡电路,SPI方式接口的128×64点阵液晶接口电路,SPI方式接口2.4G无线通信模块接口电路,SPI方式接口的779~928MHz频段无线模块接口电路;PWM方式调光电路,PWM方式语音输出电路及连接直流无刷电动机驱动板的接口电路等,同时结合灵活的跳线,所有的I/O口都可以单独引出,可以极大地方便读者进行嵌入式开发。
1.1电路原理图
OpenM3V开发板硬件原理图如图1-1-1~图1-1-5所示。
图1-1-1芯片最小系统部分
图1-1-2USB、CAN和JTAG接口电路图
图1-1-3RS-232和24C02电路
图1-1-4LCD和无线模块接口电路图
图1-1-5SD卡和Flash接口电路图
1.2原理图说明
1.2.1电源电路
STM32系列的工作电压(VDD)为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源。
当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。
OpenM3V开发板电源电路如图1-2-1所示,使用USB口输入5V电源,通过电容滤波和电感对瞬态电流的限制,使用LM1117为系统提供稳定的3.3V电源。
当系统供电后,有一指示灯被点亮,提示系统处于供电状态。
图1-2-1电源电路
STM32F103VB系列具有独立的模拟电源引脚,为了提高模拟系统的抗噪性,模拟部分应该与数字部分分开供电,如图1-2-2所示。
在电路上,使用L1、L2、C5、C6作为模拟电路部分,用于隔离来自数字电路部分的噪声。
图1-2-2模拟部分与数字部分分开供电
1.2.2系统复位电路
在STM32系列芯片中,由于有完善的内部复位(RESET)电路,外部复位电路就特别简单,使用阻容复位方式即可,如图1-2-3所示。
图1-2-3复位电路图
1.2.3时钟电路
STM32系列的控制器可以使用外部晶振或外部时钟源,经过内部PLL或不经过内部PLL为系统提供参考时钟,也可以使用内部RC振荡器经过或不经过内部PLL为系统提供时钟源。
当使用外部晶振作为系统时钟源时,外部晶振的频率为4~16MHz,可以为系统提供精确的系统参考源。
OpenM3V开发板使用8MHz外接晶振为系统提供精确的系统时钟参考,使用32.768kHz低速外部晶体作为RTC时钟源,连接到芯片的PC14、PC15脚,具体电路如图1-2-4所示。
图1-2-4晶振电路图
1.2.4JTAG接口电路
OpenM3V开发板采用标准14引脚JTAG仿真调试接口,该接口信号定义与STM32F103VB连接,如图1-2-5所示。
注意,当不作为JTAG口使用,而是作为普通I/O口使用时,要注意其口线上的上拉和下拉电阻的影响,当然也可以焊下,不使用这些电阻。
图1-2-5JTAG接口电路
1.2.5串口电路
STM32系列芯片有2~5个不等异步串口,STM32F103VB拥有3个异步串口。
开发板通过一片MAX3232把串口1和串口2的3.3V电平转换为RS-232电平。
通过一个跳线组J5,可以把这些端口与串口部分电路断开或相连接。
当跳线帽短接时,连接芯片引脚到串口电平转换电路;当跳线帽断开时,这些引脚可以作为通用I/O口使用。
开发板上,STM32F103VB的PA10(69引脚)对应RX1,PA9(68引脚)对应TX1,PA3(26引脚)对应RX2,PA2(25引脚)对应TX2。
这两个串口的数据发送端连接到DB9阴(母)插头的2引脚,数据接收端连接到DB9阴头的3引脚,DB9接头与PC串口相接时,使用直连串口线相连接,同时,串口1可以作为程序ISP下载的接口,具体电路如图1-2-6所示。
图1-2-6串口电路图
1.2.6键盘电路
OpenM3V开发板有独立的7个按键,分别为K1~K7,如图1-2-7所示。
由于STM32F系列芯片的每一个引脚都可以定义为中断脚,所以也可以定义这些按键作为外部中断输入口,或用来唤醒在睡眠或停机状态的CPU。
图1-2-7按键电路图
开发板上,PE0连接K1,PE1连接K2,…,PE6连接K7。
虽然所有的STM32F系列芯片内部都有上拉和下拉选项,在此处加上上拉电阻只是为了更好地说明这个上拉电阻的作用。
在对功耗要求很严的应用中,按键的上拉电阻阻值应相应取大一点,以减少这一部分的电流消耗。
在按键的两端加上一个电容,能旁路掉一定量的键盘按下和松开时的抖动,其值在0.1~1.0μF之间,此处采用0.1μF电容。
按键按下时,采集到的电压值为低;按键松开时,采集到的电压值为高,通过判断连接到芯片I/O口电压的高低来判断按键的状态。
1.2.7LED灯电路
OpenM3V开发板有独立的8个LED灯,使用I/O口来控制,PD0控制LED1,PD1控制LED2,…,PD7控制LED8。
当I/O口为高电平时,LED灯灭;当I/O口为低电平时,LED灯亮,具体电路如图1-2-8所示。
图1-2-8LED电路图
同时,还有一路使用PWM来模拟DAC输出可以调光输出的LED灯,电路如图1-2-9所示。
PWM_V连接芯片的PD14引脚,也即重映射TIM4的CH3引脚。
图1-2-9PWM驱动电路图
1.2.8I2C接口电路
STM32F103VB具有两路均支持400kHz高速通信模式的硬件I2C电路接口。
在开发板上使用一片具有I2C接口的EEPROM储存器芯片24C02,可以通过I2C接口实现数据的读写等操作。
电路图如图1-2-10所示,24C02连接到STM32F103VB的I2C_2接口,使用跳线J6与系统相接。
只有跳线帽短接时,I2C_2接口连接到24C02芯片上;当断开时,I2C_2接口可以用作普通的I/O口。
图1-2-1024C02接口电路图
I2C总线上拉电阻的值与总线速度有关,当总线速度高达400kHz时,应使用1kΩ的电阻,可以实现快速的总线上升和下降变化。
当使用标志的100kHz总线速度时,可以选用5.6kΩ或10kΩ总线上拉电阻,以降低总线操作时的功率消耗。
为了兼容高速总线,此处选用1kΩ总线上拉电阻。
1.2.9ADC电路
STM32F103VB具有两个12位模数转换器,共有17个通道,转换速率高达1000kHz,具有独立的参考电源引脚。
开发板通过跳线J12可以选择经过隔离的3.3V或语音采集电压参考,也可以直接从需要的地方引入参考电压。
注意,J12跳线最多只能选择一个,开发板初始状态时参考源选择VREF_3.3,具体跳线电路如图1-2-11所示。
图1-2-11ADC参考跳线图
OpenM3V开发板提供一路直流电压测量电路和一路语音采集电路。
直流电压采集电路如图1-2-12所示,直流电压连接到ADC_13引脚。
可调电阻调节输入到ADC的电压,在VIN点可以通过万用表测出电压值。
开发板上直接使用电源作为参考源,不能满足高精度的电压测量,也没有发挥出12位ADC的性能,如果需要完全发挥STM32F103VB芯片ADC的性能,需要使用精密参考源引入VREF+引脚。
图1-2-12直流电压采集电路
1.2.10USB电路
USB外设实现了USB2.0全速总线接口,并支持USB挂起/恢复操作,可以停止设备时钟,实现低功耗。
ST-EasyM3开发板通过USB接口提供电源,接口电路如图1-2-13所示。
通过J2跳线可以断开和接通USB电路,通过J1可以选择通过是CPU控制上拉还是始终选择上拉。
如果选择CPU来控制上拉,则通过PC11来控制。
图1-2-13USB接口电路
1.2.11CAN电路
bxCAN是基本扩展BasicExtendedCAN的缩写,它支持CAN协议2.0A和2.0B。
它的设计目标是:
以最小的CPU负荷来高效处理大量收到的报文。
它也支持报文发送的优先级要求(优先级特性可用软件配置)。
CAN主要应用于需要快速响应的系统中,bxCAN提供所有支持时间触发通信模式所需的硬件功能。
STM32F103VB芯片有一路硬件CAN接口,电路图如图1-2-14所示。
通过跳线J3来连接和断开芯片与CAN驱动的连接,使用65HVD230驱动芯片连接到CAN总线上,使用J4跳线来选择使用终端200Ω网络电阻。
图1-2-14CAN接口电路图
1.2.12语音采集和播放电路
STM32F103VB芯片拥有性能优越的ADC和高效的PWM输出,可以充分使用芯片的资源来进行语音的采集和语音输出。
图1-2-15是语音采集和语音输出的电路图。
语音采集使用ADC_1,使用语音采集时,ADC参考源要选择(J12)VREF_MIC。
语音采样使用18kHz/s的采样频率,使用12位数据。
语音输出PWM频率为18kHz,与语音采样速率一样。
图1-2-15语音采集和播放电路
可以通过PC机或MP3等设备输入音频信号,通过STM32采集,然后通过PWM方式输出来,再通过扬声器或耳机复现,实现语音采集和语音播放。
1.2.13SPI接口电路
串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。
此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。
接口还能以多主配置方式工作,可用于多种用途,包括使用一条双向数据线的双线单工同步传输。
STM32F103VB具有两路SPI接口,最高速度可以达到18MHz。
ST-EasyM3开发板上拥有众多的SPI接口设备,通过SPI可以很容易地连接众多设备,实现与这些设备的高速通信。
开发板上的SPI接口设备非常丰富,有2.4G无线模块接口、863~925MHz频率无线模块接口,SD卡接口、128×64点阵液晶接口、Flash储存器接口和TF/SD卡接口。
(1)2.4G无线接口。
其电路如图1-2-16所示。
通过J8跳线来接通和断开与2.4G无线模块控制口线与芯片的连接;L4、C22和C23为无线模块电源进行滤波,保证无线模块电源的干净度;STM32F103VB芯片的SPI2接口与无线模块的SPI接口相连。
图1-2-162.4G无线模块
(2)830~925MHz无线模块接口。
其电路如图1-2-17所示。
通过J11来接通和断开芯片与模块的连接;L5、C56和C57为无线模块电源进行滤波,以保证无线模块电源的干净度;STM32F103VB芯片的SPI1与无线模块的SPI接口相连。
图1-2-17ISM工业频段无线模块
(3)128×64点阵LCD模块接口。
其电路如图1-2-18所示。
通过J7跳线来接通和断开芯片与LCD点阵模块的连接。
在开发板上,相应地放置了点阵液晶模块所必需的元器件。
当要使用点阵液晶模块时,J7跳线必须全部短接。
图1-2-18128×64点阵模块接口电路
(4)SD/TF卡接口。
其电路如图1-2-19所示。
通过跳线J9来接通和断开芯片与SD/TF卡的连接。
通过SD_POWER口线来控制SD/TF卡的供电,可以重新复位SD/TF卡。
通过对SD_FIND口线电平的判断,来识别SD/TF卡是否插入。
当SD/TF卡供电时,LED11将被点亮。
图1-2-19TF/SD卡接口电路
(5)Flash储存器接口。
其具体电路如图1-2-20所示。
通过J10跳线来接通和断开芯片与Flash储存器的连接。
在开发板上有一片具有SPI接口的Flash储存器芯片SST25VF016B,可以通过SPI接口高速地实现数据的读和写操作,SST25VF016B连接到芯片的SPI2接口。
图1-2-20Flash接口电路
1.2.14电动机驱动板接口电路
STM32F系列芯片中,至少有一个高级定时器,这个定时器的主要功能是为方便控制电动机而设立的。
开发板上的电动机驱动板接口电路如图1-2-21所示。
在J13接口中引入了T1_CH1、T1_CH1N、T1_CH2、T1_CH2N、T1_CH3、T1_CH3N用于控制电动机的三相六极;T3_1_H1、T3_2_H2、T3_3_H3用于连接霍尔传感器,T4_1_B1、T4_2_B2用于连接编码器;ADC_1、ADC_2、ADC_3、ADC_T用于采集三相电流和驱动板上的温度;T1_BKIN用作紧急按钮。
同时可以为开发板提供3.3V和5.0V电源。
图1-2-21电动机驱动板接口电路
1.3开发板元器件布局图
OpenM3V开发板元器件布局如图1-3-1所示。
图1-3-1开发板元器件布局图
1.3.1跳线器说明
OpenM3V开发板跳线器说明表如表1-3-1所示。
表1-3-1跳线器说明表
跳线器
I/O口
跳线选择
功能说明
J1
PC11
USB_ABLE
此为三端跳线,短接USB_ABLE端时,由PC11控制上拉,短接地时,连通上拉电阻
J2
PA12
USBDP
短接时,PA12连接USBDP
PA11
USBDM
短接时,PA11连接USBDM,使用USB时,两个都需短接
J3
PB9
CANTX
短接时,PB9连接CANTX
PB8
CANRX
短接时,PB8连接CANRX,使用CAN时,两个都需短接
J4
短接时,连接200Ω电阻
J5
PA9
TX1
短接时,PA9连接RS-232电平转换芯片
PA10
RX1
短接时,PA12连接RS-232电平转换芯片
PA2
TX2
短接时,PA12连接RS-232电平转换芯片
PA3
RX2
短接时,PA12连接RS-232电平转换芯片
J6
PB10
SCL2
短接时,连接24C02的SCL引脚
PB11
SDA2
短接时,连接24C02的SDA引脚
J7
PD8
LCD_A0
短接时,PD8连接点阵液晶模块的控制口线
PD9
LCD_RSET
短接时,PD9连接点阵液晶模块的复位口线
PD10
LCD_SS
短接时,PD10连接点阵液晶模块的片选口线
PB15
MOSI_2
短接时,连接点阵液晶模块的MOSI引脚
PB13
SCK_2
短接时,连接点阵液晶模块的SCK引脚
J8与2.4G模块有关
PD11
PD
短接时,PD11连接2.4G无线模块掉电控制引脚
PC9
IRQ
短接时,PC9连接2.4G无线模块中断输出引脚
PA8
RF_SS
短接时,PA8连接2.4G无线模块片选引脚
PD15
RSET
短接时,PD15连接2.4G无线模块复位引脚
J9
PA0
SD_POWER
短接时,PA0连接SD卡电源控制引脚
PC2
SD_FIND
短接时,PC2连接SD卡插入判断引脚
PA4
SD_SS
短接时,PA4连接SD卡片选引脚
PA5
SCK1
短接时,PA5连接SD卡SCK引脚
PA6
MISO1
短接时,PA6连接SD卡MISO引脚
PA7
MOSI1
短接时,PA7连接SD卡MOSI引脚
J10
PB12
FLASH_SS
短接时,PB12连接25P80的片选引脚
PB13
SCK2
短接时,PB13连接25P80的SCK引脚
PB14
MISO2
短接时,PB14连接25P80的MISO选引脚
PB15
MOSI2
短接时,PB15连接25P80的MOSI选引脚
J11
PB7
IRQ
短接时,PB7连接工业ISM频段无线模块中断输出引脚
PC0
SLP
短接时,PB7连接工业ISM频段无线模块功能引脚
PC1
RSET
短接时,PB7连接工业ISM频段无线模块复位引脚
PC13
SEL
短接时,PB7连接工业ISM频段无线模块片选引脚
PA5
SCK1
短接时,PB7连接工业ISM频段无线模块SCK引脚
PA6
MISO1
短接时,PB7连接工业ISM频段无线模块MISO引脚
PA7
MOSI1
短接时,PB7连接工业ISM频段无线模块MOSI引脚
续表
跳线器
I/O口
跳线选择
功能说明
J12
VREF+
VREF_MIC
短接时,参考电源连接语音转换参考电源点
VREF+
VREF_3.3
短接时,参考电源连接到经过隔离的3.3V电源上
开发板上的众多功能模块可以通过跳线与芯片连接或断开。
开发板上绝大部分采用两针跳线,跳线器的两边均标记有其相应的功能符号。
当跳线短接时,CPU连接功能模块;当跳线断开时,CPU和功能模块断开,可以作为普通的I/O口用。
在这12个跳线块中,J1为三端跳线,可以选择跳接GND和USB_ABLE,J12为参考电源跳线块,当使用ADC模块时,必须选择一个参考源。
一般测试可以选用VREF_3.3,当使用语音采集电路时,可以选择VREF_MIC。
注意,参考源只能跳接一个,跳接VREF_3.3时,就不能接VREF_MIC,反之一样。
接通UART1和UART2时使用J5跳线块;当使用UART1时,必须跳接TX1和RX1两个跳线;当使用UART2时,必须跳接TX2和RX2。
其他的跳线块在使用器功能部件时必须全部跳接上。
下面对每一个跳线器做详细的说明。
1.J1——USB上拉电阻控制
J1跳线器在开发板上的位置如图1-3-2所示,是唯一的三端跳线器,跳线器的中间引脚连接上拉电阻控制端。
当跳线帽跳接到GND端时,中间引脚连接到GND,这时控制端口接入低电平,电路导通,使能上拉电阻。
当跳线帽端口跳接到USB_ABLE端口时,上拉电阻控制端与芯片的PC11端口相连,当PC11输出高电平时,电路截止,使能上拉电阻;当PC11输出低电平时,电路导通,使能上拉电阻,这时可以在程序中控制上拉电阻是否有效。
2.J2——USB接口
通过跳线器J2的选择,STM32F103VB的USB数据引脚USBDP和USBDM连接到USB接口电路和USB插座上,可以通过USB进行数据通信。
J2跳线器和USB接口在开发板上的位置如图1-3-2所示。
图1-3-2USB和CAN功能模块在PCB电路板上的位置图
3.J3——CAN接口
通过跳线J3的选择,STM32F103VB的CAN总线CANRX和CANTX连接到CAN总线驱动器上,可以实现CAN总线通信。
开发板上的CAN总线驱动器没有采用隔离电源和实行电气隔离,在实际应用中,隔离是必不可少的,这就增加了CAN总线的使用成本。
J3跳线器及CAN接口在开发板上的位置如图1-3-2所示。
4.J4——终端电阻跳线
当此设备处在CAN总线的终端时,通过J4跳线选择接入200Ω的终端电阻。
当此设备不是CAN总线终端设备时,去掉J4跳线帽,断开终端电阻。
J4跳线器在开发板上的位置如图1-3-2所示。
5.J5——UART串口
通过J5跳线器的选择,STM32F103VB的UART1和UART2引脚连接到MAX3232转换芯片上,然后连到通道DB9插座上,从而可以进行串口通信。
当短接RX1和TX1跳线帽时,UART1串口被连接;当短接RX2和TX2时,UART2串口被连接。
UART1和UART2可以独立被连接使用。
J5跳线器及串口在开发板上的位置如图1-3-3所示。
图1-3-3J5跳线器及串口在开发板上的位置
6.J6——I2C接口
通过跳线器J6的选择,STM32F103VB芯片的I2C总线SCL2和SDA2将与开发板上的24C02相连,芯片可以通过I2C总线对24C02进行读或写操作。
J6和24C02在开发板上具体位置如图1-3-4所示。
图1-3-4J6和24C02在开发板上的具体位置
7.J7——点阵液晶接口
通过跳线器J7的选择,STM32F103VB芯片可以连接到128×64点阵液晶模块上,以驱动液晶模块。
芯片通过PD8引脚控制液晶模块A0口,以实现数据和指令的转换;通过PD9引脚来控制液晶模块的复位脚;通过PD10引脚来作为SPI选择液晶模块的片选脚。
液晶模块连接到芯片的SPI2接口。
J7跳线器和128×64液晶模块接口在开发板上的具体位置如图1-3-5所示。
开发板标准配置没有此液晶模块。
图1-3-5J7跳线器和128×64液晶模块接口在开发板上的具体位置
8.J8——2.4G无线模块接口
通过跳线器J8的选择,STM32F103VB芯片可以连接到2.4G无线模块上,以驱动无线模块实现数据的无线通信。
开发板上标准配置没有2.4G无线模块,其具体位置如图1-3-6所示。
图1-3-6J8跳线器和2.4G模块接口在开发板上的具体位置
9.J9——SD/TF卡
通过跳线器J9的选择,STM32F103VB芯片的SPI1可以连接到SD/TF卡接口上。
由于TF卡广泛应用于手机和数码设备中,在通用的容量下有更小的体积,所以在市场中的占有量大大超过SD卡,具有更大的通用性。
在开发板上没有选用大多数开发板选用的SD卡座,而是选用了更加通用的TF卡座。
短接跳线器J9,芯片通过PA0引脚,可以控制SD/TF卡的电源开关;芯片通过对PC2引脚电平的读取,可以判断TF卡是否插入到卡座中;PA4为SP1是否选择TF卡通信的片选脚。
J9跳线器和TF卡座在开发板上的具体位置如图1-3-7所示。
10.J10——Flash存储器
通过跳线器J10的选择,芯片的SPI2接口可以连接到Flash存储器SST25VF016B芯片上,通过SPI对SST25VF016B进行读写操作。
J10跳线器在开发板上的具体位置如图1-3-4所示。
11.J11——工业ISM频段模块
通过跳线器J11的选择,STM32F103VB芯片可以连接到工业ISM频段无线模块上,以驱动无线模块实现数据的无线通信。
开发板上标准配置没有工业ISM频段无线模块,J11跳线器和工业ISM频段无线模块在开发板上的具体位置如图1-3-8所示。
12.J12——ADC参考电源
通过跳线器J12可以选择不同的ADC转换标准源。
J12跳线只能选择一个或者不选择,绝对不可以同时选择,这是和其他跳线器有区别的地方。
当使用ADC采集语音数据时,需要把J12跳线器的VREF_MIC短接,VREF_3.3要断开;当进行一般ADC转换测试时,短接VREF_3.3,断开VREF_MIC跳线。
也可以从别处引入标准电压源到VREF+端,这时不能跳接任何一个跳线帽在J12上。
J12跳线器在开发板上的具体位置如图1-3-8所示。
图1-3-7J9跳线器和TF卡座在图1-3-8J11、J12跳线器和工业ISM频段
开发板上的具体位置无线模块在开发板上的具体位置
1.3.2硬件资源使用
表1-3-2为开发板芯片资源使用情况表。
表1-3-2开发板芯片使用情况表
引脚号
I/O号
实现功能
引脚号
I/O号
实现功能
1
PE2
K3
14
NRST
复位
2
PE3
K4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32F 系列 ARMCortexM3 控制器 开发 应用 样章