打印

【连载】STM32开发指南--第一章 实验平台简介

[复制链接]
5129|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 正点原子 于 2013-1-6 12:57 编辑

第一章 实验平台简介

    本章,主要向大家简要介绍我们的实验平台:ALIENTEK战舰STM32开发板。通过本章的学习,你将对我们后面使用的实验平台有个大概了解,为后面的学习做铺垫。
本章将分为如下两节:
1.1,ALIENTEK战舰STM32开发板资源初探;
1.2,ALIENTEK战舰STM32开发板资源说明;
1.1 ALIENTEK战舰STM32开发板资源初探
    在ALIENTEK 战舰STM32开发板之前,ALIENTEK推出过MiniSTM32开发板,在两年的时间里面,售出8000多套,连续一年多稳居淘宝STM32开发板销量之首。而这款战舰STM32开发板,则是MiniSTM32开发板的超级加强版。下面我们开始介绍战舰STM32开发板。
    ALIENTEK战舰STM32开发板的资源图如图1.1.1所示:

图1.1.1 战舰STM32 开发板资源图
    从图1.1.1可以看出,ALIENTEK战舰STM32开发板,资源十分丰富,并把STM32F103的内部资源发挥到了极致,基本所有STM32F103的内部资源,都可以在此开发板上验证,同时扩充丰富的接口和功能模块,整个开发板显得十分大气。
    开发板的外形尺寸为11.2cm*15.6cm大小,板子的设计充分考虑了人性化设计,并结合广大客户对Mini板提出的改进意见,经过反复修改(在面市之前,硬件就改版了8次之多,目前最新版本为V2.0),最终确了定这样的设计。
       ALIENTEK战舰STM32开发板板载资源如下:
CPU:STM32F103ZET6,LQFP144,FLASH:512K,SRAM:64K;
外扩SRAM:IS62WV51216,1M字节
外扩SPI FLASH:W25Q64,8M字节
1个电源指示灯(蓝色)
2个状态指示灯(DS0:红色,DS1:绿色)
1个红外接收头,并配备一款小巧的红外遥控器
1个 EEPROM芯片,24C02,容量256字节
1个重力加速度传感器芯片,ADXL345
1个高性能音频编解码芯片,VS1053
1个FM立体声收发芯片,RDA5820
1个2.4G无线模块接口(NRF24L01)
1路CAN接口,采用TJA1050芯片
1路485接口,采用SP3485芯片
1路RS232(串口)接口,采用SP3232芯片
1个PS/2接口,可外接鼠标、键盘
1个游戏手柄接口,可以直接插FC(红白机)游戏手柄
1路数字温湿度传感器接口,支持DS18B20 /DHT11等
1个标准的2.4/2.8/3.5寸LCD接口,支持触摸屏
1个摄像头模块接口
2个OLED模块接口
1个USB串口,可用于程序下载和代码调试(USMART调试)
1个USB SLAVE接口,用于USB通信
1个有源蜂鸣器
1个FM收发天线接口,并配天线
1个RS232/RS485选择接口
1个CAN/USB选择接口
1个串口选择接口
1个SD卡接口(在板子背面,支持SPI/SDIO)
1个SD卡/网络模块选择接口
1个标准的JTAG/SWD调试下载口
1个VS1053的IIS输出接口
1个MIC/LINE IN选择接口
1个录音头(MIC/咪头)
1路立体声音频输出接口
1路立体声录音输入接口
1组多功能端口(DAC/ADC/PWM DAC/AUDIO IN/TPAD)
1组5V电源供应/接入口
1组3.3V电源供应/接入口
1个参考电压设置接口
1个直流电源输入接口(输入电压范围:6~16V)
1个启动模式选择配置接口
1个RTC后备电池座,并带电池
1个复位按钮,可用于复位MCU和LCD
4个功能按钮,其中WK_UP兼具唤醒功能
1个电容触摸按键
1个电源开关,控制整个板的电源
独创的一键下载功能
除晶振占用的IO口外,其余所有IO口全部引出
ALIENTEK战舰STM32开发板的特点包括:
1)  接口丰富。板子提供十来种标准接口,可以方便的进行各种外设的实验和开发。
2)  设计灵活。板上很多资源都可以灵活配置,以满足不同条件下的使用。我们引出了除晶振占用的IO口外的所有IO口,可以极大的方便大家扩展及使用。另外板载一键下载功能,可避免频繁设置B0、B1的麻烦,仅通过1根USB线即可实现STM32的开发。
3)  资源充足。外扩1M字节SRAM和8M字节FLASH,满足大内存需求和大数据存储。板载MP3和FM收发芯片,娱乐学习两不误。板载3D加速度传感器和各种接口芯片,满足各种应用需求。
4)  人性化设计。各个接口都有丝印标注,使用起来一目了然;接口位置设计安排合理,方便顺手。资源搭配合理,物尽其用。
1.2 ALIENTEK战舰STM32开发板资源说明
    资源说明部分,我们将分为两个部分说明:硬件资源说明和软件资源说明。
