摘要
STM8S103F3作为意法半导体推出的入门级8位微控制器,凭借高性价比、低功耗特性及丰富的外设资源,广泛应用于智能家居、工业控制、消费电子等领域。最小系统是嵌入式开发的核心基石,是保障单片机独立运行的极简硬件架构。本文以Altium Designer 20为设计工具,围绕STM8S103F3最小系统展开全流程讲解,涵盖原理图绘制的核心原理、元件选型逻辑,以及PCB设计中的网络类创建、布线规则设置、铺铜技巧等关键环节。文章兼顾理论深度与实操细节,旨在帮助电子工程师、高校学生快速掌握STM8S103F3最小系统的设计方法,为后续项目开发奠定坚实基础。
一、STM8S103F3最小系统核心原理与元件选型
1.1 最小系统核心组成
STM8S103F3单片机的最小系统由电源模块、复位模块、时钟模块、程序下载接口及单片机核心构成,四大模块各司其职,共同保障芯片稳定运行:
• 电源模块:为单片机及外设提供稳定的工作电压;
• 复位模块:实现芯片上电复位与手动复位,确保程序从初始地址执行;
• 时钟模块:提供系统时钟信号,决定单片机指令执行速度;
• 下载接口:用于程序烧录与在线调试,是开发过程中的关键通道。
1.2 核心元件选型
(1)单片机核心:STM8S103F3P6
STM8S103F3P6是一款基于STM8内核的8位微控制器,采用TSSOP20封装,具备16KB Flash、1KB RAM、1KB EEPROM,外设包含2个16位定时器、1个UART接口、1个SPI接口、18个通用I/O口,工作电压范围为2.95V-5.5V,支持低速、中速、高速三种时钟模式,满足低功耗与高性能的双重需求。
(2)电源模块元件选型
STM8S103F3支持宽电压输入,但为保证稳定性,推荐采用3.3V作为核心工作电压。电源模块可选择两种供电方案:
• USB转3.3V供电:选用CH340C芯片实现USB转串口,同时通过其内置的3.3V稳压电路输出电源,适合实验室调试场景;
• 外置电源供电:采用AMS1117-3.3稳压芯片,输入电压范围5V-12V,输出稳定3.3V,最大输出电流1A,适合外接电源的工业场景。
• 滤波元件:输入端并联1000μF电解电容(滤除低频干扰)和0.1μF瓷片电容(滤除高频噪声);输出端并联470μF电解电容和0.1μF瓷片电容,形成高低频滤波网络,保障电源纯净度。
(3)复位模块元件选型
STM8S103F3的复位引脚为NRST(低电平有效),复位电路采用上电复位+手动复位的组合方案:
• 上电复位:由10kΩ上拉电阻和10μF电解电容组成,上电瞬间电容充电,NRST引脚拉低,实现上电复位;
• 手动复位:并联一个常开轻触开关,按下开关时NRST引脚接地,强制触发复位。
(4)时钟模块元件选型
STM8S103F3支持内部时钟(HSI) 和外部时钟(HSE) 两种模式,本文采用外部时钟方案以提升时序精度:
• 晶振:选用8MHz无源晶振,兼顾时钟精度与功耗,是STM8系列单片机的常用选型;
• 负载电容:晶振两端各串联一个22pF瓷片电容,电容另一端接地,用于稳定晶振频率,避免频率漂移。
(5)下载接口元件选型
STM8S103F3支持SWIM(Single Wire Interface Module) 单总线调试下载,仅需SWIM引脚和GND引脚即可实现程序烧录,无需额外串口资源。接口选用2Pin排针,串联1kΩ限流电阻,防止电流过大损坏芯片引脚。
二、STM8S103F3最小系统原理图绘制(基于Altium Designer 20)
2.1 前期准备:项目创建与元件库加载
1. 新建PCB项目:打开Altium Designer 20,点击菜单栏【文件】→【新的】→【项目】→【PCB项目】,命名为“STM8S103F3最小系统.PrjPcb”,选择合适的保存路径。
2. 新建原理图文件:右键点击项目名称,选择【添加新的】→【Schematic】,生成默认原理图文件,重命名为“STM8S103F3最小系统原理图.SchDoc”并保存。
3. 元件库加载:点击右侧【Libraries】面板,选择【File-based Libraries Preferences】,添加所需元件库:
◦ 自带库:Miscellaneous Devices.IntLib(电阻、电容、开关、排针等)、STMicroelectronics STM8S Series.IntLib(STM8S103F3单片机);
◦ 第三方库:若自带库缺少CH340C、AMS1117-3.3等元件,需下载对应的原理图库并加载。
2.2 元件放置与模块绘制
(1)核心元件放置
点击【放置】→【元件】,在搜索栏输入元件名称,依次调出STM8S103F3P6、AMS1117-3.3、8MHz晶振、10kΩ电阻、10μF电容、2Pin排针等元件,按模块分类摆放:将STM8S103F3P6放置在原理图中央,电源模块、复位模块、时钟模块、下载接口分别置于芯片四周,避免线路交叉。
(2)电源模块绘制
• 供电输入:绘制DC插座或USB接口,作为电源输入端口;
• 稳压电路:将AMS1117-3.3的输入端(Vin)连接至输入电源,接地端(GND)连接至系统地,输出端(Vout)连接至3.3V网络;
• 滤波电路:在AMS1117-3.3输入端并联1000μF电解电容C1和0.1μF瓷片电容C2,输出端并联470μF电解电容C3和0.1μF瓷片电容C4;
• 电源指示:串联1kΩ限流电阻R1和LED发光二极管D1,一端接3.3V网络,一端接地,上电后LED点亮,指示电源状态。
(3)复位模块绘制
• 上电复位:将10kΩ上拉电阻R2一端接3.3V网络,另一端接NRST引脚;10μF电解电容C5一端接NRST引脚,另一端接地;
• 手动复位:将轻触开关S1并联在电容C5两端,常态下开关断开,按下时NRST引脚接地,触发复位。
(4)时钟模块绘制
将8MHz晶振Y1的两个引脚分别连接至STM8S103F3的CLK_IN和CLK_OUT引脚,晶振两端各串联一个22pF瓷片电容C6、C7,电容另一端接地,形成外部振荡电路。
(5)下载接口绘制
绘制2Pin排针J1,Pin1连接至STM8S103F3的SWIM引脚,串联1kΩ限流电阻R3;Pin2连接至系统地,用于程序烧录。
(6)I/O端口预留
STM8S103F3的18个通用I/O口(PA0-PA7、PB0-PB7、PC0-PC3)通过排针引出,便于后续连接传感器、执行器等外设。需注意,部分I/O口与时钟、复位引脚复用,绘制时需标注清楚引脚功能。
2.3 电气连接与网络标签设置
1. 模块连线:点击【放置】→【线】,将各模块按电气原理连接:电源模块的3.3V网络连接至单片机的VDD引脚,GND网络连接至VSS引脚;复位模块的NRST引脚连接至单片机复位端;时钟模块的CLK_IN、CLK_OUT连接至对应引脚;下载接口的SWIM引脚连接至单片机调试端。
2. 网络标签优化:对于交叉较多的线路,使用【放置】→【网络标签】标注,如“3.3V”“GND”“SWIM”等,相同标签的引脚视为导通,简化布线。例如,所有电源引脚标注“3.3V”,所有接地引脚标注“GND”。
3. 电气规则检查:点击【工具】→【Electrical Rules Check】,勾选短路、未连接引脚、引脚悬空等检查项,执行检查。根据检查报告修改错误,确保电路逻辑无误。
2.4 原理图优化与保存
1. 元件编号与参数标注:点击【工具】→【标注】→【标注原理图】,为所有元件分配唯一编号(如R1、C1、U1等);双击元件注释,填写具体参数(如R1=1kΩ、C1=1000μF、Y1=8MHz)。
2. 添加模块说明:使用【放置】→【文本字符串】,在各模块区域添加注释(如“3.3V稳压模块”“SWIM下载接口”),提升原理图可读性。
3. 绘制边框与标题栏:点击【放置】→【Sheet Border】绘制边框,添加【Title Block】填写项目名称、设计者、日期等信息,保存原理图文件。
三、STM8S103F3最小系统PCB设计(基于Altium Designer 20)
3.1 前期准备:原理图更新与PCB文件创建
1. 生成网络表:在原理图界面点击【设计】→【工程的网络表】→【Altium Designer】,生成网络表文件。
2. 新建PCB文件:右键点击项目名称,选择【添加新的】→【PCB】,生成默认PCB文件,重命名为“STM8S103F3最小系统PCB.PcbDoc”并保存。
3. 导入网络表:在PCB界面点击【设计】→【Import Changes From STM8S103F3最小系统.PrjPcb】,在弹出的对话框中点击【执行变化】,将原理图中的元件与网络导入PCB文件。
3.2 网络类创建(PWR电源网络类)
1. 点击【设计】→【类】→【网络类】,打开网络类编辑对话框;
2. 点击【添加】,创建新的网络类,命名为PWR;
3. 在右侧网络列表中,选中5V、3V3、VCAP、GND网络,点击【添加到类】,将其加入PWR网络类,点击【确定】保存设置。
3.3 布线规则设置
布线规则是PCB设计的核心,直接影响电路板的稳定性与抗干扰能力。根据需求,设置以下规则:
(1)最小间距规则
1. 点击【设计】→【规则】,打开PCB规则编辑器;
2. 展开【Electrical】→【Clearance】,右键点击【Clearance】选择【新规则】;
3. All对象最小间距:设置规则名称为“All_Clearance”,适用范围为“All”,最小间距值设为6mil;
4. Copper与Via最小间距:新建规则“Copper_Via_Clearance”,适用范围为“Object Kind Is Copper And Object Kind Is Via”,最小间距设为6mil;
5. Copper与其余对象最小间距:新建规则“Copper_Others_Clearance”,适用范围为“Object Kind Is Copper And Not Object Kind Is Via”,最小间距设为10mil。
(2)线宽规则
1. 展开【Routing】→【Width】,右键点击【Width】选择【新规则】;
2. All网络线宽:设置规则名称为“All_Width”,适用范围为“All”,最小线宽10mil,优先线宽10mil,最大线宽10mil;
3. PWR网络类线宽:新建规则“PWR_Width”,适用范围选择“Net Class”→“PWR”,最小线宽10mil,优先线宽15mil,最大线宽20mil;
4. 调整规则优先级:将PWR_Width规则优先级设为高于All_Width,确保电源网络优先应用宽线宽规则。
(3)布线层规则
展开【Routing】→【Routing Layers】,勾选Top Layer(顶层) 和Bottom Layer(底层),设置为双层布线;其余层保持默认关闭状态。
(4)过孔参数规则
展开【Routing】→【Vias】,新建规则“Via_Size”,适用范围为“All”,设置孔径大小12mil,孔直径24mil,点击【确定】保存所有规则。
3.4 元器件布局
元器件布局遵循“紧凑合理、功能分区、缩短连线”的原则:
1. 核心元件居中:将STM8S103F3P6放置在PCB板中央,采用TSSOP20封装,引脚间距0.65mm,便于焊接;
2. 电源模块靠边:将AMS1117-3.3、DC插座、滤波电容等电源元件放置在PCB板边缘,远离核心芯片,减少电源干扰;
3. 高频元件就近放置:将8MHz晶振及负载电容靠近单片机的CLK_IN、CLK_OUT引脚,缩短线路长度,降低电磁干扰;
4. 接口元件朝外:将SWIM下载接口、I/O排针放置在PCB板边缘,便于外接设备连接。
3.5 布线操作
1. 手动布线:点击【布线】→【交互式布线】,优先布PWR网络类的电源线(3.3V、5V、GND),采用15mil宽线宽;再布时钟线、复位线、SWIM线,采用10mil线宽;最后布I/O口线。布线时避免锐角和直角,转角采用45°角,减少信号反射。
2. 过孔使用:当顶层线路与底层线路交叉时,放置过孔切换布线层,过孔参数严格遵循12mil孔径、24mil直径的设置。
3. 布线检查:点击【工具】→【设计规则检查】,执行布线规则检查,修正线宽、间距等不符合规则的问题。
3.6 铺铜操作
铺铜可增强电路板的抗干扰能力,降低接地电阻,提升电路稳定性。根据需求,设置以下铺铜规则:
(1)顶层局部铺铜
1. 点击【放置】→【铺铜】,打开铺铜属性对话框;
2. 设置铺铜网络:依次选择5V、3V3、VCAP、GND网络;
3. 设置铺铜范围:使用【放置】→【禁止布线区】,为每个电源网络划定铺铜区域,仅在对应区域内铺铜;
4. 铺铜属性:勾选“移除死铜”,选择“实心铺铜”,最小环宽设为10mil,点击【确定】完成顶层局部铺铜。
(2)底层全板铺铜
1. 点击【放置】→【铺铜】,设置铺铜网络为GND;
2. 铺铜范围:选择覆盖整个PCB板(在禁止布线区内);
3. 铺铜属性:勾选“移除死铜”“连接到网络”,连接方式选择“热焊盘”,点击【确定】完成底层全板铺铜。
(3)顶层GND铺铜过孔缝合
1. 点击【放置】→【过孔】,设置过孔参数为12mil孔径、24mil直径;
2. 在顶层GND铺铜区域均匀放置过孔,过孔另一端连接至底层GND铺铜;
3. 过孔间距建议设为200mil-300mil,确保顶层与底层GND网络良好导通,增强接地效果。
3.7 PCB后期优化与导出
1. 丝印层标注:在丝印层添加元件编号、参数及模块说明,便于焊接与维护;
2. 泪滴添加:点击【工具】→【泪滴焊盘】,为所有焊盘和过孔添加泪滴,增强连接强度,防止焊接时焊盘脱落;
3. 文件导出:点击【文件】→【另存为】,导出Gerber文件用于电路板打样;或导出PDF文件用于文档存档。
四、常见问题排查与设计优化建议
4.1 常见问题排查
(1)单片机上电不工作
• 电源问题:用万用表测量3.3V输出是否稳定,若电压偏低,检查滤波电容是否虚焊、AMS1117-3.3是否接反;
• 复位问题:测量NRST引脚电平,上电后应出现“低电平→高电平”跳变,若无跳变,检查复位电阻、电容取值是否正确;
• 时钟问题:用示波器测量CLK_OUT引脚是否有8MHz时钟信号,若无信号,检查晶振是否虚焊、负载电容是否匹配。
(2)程序无法下载
• 接线问题:确认SWIM下载接口的接线是否正确,SWIM引脚是否串联限流电阻,GND是否共地;
• 驱动问题:安装STM8烧录工具(如STVP)对应的驱动程序,确保电脑识别下载器;
• 芯片锁定:若芯片被锁定,需通过SWIM接口执行解锁操作,再重新烧录程序。
4.2 设计优化建议
1. 抗干扰优化:在单片机VDD与VSS引脚之间并联0.1μF去耦电容,靠近引脚放置,减少电源噪声干扰;时钟线路采用地线包围,降低电磁辐射;
2. 散热优化:AMS1117-3.3稳压芯片工作时会发热,可在芯片下方铺铜增大散热面积,或添加小型散热片;
3. 扩展性优化:预留I2C、SPI、UART等外设接口排针,便于后续连接LCD显示屏、温湿度传感器等模块;
4. 焊接优化:选用0805封装的电阻电容,减小PCB板面积;单片机采用TSSOP20封装,若焊接难度大,可选用转接板转换为DIP封装。
五、总结
STM8S103F3最小系统的设计是嵌入式开发的入门必修课,原理图绘制的核心是理解各模块的电气原理,PCB设计的关键是遵循布线规则与铺铜技巧。本文以Altium Designer 20为工具,从原理分析、元件选型到原理图绘制、PCB设计,构建了一套完整的设计流程。通过本文的学习,读者不仅能掌握STM8S103F3最小系统的设计方法,更能理解嵌入式硬件设计的核心逻辑。
在实际开发中,建议先通过Proteus仿真验证电路逻辑,再进行PCB打样与焊接调试,提高项目成功率。随着技术的深入,可在此基础上扩展电机驱动、传感器采集等功能,实现更复杂的嵌入式应用。
我借鉴这位博客的博文有很大收获
https://blog.csdn.net/2401_83704218/article/details/137428484?fromshare=blogdetail&sharetype=blogdetail&sharerId=137428484&sharerefer=PC&sharesource=qq_70686967&sharefrom=from_link