自己设计的板子程序死活烧录不进去,沉思三天后我悟了

之前点亮WS2812B的时候不是有提过画了个STC的板子嘛,本来想着打板出来测试一下,没问题的话就开源,然后再出个STC库函数的教程,结果前几天板子到了,焊接一下发现程序烧录不进去,然后我就傻眼了。

因为对STC32不是很了解,所以第一版我是跟着立创的莫工画的。下面是莫工开源的链接。

STC32G12K128核心板-串口下载 - 立创开源硬件平台STC重磅推出32位单片机,比传统的8051单片机越快70倍,设计简洁而不失精妙,STC32学习好帮手。使用嘉立创EDA专业版设计icon-default.png?t=O83Ahttps://oshwhub.com/wei-lai-dian-zi-gong-zuo-shi/zui-xiao-xi-tong-stc32g12k128

第一版基本和莫工开源的一样,不过我多加了个STC8。

由于是初版,所以我布局什么的都很随意,只要功能能实现就行,不过我还是犯了个初级错误。

看出问题了嘛小伙伴们。

我的丝印打错了。。。

STC32的引脚丝印都变成了P53。。。

不过问题不大,因为这一版本身就是试验品,于是我画了第二版。

第二版优化了一下,把第一版多余的那个EEPROM给去掉了,还优化了一下布局,第一版布局比较随意,导致了板子比较宽,这不太方便我们插到面包板上。

如上图(插的是我第二版的板子)的面包板,一般面包板的宽度是10个洞加上中间的“沟道”(差不多是两个洞的宽度),最好的状态就是按中间插上去之后,板子两边能多余出两个孔洞,这样板子两侧排针之间的距离就得是2.54mm * 7 = 17.8mm

所以第二版相比较第一版,优化了布局与板子的尺寸,还修复了引脚丝印错误的bug,删除基本用不到的EEPROM。

第二版我还是比较满意的,焊接难度小,外观也还可以。

然后我一测试发现,连程序都烧录不进去!

可是第一版可以,而第二版在烧录部分电路那一块都没改动!

STC32的烧录就是先连接串口,然后用STC官方的烧录程序点击烧录,接着给STC32断电重新上电,然后就可以开始烧录了。

下图左边是第一版,右边是第二版。

用的是USB转串口芯片用的CH340N,让STC32冷启动(断电重新上电)用的是一个常闭按钮。

两个版本在这方面几乎没有什么区别,唯一的区别就是走线不一样,但是我看了半天也没看出有什么不对劲。

我还拿万用表给这部分一个个测了有没有虚焊,结果是没有,这个结果也是预料到的,按钮焊接面积很大,基本不可能虚焊,而CH340如果虚焊了,那么电脑是识别不出串口的,而实际上是可以识别出串口。

然后我开始怀疑是不是STC32的芯片坏了,于是我又焊了一块,结果是一样的,串口能识别出来,但就是烧录不进去。

在烦恼了一晚上之后我投降放弃,随后画了第三版,第三版我直接把CH340去掉了,使用USB直接下载,真是搞怕了,进一步简化了电路,过几天到了我焊接测试过了再和第二版一起开源出来。

直到今天晚上我盯着第二版的板子看了许久,就是感觉不太甘心,于是又拿出两版的PCB图开始比较。

我拿出第二版的板子再次尝试烧录,祈求奇迹出现,然而并没有。因为之前出现过很奇怪的一件事,我焊了两块ESP32C3WROOM的核心板就是我之前开源出来的那个,然后一个可以烧录另一个烧录不了,板子设计是没问题,所以我估计要么是虚焊要么是某个元器件坏了,但是我已经把工具都收起来了,所以打算下次再尝试修一修,结果下一次我焊接的时候想着顺手修一下,结果两块板子都可以正常烧录程序进去。。。(其实这种情况更让我害怕,因为之前烧录不了的板子就像个不定时的炸弹,而我却找不出它了,俩板子混一起了)

我拿出第二版和第一版的板子分别烧录,然后被我发现了一个不同点。

第一版烧录的时候我先点击烧录,然后按下断电按钮,松开后一两秒,程序开始烧录。

而第二版则是,点击烧录,按下断电按钮,松开之后没有反应,程序没有正常烧录,不过也不是完全没有反应,当我松开按钮的时候,串口短暂的断开然后又很快地识别上串口,而第一版的串口是全程都在识别着的没有断开。