1.2.1硬件资源说明
    这里我们首先详细介绍战舰STM32开发板的各个部分(图1.1.1中的标注部分)的硬件资源,我们将按逆时针的顺序依次介绍。
W25Q64 64M FALSH
    这是开发板外扩的SPI FLASH芯片,容量为64Mbit,也就是8M字节,可用于存储字库和其他用户数据,满足大容量数据存储要求。当然如果觉得8M字节还不够用,你可以把数据存放在外部SD卡。
IS62WV51216 8M SRAM
    这是开发板外扩的SRAM芯片,容量为8M位,也就是1M字节,这样,对大内存需求的应用(比如GUI),就可以很好的实现了。
SD卡/网络模块接口选择接口
    这里是一个由3拍排针(在板上标号[下同]为:P10、P11和P12)组成的复合接口,当不用网络模块的时候,这个组合就变成了SD卡的接口选择接口,可以通过跳线帽选择SDIO/SPI(我们默认是设置在SPI接口的)。但是,如果需要网络模块(网络模块接P12),那么SD卡就只能用SDIO模式了。
4.       引出IO口
    这里是一组54个IO口的引出(P5),在它的右侧不远,是另外一组54个IO口的引出(P4),这两组排针引出108个IO,而STM32F103ZET6总共只有112个IO,除去RTC晶振占用的2个IO,还剩下PA9和PA10没有在这里引出(由P6引出)。
CAN/USB选择接口
    这是一个USB/CAN的选择接口(P13),因为STM32的USB和CAN是共用一组IO(PA11和PA12),所以我们通过跳线帽来选择不同的功能,以实现USB/CAN的实验。
JTAG/SWD接口
       这是ALIENTEK战舰STM32开发板板载的20针标准JTAG调试口(JTAG),该JTAG口直接可以和ULINK、JLINK或者STLINK等调试器(仿真器)连接,同时由于STM32支持SWD调试,这个JTAG口也可以用SWD模式来连接。
    用标准的JTAG调试,需要占用5个IO口,有些时候,可能造成IO口不够用,而用SWD则只需要2个IO口,大大节约了IO数量,但他们达到的效果是一样的,所以我们强烈建议你的仿真器使用SWD模式!
USB串口/串口1
    这是USB串口同STM32F103ZET6的串口1进行连接的接口(P6),标号RXD和TXD是USB转串口的2个数据口(对CH340G来说),而PA9(TXD)和PA10(RXD)则是STM32的串口1的两个数据口(复用功能下)。他们通过跳线帽对接,就可以和连接在一起了,从而实现STM32的程序下载以及串口通信。
    设计成USB串口,是出于现在电脑上串口正在消失,尤其是笔记本,几乎清一色的没有串口。所以板载了USB串口可以方便大家下载代码和调试。而在板子上并没有直接连接在一起,则是出于使用方便的考虑。这样设计,你可以把ALIENTEK战舰STM32开发板当成一个USB串口,来和其他板子通信,而其他板子的串口,也可以方便地接到ALIENTEK战舰STM32开发板上。
STM32F103ZET6
    这是开发板的核心芯片(U5),型号为:STM32F103ZET6。该芯片具有64KB SRAM、512KB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口、1个FSMC接口以及112个通用IO口。
STM32 USB口
    这是开发板板载的一个MiniUSB头(USB),用于STM32与电脑的USB通讯,通过此MiniUSB头,开发板就可以和电脑进行USB通信了。开发板总共板载了2个MiniUSB头,一个用于USB转串口,连接CH340G芯片;另外一个用于STM32内带的USB。
    同时开发板可以通过此MiniUSB头供电,板载两个MiniUSB头(不共用),主要是考虑了使用的方便性,以及可以给板子提供更大的电流(两个USB都接上)这两个因素。
10.   后备电池接口
    这是STM32后备区域的供电接口,可以用来给STM32的后备区域提供能量,在外部电源断电的时候,维持后备区域数据的存储,以及RTC的运行。
