原贴链接:http://www.openedv.com/forum.php?mod=viewthread&tid=92
ALIENTEK MiniSTM32开发板硬件详解
本节将向大家介绍ALIENTEK MiniSTM32开发板的各部分硬件,让大家对该开发板的各部分硬件原理有个理解。
1.2.1 MCU ALIENTEK MiniSTM32选择的是STM32F103RBT6作为MCU,STM32F103的型号众多,我们选择这款的原因是看重其性价比,作为一款低端开发板,选择STM32F103RBT6是最佳的选择。128K FLASH、20K SRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC、RTC、51个可用IO脚…,这样的配置无论放到哪里都是很不错的了,更重要的是其价格,18元左右的零售价,足以秒杀很多其他芯片了,所以我们选择了它作为我们的主芯片。MCU部分原理图如下:
图1.2.1.1 MCU部分原理图 上图中中上部的BOOT1用于设置STM32的启动方式,其对应启动模式如下表所示:
表1.2.1.1 BOOT0、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使用,也可以连接到其他板子上,这样ALIENEK MiniSTM32就相当于一个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.2 JTAG原理图 这里采用的是标准的JTAG接法,但是STM32还有SWD接口,SWD只需要最少2跟线(SWCLK和SWDIO)就可以下载并调试代码了,这同我们使用串口下载代码差不多,而且速度更快,能调试。所以建议大家在设计产品的时候,可以留出SWD来下载调试代码,而摒弃JTAG。STM32的SWD接口与JTAG是共用的,只要接上JTAG,你就可以使用SWD模式了(其实并不需要JTAG这么多线),JTAGV8和ULINK2都支持SWD。
1.2.2 EEPROM
ALIENTEK MiniSTM32自带了24C02的EEPROM芯片,该芯片的容量为2Kbit,也就是256个字节,对于我们普通应用来说是足够了的。你也可以选择换大的芯片,因为在原理上是兼容24C02~24C512全系列的EEPROM芯片的。其原理图如下:
图1.2.2.1 EEPROM原理图 这里我们把A0~A2均接地,对24C02来说也就是把地址位设置成了0了,写程序的时候要注意这点。IIC_SCL接在MCU的PC12上,IIC_SDA接在MCU的PC11上,这里我们并没有接到STM32内部的IIC上,因为STM32的IIC是**肋!如果你想在ALIENTEK MiniSTM32开发板上使用硬件IIC,那么也是可以的,你只需要设置PC11和PC12为浮空输入,然后把PB10和PB11(IIC2)或者PB6和PB7(IIC1)通过飞线连接到PC11和PC12上就可以使用硬件IIC了。
|