您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > stm32硬件电路设计
本节将向大家介绍ALIENTEKMiniSTM32开发板的各部分硬件,让大家对该开发板的各部分硬件原理有个理解。1.2.1MCUALIENTEKMiniSTM32选择的是STM32F103RBT6作为MCU,STM32F103的型号众多,我们选择这款的原因是看重其性价比,作为一款低端开发板,选择STM32F103RBT6是最佳的选择。128KFLASH、20KSRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC、RTC、51个可用IO脚…,这样的配置无论放到哪里都是很不错的了,更重要的是其价格,18元左右的零售价,足以秒杀很多其他芯片了,所以我们选择了它作为我们的主芯片。MCU部分原理图如下:图1.2.1.1MCU部分原理图上图中中上部的BOOT1用于设置STM32的启动方式,其对应启动模式如下表所示:表1.2.1.1BOOT0、BOOT1启动模式表我们用串口下载代码,则配置BOOT0为1,BOOT1为0即可,如果想让STM32一按复位键就开始跑代码,则需要配置BOOT0为0,BOOT1随便设置都可以。P3和P1分别用于PORTA和PORTB的IO口引出,其中P2还有部分用于PORTC口的引出。PORTA和PORTB都是按顺序排列的,这样设计的目的是为了让大家更方便地与外部设备连接。P2连接了DS18B20的数据口以及红外传感器的数据线,它们分别对应着PA0和PA1,只需要通过跳线帽将P2和P3连接起来就可以使用了。这里不直接连在一起的原因有二:1,防止红外传感器和DS18B20对这两个IO口作为其他功能使用的时候的影响;2,DS18B20和红外传感器还可以用来给其他板子提供输入,等于我们的板子为别的板子提供了红外接口和温度传感器,在调试的时候,还是蛮有用的。P4口连接了PL2303的串口输出,对应着STM32的串口1(PA9/PA10),在使用的时候,也是通过跳线帽将这两处连接起来。这样设计有2个好处:1,使得PA9和PA10用作其他用途使用的时候,不受到PL2303的影响。2,USB转串口可以用作他用,并不仅限这个板上的STM32使用,也可以连接到其他板子上,这样ALIENEKMiniSTM32就相当于一个USB串口。P5口是另外一个IO引出排阵,将PORTC和PORTD等的剩余IO口从这里引出。在此部分原理图中,我们还可以看到STM32F103RBT6的各个IO口与外设的连接关系,这些将在后面给大家介绍。这里STM32的VBAT采用CR1220纽扣电池和VCC3.3混合供电的方式,在有外部电源(VCC3.3)的时候,CR1220不给VBAT供电,而在外部电源断开的时候,则由CR1220给VBAT供电。这样,VBAT总是有电的,以保证RTC的走时以及后备寄存器的内容不丢失。该部分还有JTAG,JTAG部分电路如下图:图1.2.1.2JTAG原理图这里采用的是标准的JTAG接法,但是STM32还有SWD接口,SWD只需要最少2跟线(SWCLK和SWDIO)就可以下载并调试代码了,这同我们使用串口下载代码差不多,而且速度更快,能调试。所以建议大家在设计产品的时候,可以留出SWD来下载调试代码,而摒弃JTAG。STM32的SWD接口与JTAG是共用的,只要接上JTAG,你就可以使用SWD模式了(其实并不需要JTAG这么多线),JLINKV8和ULINK2都支持SWD。1.2.2EEPROMALIENTEKMiniSTM32自带了24C02的EEPROM芯片,该芯片的容量为2Kbit,也就是256个字节,对于我们普通应用来说是足够了的。你也可以选择换大的芯片,因为在原理上是兼容24C02~24C512全系列的EEPROM芯片的。其原理图如下:图1.2.2.1EEPROM原理图这里我们把A0~A2均接地,对24C02来说也就是把地址位设置成了0了,写程序的时候要注意这点。IIC_SCL接在MCU的PC12上,IIC_SDA接在MCU的PC11上,这里我们并没有接到STM32内部的IIC上,因为STM32的IIC是鸡肋!如果你想在ALIENTEKMiniSTM32开发板上使用硬件IIC,那么也是可以的,你只需要设置PC11和PC12为浮空输入,然后把PB10和PB11(IIC2)或者PB6和PB7(IIC1)通过飞线连接到PC11和PC12上就可以使用硬件IIC了。1.2.3温度传感器温度传感器我们使用的是DS18B20,其原理图如下:图1.2.3.1温度传感器原理图DS18B20的数据脚(18B20_DQ)接P2的第一脚,并没有直接连接到MCU,至于为什么,前面已有介绍。要使用这里,我们用跳线帽把PA0和P2-1连接起来就可以了。1.2.4按键ALIENTEKMiniSTM32开发板总共有3个按键,其原理图如下:图1.2.4.1按键输入原理图KEY0和KEY1用作普通按键输入,分别连接在PA13和PA15上,他们都连接在了JTAG相关的引脚上(KEY0还连接在SWDIO上),这样,在使用KEY0和KEY1的时候,就不能使用JTAG来调试了,这点在使用的时候要注意。KEY0和KEY1还和PS/2的DAT和CLK线共用,他们都通过JTAG的上拉电阻来提供上拉。WK_UP按键连接到PA0(STM32的WKUP引脚),它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。这个按键是高电平触发的。PA0还是DS18B20的输入引脚,所以在使用的时候要注意哦。1.2.5液晶显示模块ALIENTEKMiniSTM32开发板载有目前比较通用的液晶显示模块接口,还有其比较有特色的兼容性接口,不仅支持2.4、2.8寸的TFTLCD,还支持OLED显示器。其原理图如下:图1.2.5.1液晶显示模块原理图LCD1是一个通用的液晶模块接口。OLED是一个给OLED显示模块供电的接口,它和LCD1拼接在一起。当使用2.4’/2.8’的LCD时,我们接到LCD1上就可以了,而当我们使用ALIENTEK的OLED模块时,则接OLED排阵做电源,同时会连接到LCD1上的部分管脚,从而实现OLED与MCU的连接。ALIENTEKMiniSTM32的LCD接口兼容:ALIENTEK的TFTLCD模块、红牛开发板的液晶模块、CRE开发板的液晶模块、STMSKY开发板的液晶模块等。所以,如果有以上几款开发板的液晶模块,或者接口与上面原理图兼容的,都是可以在ALIENTEKMiniSTM32开发板上使用的。这些引脚与MCU的连接关系我们在这里就不一一列出了,大家可以从MCU的原理图上找到。T_PEN是触摸屏的PEN信号输出,我们在这里加了滤波电路,使得触摸屏读数更加准确。1.2.6红外接收头ALIENTEKMiniSTM32开发板载有红外接收传感器HS0038,原理图如下:图1.2.6.1红外接收传感器HS0038模块原理图REMOTE_IN接到P2的第二脚,也没有直接接在MCU的IO口上,目的也是防止IO口在做其他功能使用的时候,收到红外信号的干扰。1.2.7PS/2ALIENTEKMiniSTM32开发板载有PS/2接口,有了该接口,我们就可以用来连接外部标准的PS/2鼠标键盘了,也就大大的扩展了ALIENTEKMiniSTM32的输入。原理图如下:图1.2.7.1PS/2接口原理图PS_CLK和PS_DAT分别接PA15和PA13,PS/2的信号线是需要外部提供上拉电阻的,这里我们和JTAG共用,使用JTAG的上拉电阻来提供,PS/2的CLK和DAT还与两个按键共用。所以在使用这几部分的时候,要特别注意,别冲突,可以分时复用。在使用PS/2的时候,同样不能使用JTAG调试。1.2.8LEDALIENTEKMiniSTM32开发板上总共有3个LED,其原理图如下:图1.2.8.1LED原理图其中PWR是系统电源指示灯,为蓝色。LED0和LED1分别接在PA8和PD2上,PA8还可以通过TIM1的通道1的PWM输出来控制DS0的亮度。为了方便大家判断,我们选择了DS0为红色,DS1为绿色的LED灯。1.2.9SD卡ALIENTEKMiniSTM32开发板载有标准的SD卡接口,有了这个接口,我们就可以外扩大容量存储设备,可以用来记录数据。其原理图如下:图1.2.9.1SD卡接口原理图SD卡我们使用的是SPI模式通信,SD卡的SPI接口连接到STM32的SPI1上,SD_CS接在PA3上,ALIENTEKMiniSTM32开发板上的SPI1总共由4个外设共用,他们分别是:SD卡、NRF24L01无线模块、JF24C无线模块和W25X16。他们可以通过不同的片选信号来分时复用。1.2.10无线模块ALIENTEKMiniSTM32开发板板载了2款无线模块的接口,NRF24L01模块和JF24C模块,他们都属于2.4G通信的无线模块,并且都有性价比极高的特点。其中NRF24L01模块的最大通信速率为2Mbps,JF24C的为1Mbps。有了这个两个接口,我们就无线通信,以及其他很多的应用了。这部分原理图如下:图1.2.10.1无线模块接口原理图这两部分也是共用SPI接口,其余引脚与MCU的对应关系在MCU部分有,我们这里就不列出了。注意这两个无线模块是不能同时连接在板子上的!1.2.11SPIFLASHALIENTEKMiniSTM32开发板载有SPIFLASH芯片W25X16,该芯片的容量为2M字节,与AT45DB161属于同一级别,ATMEL的东西价格近来很不稳定,因而我们选择了价格稳定,货源较好,而且通用性很强的W25X16,其原理图如下:图1.2.11.1W25X16原理图W25X16也是共用了SPI1,F_CS接在PA2上。至此,总共SPI1的四个器件都已介绍完毕,他们的CS都接在不同的IO口上(两个无线模块除外),所以在使用其中一个器件的时候,要记得禁止其他器件的CS脚,否则会有干扰。1.2.12USB串口、USB、电源这里三个部分一起介绍,ALIENTEKMiniSTM32开发板板载了USB串口,并且由USB提供电源,使得我们只需要一根USB线就可以使用ALIENTEKMiniSTM32开发板了,包括下载、供电、调试3位一体。ALIENTEKMiniSTM32开发板的供电部分还引出了5V和3.3V的排阵,可以用来为外部设备提供电源或者从外部引入电源,这在很多时候是非常有用的,有时候你突然要一个3.3V的电源,但找半天就是没这样的电源,而我们的板子则可直接向外部提供3.3V电源,有了它,你就可以给外部设备提供3.3V、5V电源了。注意电流不能太大哦!ALIENTEKMiniSTM32开发板的USB接口通过独立的MiniUSB头引出,不和USB_232共用,这样不但可以同时使用,还可以给系统提供更大的电流。这几个部分的原理图如下:图1.2.12.1USB串口、USB、电源部分原理图此部分还有一个开关BUTTON,用来控制整个系统的供电,如果断开则整个系统的3.3V部分都将断电。而5V部分的电源还是开启的。图中F1为可恢复保险丝,用于保护USB。至此,整个开发板的硬件就介绍完了,了解了整个硬件对我们后面的软件设计会有很大帮助,希望大家细读!
本文标题:stm32硬件电路设计
链接地址:https://www.777doc.com/doc-4358360 .html