USB转串口
    这是开发板板载的另外一个MiniUSB头(USB_232),用于USB连接CH340G芯片,从而实现USB转串口。同时,此MiniUSB接头也是开发板电源的主要提供口。
OLED/摄像头模块接口
    这是开发板板载的一个OLED/摄像头模块接口(P8),如果是OLED模块,靠左插即可(右边两个孔位悬空)。如果是摄像头模块(ALIENTEK提供),则刚好插满。通过这个接口,可以分别连接2个外部模块,从而实现相关实验。
13.   有源蜂鸣器
    这是开发板的板载蜂鸣器(BEEP),可以实现简单的报警/闹铃。让开发板可以听得见。
14.   红外接收头
    这是开发板的红外接收头(U14),可以实现红外遥控功能,通过这个接收头,可以接受市面常见的各种遥控器的红外信号,大家甚至可以自己实现万能红外解码。当然,如果应用得当,该接收头也可以用来传输数据。
    战舰STM32开发板给大家配备了一个小巧的红外遥控器,该遥控器外观如图1.2.1.1所示:

图 1.2.1.1 红外遥控器
15. DS18B20/DHT11接口
    这是开发板的一个复用接口(U13),该接口由4个镀金排孔组成,可以用来接DS18B20/DS1820等数字温度传感器。也可以用来接DHT11这样的数字温湿度传感器。实现一个接口,2个功能。不用的时候,大家可以拆下上面的传感器,放到其他地方去用,使用上是十分方便灵活的。
16. 2个LED灯
    这是开发板板载的两个LED灯(DS0和DS1),DS0是红色的,DS1是绿色的,主要是方便大家识别。这里提醒大家不要停留在51跑马灯的思维,搞这么多灯,除了浪费IO口,实在是想不出其他什么优点。
我们一般的应用2个LED足够了,在调试代码的时候,使用LED来指示程序状态,是非常不错的一个辅助调试方法。战舰STM32开发板几乎每个实例都使用了LED来指示程序的运行状态。  
17. 启动选择端口
    这是开发板板载的启动模式选择端口(BOOT),STM32有BOOT0(B0)和BOOT1(B1)两个启动选择引脚,用于选择复位后STM32的启动模式,作为开发板,这两个是必须的。在开发板上,我们通过跳线帽选择STM32的启动模式。关于启动模式的说明,请看2.1.8小节。
18. 复位按钮
     这是开发板板载的复位按键(RESET),用于复位STM32,还具有复位液晶的功能,因为液晶模块的复位引脚和STM32的复位引脚是连接在一起的,当按下该键的时候,STM32和液晶一并被复位。
19. 参考电压选择端口
    这是STM32的参考电压选择端口(P7),我们默认是接开发板的3.3V和GND。如果大家想设置其他参考电压,只需要把你的参考电压源接到REF-和REF+上即可。
20. WK_UP及3个普通按钮
     这是开发板板载的4个机械式输入按键(KEY0、KEY1、KEY2和WK_UP),其中WK_UP具有唤醒功能,该按键连接到STM32的WAKE_UP(PA0)引脚,可用于待机模式下的唤醒,在不使用唤醒功能的时候,也可以做为普通按键输入使用。
其他3个是普通按键,可以用于人机交互的输入,这3个按键是直接连接在STM32的IO口上的。这里注意WK_UP是高电平有效,而KEY0、KEY1和KEY2是低电平有效,大家在使用的时候留意一下。
21. 触摸按钮
    这是开发板板载的一个电容触摸输入按键(TPAD),用于实现触摸按键。现在触摸按键非常流行,所以我们在开发板上也设计了一个,咱得跟上时代的步伐。
22. 电源指示灯
    这是开发板板载的一颗蓝色的LED灯(PWR),用于指示电源状态。在电源开启的时候(通过板上的电源开关控制),该灯会亮,否则不亮。通过这个LED,可以判断开发板的上电情况。
23. 多功能端口
    这里大家可别小看这6个排针,这可是本开发板设计的很巧妙的一个端口(由P3和P14组成),这组端口通过组合可以实现的功能有:ADC采集、DAC输出、PWM DAC输出、外部音频输入、电容触摸按键、DAC音频、PWM DAC音频、DAC ADC自测等,所有这些,你只需要1个跳线帽的设置,就可以逐一实现。
24. MIC(咪头)
    这是开发板的板载录音输入口(MIC),该咪头直接接到VS1053的输入上,可以用来实现录音功能。
