STM32 及 及 STM8 调试心得
STM32 及 及 STM8 作为 性价比比较高的单片机, 在应用 电子领域 被 广
泛应用,但是, 由于 ST 公司 为降低成本,在芯片设计 时 ,芯片的可
靠性 做出 妥协,导致芯片故障率较高,性能 并非 十分稳定,这对我
们学生 而言 ,做前期调试时,会遇到各种各样奇葩问题, 为 使之 能
更方便 调试,可以从以下 方法 设计 单片机 系统
1 、 使用 现有 开发 版板,前期 大部分 程序在开发板上实现, 附
加模块 通过排针连接到开发板上 。
2 、 程序员 规划好 IO 的使用,并将 IO 口与 模块的接口 用 文档
写好, 并 告诉做硬件的人 。相反 ,硬件调试的要及时将硬
件 问题 告诉程序员, 并在 软件算法上做出修改以及优化
3 、 使用 模块化 编程 ,每个模块单独写好底层驱动, 单个 模块
调通后封装好 模块化 程序,留下 底层 程序接口供主程序 调
用 即可 。
4 、 STM32 的 芯片 四个 边的每 个 边都有个 VDD*和 和 VSS* , 都是
用于其 IO 电源去耦, 一般 上个 103,104,105 即可 ,具体看
芯片手册, 这 几个电容 与 单片机的具体位置可参照下图 :
由图 可以看到 电容位于 单片机 四角
5 、 这四个 电泳在 布线 上是有比较大的 讲究 的, 可以 看到电源
线 以及 地线是先经过电容后 进入 单片机的 VDD 和 和 VSS 引脚
的,具体如下:
可见 ,电流是从 DV3.3 的线经过电容后 进入 芯片的第 32 脚
后经 31 脚 流出,经过 电容后 流 回去
6 、 单片机的底部 使用大面积敷铜,可以降低 外部 空间辐射对
单片机的影响
7 、 此外 ,单片机板的电源处理还要结合星型 接地法 的原则,
换句话 说,每个模块的地线 最好 的 通过 一 对 单独的 电源
线 ,也就是 该模块 的 电源线和地线接入到稳压芯片过后的
大小 滤波电容 中电解电容 处 。在此 过程中 尽可能 不要经过
高频线 ( 如 晶振旁边 ) ,功率线 (如) 电机两端) , 方波线
( 如开关电源中 中 PWM ) 输出) 。具体 可以参照附件中的数控
制流 电源 STM32 控制板中 中 PCB 的设计,是 比较 标准的一个
星型接地 法 ,当然, 其中有一 部分是做出 妥协 的,再次不
做 描述
8 、 STM32 和 和 STM8 都 带有 AD 输入 和部分带有 DA 输出 ,单片
机 的模拟信号部分的 电源(地线 还有电源线)的稳定性 直
接 影响 AD 采样和 和 DA 输出的稳定性和杂波大小,因此在电
源设计时因 要 比较小心,可采用如 下方法 处理
图中被选中 部分
是 单片机 内部模拟 电路的电源滤波 方法,B3 和 和 B4 分别 是
磁珠,与两端的大小电容滤波构成了 2 个 个 Pi 滤波,可以很
好地滤除数字电路产生的电流杂波( 至于 此杂波如何产
生,请查阅积分变换中的拉普拉斯变换 以及 傅里叶 变换 ,
笔者无才 , 知其因 , 不知其 理) ) 。
9 、 在 设计电路时,我们还经常要在 STM32 的 电源 每组 两端加
入 稳压管 来吸收电流浪涌 并 钳位过冲电压 。 原因 是 在 从 稳
压 芯片到 STM32 每组 电源两端的电源铝 滤波 电容的距离一
般是比较长的,此时,导线上的寄生电感较大, 并与 电源
两端 电容 构成一个 LC 串联网络 如下 左 图
当上电时 ,稳压 芯片 迅速 输出电 压, 相当于 Ui 输入一个阶
跃信号, 此时 ,输出 应该 得到一个阻尼震荡的 波形, 如上右
GND
Ui Uo
图。 可以 看到,如果上冲的 电压 过高,即 图中 的第一个 波
峰 超过了芯片的极限的 电压 ,那么芯片 就 击穿了,加入一
个稳压管的作用是当 过冲电压超过 稳压管电压的话,立即
钳位,防止电压 继续 升高。 。 ( 至于 此 电压 波形如何产生,
那就去学着解一微分方程或者去拜访 拉普拉斯 或者是傅里
叶两位 老前辈) 吧) 。
10 、 如果单片机 某一 IO 口 的负载较重( 比如驱 动一个 大功率
MOS 管 ,或者 很多数字芯片时) 请在 IO 的输出端加上一
个图腾柱作为输出缓冲,如果 要从 3.3V 输出 控制 5V 或者
是十几伏的电压的话,请参照笔者以前的文档处理 ,在此
不作赘述 )
11 、 对于 一个电路系统,接入 某一 网络的原件越多 , 那么 该网
络出问题 的 概率 比较大,而一般出问题较多的是电源 和
地, 所以 一般是先测电源 和 地 , 此外,其他 网络 的问题也
比克忽视,一句话, 出了 问题不要 慌 , 赶快从 原理上找原
因。
12 、 要 调试一个电路,首先要对 电路 系统分模块调试, 接着 整
版调试。调试 前要 深刻理解电路原理,方可上电 调试 。
STM32 及 及 STM8 作为 性价比比较高的单片机, 在应用 电子领域 被 广
泛应用,但是, 由于 ST 公司 为降低成本,在芯片设计 时 ,芯片的可
靠性 做出 妥协,导致芯片故障率较高,性能 并非 十分稳定,这对我
们学生 而言 ,做前期调试时,会遇到各种各样奇葩问题, 为 使之 能
更方便 调试,可以从以下 方法 设计 单片机 系统
1 、 使用 现有 开发 版板,前期 大部分 程序在开发板上实现, 附
加模块 通过排针连接到开发板上 。
2 、 程序员 规划好 IO 的使用,并将 IO 口与 模块的接口 用 文档
写好, 并 告诉做硬件的人 。相反 ,硬件调试的要及时将硬
件 问题 告诉程序员, 并在 软件算法上做出修改以及优化
3 、 使用 模块化 编程 ,每个模块单独写好底层驱动, 单个 模块
调通后封装好 模块化 程序,留下 底层 程序接口供主程序 调
用 即可 。
4 、 STM32 的 芯片 四个 边的每 个 边都有个 VDD*和 和 VSS* , 都是
用于其 IO 电源去耦, 一般 上个 103,104,105 即可 ,具体看
芯片手册, 这 几个电容 与 单片机的具体位置可参照下图 :
由图 可以看到 电容位于 单片机 四角
5 、 这四个 电泳在 布线 上是有比较大的 讲究 的, 可以 看到电源
线 以及 地线是先经过电容后 进入 单片机的 VDD 和 和 VSS 引脚
的,具体如下:
可见 ,电流是从 DV3.3 的线经过电容后 进入 芯片的第 32 脚
后经 31 脚 流出,经过 电容后 流 回去
6 、 单片机的底部 使用大面积敷铜,可以降低 外部 空间辐射对
单片机的影响
7 、 此外 ,单片机板的电源处理还要结合星型 接地法 的原则,
换句话 说,每个模块的地线 最好 的 通过 一 对 单独的 电源
线 ,也就是 该模块 的 电源线和地线接入到稳压芯片过后的
大小 滤波电容 中电解电容 处 。在此 过程中 尽可能 不要经过
高频线 ( 如 晶振旁边 ) ,功率线 (如) 电机两端) , 方波线
( 如开关电源中 中 PWM ) 输出) 。具体 可以参照附件中的数控
制流 电源 STM32 控制板中 中 PCB 的设计,是 比较 标准的一个
星型接地 法 ,当然, 其中有一 部分是做出 妥协 的,再次不
做 描述
8 、 STM32 和 和 STM8 都 带有 AD 输入 和部分带有 DA 输出 ,单片
机 的模拟信号部分的 电源(地线 还有电源线)的稳定性 直
接 影响 AD 采样和 和 DA 输出的稳定性和杂波大小,因此在电
源设计时因 要 比较小心,可采用如 下方法 处理
图中被选中 部分
是 单片机 内部模拟 电路的电源滤波 方法,B3 和 和 B4 分别 是
磁珠,与两端的大小电容滤波构成了 2 个 个 Pi 滤波,可以很
好地滤除数字电路产生的电流杂波( 至于 此杂波如何产
生,请查阅积分变换中的拉普拉斯变换 以及 傅里叶 变换 ,
笔者无才 , 知其因 , 不知其 理) ) 。
9 、 在 设计电路时,我们还经常要在 STM32 的 电源 每组 两端加
入 稳压管 来吸收电流浪涌 并 钳位过冲电压 。 原因 是 在 从 稳
压 芯片到 STM32 每组 电源两端的电源铝 滤波 电容的距离一
般是比较长的,此时,导线上的寄生电感较大, 并与 电源
两端 电容 构成一个 LC 串联网络 如下 左 图
当上电时 ,稳压 芯片 迅速 输出电 压, 相当于 Ui 输入一个阶
跃信号, 此时 ,输出 应该 得到一个阻尼震荡的 波形, 如上右
GND
Ui Uo
图。 可以 看到,如果上冲的 电压 过高,即 图中 的第一个 波
峰 超过了芯片的极限的 电压 ,那么芯片 就 击穿了,加入一
个稳压管的作用是当 过冲电压超过 稳压管电压的话,立即
钳位,防止电压 继续 升高。 。 ( 至于 此 电压 波形如何产生,
那就去学着解一微分方程或者去拜访 拉普拉斯 或者是傅里
叶两位 老前辈) 吧) 。
10 、 如果单片机 某一 IO 口 的负载较重( 比如驱 动一个 大功率
MOS 管 ,或者 很多数字芯片时) 请在 IO 的输出端加上一
个图腾柱作为输出缓冲,如果 要从 3.3V 输出 控制 5V 或者
是十几伏的电压的话,请参照笔者以前的文档处理 ,在此
不作赘述 )
11 、 对于 一个电路系统,接入 某一 网络的原件越多 , 那么 该网
络出问题 的 概率 比较大,而一般出问题较多的是电源 和
地, 所以 一般是先测电源 和 地 , 此外,其他 网络 的问题也
比克忽视,一句话, 出了 问题不要 慌 , 赶快从 原理上找原
因。
12 、 要 调试一个电路,首先要对 电路 系统分模块调试, 接着 整
版调试。调试 前要 深刻理解电路原理,方可上电 调试 。
STM32及STM8硬件调试.7z
大小:7.24MB下载:4次转存:0次