所以我把问题定位在了USB转串口芯片身上,也就是CH340,并且由于串口能识别到,所以CH340的功能是没有问题的,如果转串口的功能是没问题的,那么那短暂的识别串口失败就是因为供电的问题!因为没电,所以停止工作,进而电脑识别不到串口!

CH340停止工作的那瞬间发生在断电按钮松开的时候,让我们回顾一下断电按钮按下松开的工作过程。

首先断电按钮是常闭的,两边连接的是VBUS(USB提供的电压)和VCC(提供给STC32的电压)。

当我按下按钮的时候二者断开,STC32断电。

松开按钮后,STC32恢复供电,而这时候CH340供电不足!

也就是说松开按钮之后,STC32把CH340的供电抢走了一部分,虽然CH340的供电很快又供应上了,但CH340还是有那么一瞬间因为电压不足而停止工作,正是因为这一瞬间导致了程序烧录失败。

那么知道问题之后要解决就很容易了,我直接把CH340的VCC的电容改大就行。

至于为什么用22uf的电容,那就是因为我手头上0603封装的最大的电容就是22uf的,这种情况下为了印证我的猜想,电容肯定是越大越好。

我换个电容上去,结果第二版的板子能用了,到时候和第三版一起开源了。

到此为止好像皆大欢喜了,但是问题又来了,为什么第一版的就能烧录?

我又对比了一下两个版本的图,然后就知道原因了,以结果倒推原因是很容易的。

第二版用了四层板,其中一个内层是VCC的内电层,而第一版就是双层板。

这意味着当我松开按钮的那一瞬间,第二版VCC消耗的能量更大,因为有一整层的VCC,可以瞬间供电给其他又VCC供电的元器件;而第一版瞬时消耗的能量相对小一点,所以第一版的CH340供电能应付上,而第二版就需要加大电容来维持那瞬间电压不突变了。

所以除了加大电容以外,还可以把第二版的四层板改成二层板,优化一下走线,也是可以解决问题的,就是会更麻烦一点,当时我为了省事直接用四层板,这样走线很方便,结果就导致我因为程序烧录不进去困惑了三天。

这个经历也不错,丰富了我的调试经验。有时候太顺利也不是好事,像这样碰碰壁反而能成长不少。

在某个群里偷了张图出来,我觉得说的挺好,也挺应景的,这边放出来与大家共勉。

在树莓派上烧录程序通常是指将操作系统镜像入到 microSD 卡中,以便树莓派能够启动并运行该系统。以下是详细的步骤说明: 首先,需要准备好以下工具: - **树莓派系统烧录器**:推荐使用官方的 Raspberry Pi Imager。 - **树莓派系统镜像**:可以使用官方提供的 Raspberry Pi OS 镜像。 安装完烧录器软件后,启动 Raspberry Pi Imager,按照以下步骤操作: 1. **选择设备**:点击第一个框 `Raspberry Pi Device`,根据手中的树莓派型号(如树莓派4或树莓派5)行选择[^1]。 2. **选择系统版本**:第二个选项是选择要烧录的是64位还是32位的系统。 3. **选择存储卡**:第个选项是选择要烧录的目标存储卡。需要注意的是,在烧录过程中存储卡中的所有内容都将被清除,因此建议提前备份数据并格式化存储卡。 4. **开始烧录**:确认设置无误后,点击入按钮,等待烧录过程完成。 如果遇到问题,例如无法正常启动,可以通过观察 LED 灯的状态来行初步诊断: - **绿色 LED** 和 **红色 LED** 的状态可以帮助判断 TF 卡是否正在活动或是存在其他问题,比如 TF 卡启动文件损坏、电源电压正常或系统文件缺失等[^2]。 完成烧录后,插入 microSD 卡至树莓派,并连接电源以启动设备。对于远程登录需求,可下载 PuTTY 并确保使用最新版本以避免可能出现的错误[^3]。 ### 烧录注意事项 - 在烧录前确保 microSD 卡已经格式化并且没有重要数据。 - 使用稳定的电源供应,防止烧录过程中断导致的问题。 - 如果使用的是非官方系统镜像,可能会遇到兼容性问题,因此推荐使用官方提供的镜像。 ```python # 示例代码:用于检测microSD卡是否存在 import os def check_sd_card(mount_point): if os.path.exists(mount_point): print(f"{mount_point} 存在") else: print(f"{mount_point} 存在,请检查microSD卡是否正确插入") check_sd_card("/media/pi/SDCARD") # 假设/mnt/sdcard为microSD卡挂载点 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值