25. 录音输入接口
    这是开发板板载的外部录音输入接口(LINE_IN),通过咪头我们只能实现单声道的录音,而通过这个LINE_IN,我们可以实现立体声录音。
26. MIC选择口
    这是开发板板载录音的接入选择口(P2),如果使用LINE_IN录音的时候,我们把P2断开,以排除来自咪头的干扰信号,从而可以更好的立体声录音。而使用咪头录音的时候,我们短接P2即可。
27. 耳机输出接口
    这是开发板板载的音频输出接口(PHONE),战舰STM32开发板有多个音频输出(VS1053/收音机/PWM DAC等),通过74HC4052实现音频选择,输入到TDA1308,再输出到该音频输出口,实现开发板的音频输出。
28. VS1053 IIS输出口
    这是VS1053的IIS输出接口(P1),该接口可以用来连接外部DAC,实现更好的音质输出。其实我觉得VS1053本身的音频DAC已经很好了。这个接口适合发烧友使用。
29. 5V电源输入/输出
    这是开发板板载的一组5V电源输入输出排针(2*3)(VOUT2),用于给外部提供5V的电源,也可以用于从外部取5V的电源给板子供电。
大家在实验的时候可能经常会为没有5V电源而苦恼不已,有了ALIENTEK战舰STM32开发板,你就可以很方便的拥有一个简单的5V电源(最大电流不能超过500ma)。
30. 3.3V电源输入/输出
    这是开发板板载的一组3.3V电源输入输出排针(2*3)(VOUT1),该排针用于给外部提供3.3V的电源,也可以用于从外部取3.3V的电源给板子供电。
同样大家在实验的时候可能经常会为没有3.3V电源而苦恼不已,ALIENTEK充分考虑到了大家需求,有了这组3.3V排针,你就可以很方便的拥有一个简单的3.3V电源(最大电流不能超过500ma)。
31. ADXL345加速度传感器
    这是开发板板载的一个3轴加速度传感器(U11),ADXL345分辨率高(13位),测量范围大(±16g),可以通过SPI/IIC访问,战舰开发板采用IIC访问它。有了这个,大家就可以实现一些比较有意思的应用(比如测量倾角等)
32. 电源开关
    这是开发板板载的电源开关(K1)。该开关用于控制整个开发板的供电,如果切断,则整个开发板都将断电,电源指示灯(PWR)会随着此开关的状态而亮灭。
33. DC6~16V电源输入
    这是开发板板载的一个外部电源输入口(DC_IN),采用标准的直流电源插座。开发板板载了DC-DC芯片(MP2359),用于给开发板提供高效、稳定的5V电源。由于采用了DC-DC芯片,所以开发板的供电范围十分宽,大家可以很方便的找到合适的的电源(只要输出范围在DC6~16V的基本都可以)来给开发板供电。特别注意:如果你使用的是战舰V2.0以前的版本,输入电压建议不要超过9V!切记不能超过12V!战舰V2.0及以后的版本才支持DC6~16V的宽输入范围。
34. FM收发天线接口
    这个是开发板板载FM收发芯片的天线接口(ANT),同时我们安装有天线在这个上面。通过这个天线,可以很好的实现FM收音和FM发射。
35. RS485总线接口
    这是开发板板载的RS485总线接口(RS485),通过3个端口和外部485设备连接。一般情况下,只需要连接2个端口即可,即A和B,并不需要连接GND。这里提醒大家,RS485通信的时候,必须A接A,B接B。否则可能通信不正常!
36. RS232/485选择接口
    这是开发板板载的RS232/485选择接口(P9),因为RS485基本上就是一个半双工的串口,为了节约IO,我们把RS232和RS485共用一个串口,通过P9来设置当前是使用RS232还是RS485。当然,这样的设计还有一个好处。就是我们的开发板既可以充当RS232到TTL串口的转换,又可以充当RS485到TTL485的转换。(注意,这里的TTL高电平是3.3V)
37. RS232接口
    这是开发板板载的RS232接口(COM),通过一个标准的DB9母头和外部的串口连接。通过这个接口,我们可以连接带有串口的电脑或者其他设备,实现串口通信。
38. 24C02 EEPROM
    这是开发板板载的EEPROM芯片(U15),容量为2Kb,也就是256字节。用于存储一些掉电不能丢失的重要数据,比如系统设置的一些参数/触摸屏校准数据等。有了这个就可以方便的实现掉电数据保存。
39. PS/2鼠标/键盘接口
     这是开发板板载的一个标准PS/2母头(PS/2),用于连接电脑鼠标和键盘等PS/2设备。
