原文链接:http://club.szlcsc.com/article/details_2665_1.html
经作者授权发布,并标注原创进行版权保护。
1.作品简介
STM32F070F6P6 是ST公司新出品不久的一款 ARM Cortex-M0芯片,内置 32 Kbytes Flash,6K SRAM,12Bit ADC,运行主频48MHZ,支持USB 2.0 SLAVE通信接口,更重要的是它是TSSOP20封装的!曾经在立创商城上,有个SHT30温湿度计的方案验证板,但该设计有个麻烦的地方,那就是需要另外接串口装置才能观察到MCU测量得到的SHT30温湿度数据。为此本人,决定用带这款支持USB通讯功能的STM32F0x0超值系列ARM芯片--- STM32F070F6P6,结合温湿度传感器AM2320,制作一款USB温湿度计。它使用很简单:直接插入PC机的USB端口,然后打开串口助手之类的软件,即可观察到现场的温湿度数据。通过这个制作,大家可以学习一下AM2320的I2C和单总线的驱动方法,还有如何使用ST的Cube MX软件来实现一个USB转串口(USB TO CDC)的通信设备。
2.作品亮点
①无需额外仪器装置,直插到PC后运行串口助手软件即可观察到实时的温湿度数据。
②采用引脚紧凑、低成本、同时支持USB通信的Cortex-M0 AMR STM32F070作为主控。
③使用出厂时己校准数字信号输出的AM2320作为传感器单元。插件,极易好焊接!
④温度分辨率是:±0.1度,精度±0.5度;湿度分辨率: ±0.1%RH,精度:±3%RH
⑤提供2种演示范例,支持单总线和标准I2C 两种通信方式来驱动AM2320传感器。
⑥板上STM32F070的全部I/O都被引出,可当作一个低廉的最小系统板、开发板使用。
⑦本方案验证板采用USB BUS总线供电,无需额外再提供电源。
3.系统构架图
系统解说:本系统有二大部分组成,分别是:支持USB通信的ARM Cortex-M0主控芯片 STM32F070F6P6和AM2320数字式温湿度传感器。
4.原理图
原理图分为多个部分,下面逐个介绍:
第一部分: 电源供电和USB通信接口部分
备注说明:上图中,P1是一个Mini USB接口的USB母座,系统从USB获取电源。数据线USB_D-和USB_D+直接连接到ARM 芯片STM32F070F6P6的USB通信引脚,这个ARM内置1.5K的上拉电阻,所以外部可省。LED1是一个电源指示灯,而D1主要是防止电压源接反和分压的左右。
第二部分:主控部分
备注说明:如上图所示,主控只有一个ARM Cortex-M0芯片STM32F070F6P6,该PCB板在设计时,把STM32F070F6P6的I/O 按1对1 的方式,全部引到了P4和P5的P2.54连接器上,方便扩展使用。可见,该板也可以当作一个低廉的最小系统板、开发板使用。
第三部分:温湿度采集单元和接口部分
备注说明:如上图所示,数字式温湿度传感器AM2320插入P3接口,即可连接到STM32F070F6P6处理器的相应IO上。AM2320支持单总线和标准I2C 两种通信方式,当采用单总线通信时,SCL短接到PIN3 GND即可。特别是这种单总线接口,使系统集成变得简易快捷,极低的功耗,信号传输距离可达 20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。两种通信方式都采用直接输出经温度补偿后的湿度、温度及校验 CRC 等数字信息,用户无需对数字输出进行二次计算,也无需要对湿度进行温度补偿,便可得到准确的温湿度信息。两种通信方式可自由切换,用户可自由选择,使用方便,应该领域广泛。
第四部分:外部晶振电路和ST-LINK2下载口。
备注说明:如上图所示,P2是用来仿真和烧录的下载口,需要特别指出的是:如果SWD接口使用的是非上电后默认的SWD引脚,那么必须把NRST这个引脚也需要引到P2接口上才能令ST-LINK /V2 仿真器正常工作。8MHz的晶振经过内部PLL电路后,产生48MHZ的主频,供ARM芯片STM32F070F6P6使能USB通信时使用。经试验证明,如果不用外部的这8MHz时钟,而是使用内部的8MHz时钟,USB通信也是能正常工作的,但不太建议那样使用,毕竟外部的石英晶振频率更精确。
第五部分:复位电路和启动模式选择电路。
备注说明: STM32F070F6P6 为低电平复位,而跳线JMP1是选择CPU从FLASH,还是从SRAM,或是系统固件区启动。正常情况下,我们从FLASH 启动,此时JMP1的Pin1&Pin2短接即可。
5.材料清单(BOM列表)
以下是这个电子制作的BOM列表,器件全部采购来自立创商城(http://www.szlcsc.com),PCB板的制造在深圳嘉立创完成。
Comment |
Deion |
Designator |
Footprint |
Quantity |
商品编号 |
105/50V |
电容器 |
C1, C3 |
LC-0805_C |
2 |
C29822 |
104/50V |
电容器 |
C2, C4, C5, C12 |
LC-0805_C |
4 |
C83055 |
20pF |
电容器 |
C6, C7 |
LC-0805_C |
2 |
C1798 |
1N4007W |
通用二极管 |
D1 |
LC-SOD-123F |
1 |
C64898 |
LED0 |
LED灯 |
LD1 |
LC-0805_LED_S1 |
1 |
C84256 |
Mini USB |
Mini USB |
P1 |
Mini_USB |
1 |
C91144 |
Header 2 |
Header, 2-Pin |
JMP1 |
HDR1X2 |
1 |
|
Header 4 |
Header, 4-Pin |
P2 |
HDR1X4 |
1 |
|
Header 4 |
Header, 4-Pin |
P3 |
外接AM2320 |
1 |
|
Header 10 |
Header, 10-Pin |
P4, P5 |
HDR1X10 |
2 |
|
10K |
电阻器 |
R1, R3, R4, R5,R13 |
LC-0805_R |
5 |
C25612 |
100K |
电阻器 |
R2 |
LC-0805_R |
1 |
C25611 |
STM32F070F6P6 |
ARM_IC |
U1 |
LC-TSSOP-20 |
1 |
|
ME6210A33PG |
LDO |
U2 |
LC-SOT-89(SOT-89-3) |
1 |
|
AM2320 |
温湿度传感器 |
--- |
插件, 4Pins |
1 |
|
轻触开关/3x4x2 |
轻触开关 |
S1 |
TS3*4*2 |
1 |
C26638 |
8MHz |
晶体谐振器 |
Y1 |
YT-26M |
1 |
C2170 |
6.PCB实物图
7.软件部分的描述
限于篇幅,这里不太方便展示全部代码,比如USB通信实现和单总线、I2C总线驱动温湿度传感器AM2320等等。敬请大家在立创商城的方案验证板区域或立创社区BBS论坛里下载源码参考和阅读。需要指出的是,USB通信部分,本人直接采用了ST官方出品的STM32CubeMX软件,该软件是一个基于GUI界面配置软件,通过鼠标操作芯片的配置和功能,最终该软件即可自动产生初始化代码和一个应用程序框架范例。本电子制作就是使用这个默认生成的USB转串口(USB CDC协议)应用程序,然后添加相关的温湿度采集驱动完成的。
8.调试过程和应用实例
按前面提供的BOM清单,正常焊接完毕后,接着把HEX烧录到ARM STM32F070F6P6芯片,即可完成准备工作。随后,将USB电缆把该PCBA电路模块和电脑链接起来(如果Windows 系统提示需要安装驱动程序,那按默认位置按照即可)。最后,打开串口助手之类的软件,即可观察到现场的温度和湿度数据。本电子制作,有视频演示,具体请参阅立创商城的方案验证板区域或立创社区BBS论坛里相关链接。
9.总结
STM32F070F6P6 是一个内置USB功能、性价比很高的芯片,结合AM2320实现了比之前SHT30方案验证板更好的应用体验。该PCB板设计时,把STM32F070F6P6的全部I/O都引出了,因此,该板可当作一个低廉的最小系统板、开发板使用。如果想学习ARM Cortex-M0 芯片的应用,特别是USB总线通信的实现过程,那本文介绍的这个电子制作作品和PCB空板,是一个不错的入门选择!
此作品以方案验证板的形式出现,并得到了立创商城的赞助,在此表示非常感谢!顺此,授权立创商城对本作品进行宣传和开源!
XC6219B332MR/线性稳压器(LDO) | 0.153998 | |
PSM712-LF-T7/静电和浪涌保护(TVS/ESD) | 0.113312 | |
LM2903DR/比较器 | 0.225901 | |
LM2594M-5.0/DC-DC电源芯片 | 2.28 | |
PESD3V3L1BA/静电和浪涌保护(TVS/ESD) | 0.092657 | |
SN74LVC1G3157DBVR/模拟开关/多路复用器 | 0.227029 | |
PT4115/LED驱动 | 0.289769 | |
SN65LBC184DR/RS-485/RS-422芯片 | 1.48 | |
LTV-354T/晶体管输出光耦 | 0.263776 | |
AO3407A/场效应管(MOSFET) | 0.10326 |
50万+现货SKU
品类不断扩充中
科技智能大仓储
最快4小时发货
正品有保障
物料可追溯
明码标价节省时间
一站式采购元器件