通过PS/2口,我们仅仅需要2个IO口,就可以扩展一个键盘,所以大家不必要对板上只有4个按键而感到担忧。ALIENTEK提供了标准的鼠标驱动例程,方便大家学习PS/2协议。
40. 游戏手柄接口
    这是开发板板载的一个9针游戏手柄接口(JOY_PAD),可以用来连接FC手柄(红白机/小霸王游戏机手柄),这样大家可以在开发板上编写游戏程序,直接通过手柄玩游戏了。我们的综合实验提供有一个简单的NES模拟器,大家可以直接从网上下载nes游戏,放到开发板上玩。
41. LCD/OLED模块接口
    这是战舰STM32开发板的又一个特色设计,一个接口,兼容多种模块。如果是OLED模块,请靠左侧插。如果是LCD模块,则靠右侧插。OLED模块支持ALIENTEK的单色/双色OLED模块。LCD模块则支持ALIENTEK的2.4/2.8/3.5寸LCD模块,并且支持触摸屏功能。
42. CAN总线接口
    这是开发板板载的CAN总线接口(CAN),通过3个端口和外部CAN总线连接。一般情况下,只需要连接2个端口即可,即CANH和CANL,并不需要连接GND。这里提醒大家,CAN通信的时候,必须CANH接CANH,CANL接CANL。否则可能通信不正常!
43. NRF24L01模块接口
    这是开发板板载的NRF24L01模块接口(U7),只要插入模块,我们便可以实现无线通信,从而使得我们板子具备了无线功能,但是这里需要2个模块和2个开发板同时工作才可以。如果只有1个开发板或1个模块,是没法实现无线通信的。
1.2.2软件资源说明
  战舰STM32开发板提供的标准例程多达57个,一般的STM32开发板仅提供库函数代码,而我们则提供寄存器和库函数两个版本的代码(本指南以寄存器版本作为介绍)。我们提供的这些例程,基本都是原创,拥有非常详细的注释,代码风格统一、循序渐进,非常适合初学者入门。
战舰STM32开发板的例程列表如下表所示:

表1.2.2.1.JPG (158.11 KB )

表1.2.2.1.JPG
沙发
zhuweichang| | 2013-1-6 13:38 | 只看该作者
有源码吗,能提供下源码看看嘛

使用特权

评论回复
板凳
zhangyang86| | 2013-1-6 13:41 | 只看该作者
zhuweichang 发表于 2013-1-6 13:38
有源码吗,能提供下源码看看嘛

资料下载帖子:https://bbs.21ic.com/forum.php?mod=viewthread&tid=383614

使用特权

评论回复
地板
戒指320| | 2013-1-6 22:46 | 只看该作者
广告,鉴定完毕

使用特权

评论回复
5
正点原子|  楼主 | 2013-1-7 12:02 | 只看该作者
戒指320 发表于 2013-1-6 22:46
广告,鉴定完毕

后续慢慢传实例的.

使用特权

评论回复
6
jinanwt| | 2013-1-7 21:39 | 只看该作者

谢谢

使用特权

评论回复
7
er357951| | 2013-1-15 23:35 | 只看该作者
原子兄,二姨家的32板块没有***火,你得板子还要多多宣传啊,很好的32板。
另外希望原子兄能继续开发f4的板子,完爆现在不专业淘宝那些不入流的二线板,我们都看好你的。

使用特权

评论回复
8
jslixiaochen| | 2013-1-16 15:42 | 只看该作者
个人还是很佩服正点原子的,希望能更上一层楼!

使用特权

评论回复
9
正点原子|  楼主 | 2013-1-16 17:56 | 只看该作者
谢谢大家支持。

使用特权

评论回复
10
renhaidulang| | 2013-7-28 22:35 | 只看该作者
悲剧呀,我的板子买早了,没看到这个帖子,悔呀

使用特权

评论回复
11
do_best| | 2013-11-9 10:45 | 只看该作者
不错,准备买一个

使用特权

评论回复
12
小营十一郎| | 2013-11-9 11:22 | 只看该作者
买不起。。。

使用特权

评论回复
13
lijunlinv| | 2013-11-10 22:00 | 只看该作者
板子好贵啊,学生买不起,希望能便宜点

使用特权

评论回复
14
outstanding| | 2013-11-11 08:17 | 只看该作者
:lol  原子哥来了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的STM32开发板店铺:http://openedv.taobao.com 我的技术论坛论坛:www.openedv.com

91

主题

264

帖子

71

粉丝