大家好,又见面了,我是你们的朋友全栈君。
最新写的博客感觉越来越低端了……
今天焊接、调试了一快板子。板子比较小,功能简单,使用了STC单片机,型号:STC15W408AS,封装:TSSOP20。
焊板后的第一次下载程序。单片机5V供电,使用FT232RL模块,将FT232RL配置成IO口5V供电。按照以前的流程下载程序,STC-ISP软件一直无法检测单片机。
解决思路:
1、排除硬件故障。
1.1 单片机VDD供电正常5V。
1.2 单片机UART0和串口模块UART交叉连接
单片机TxD <-> 串口模块 RxD
单片机RxD <-> 串口模块 TxD
单片机GND <-> 串口模块GND
1.3 串口模块IO口和单片机VDD相等
我的单片机板子没有LDO,直接是5V供电的。UART电平需要5V。而FT232RL模块的VDDIO不知为何,一直大于3.3V小于4V。可能是这个原因,无法和5V单片机系统正常通信。我不用FT232RL了,使用CP2102N。CP2102N是3.3V系统。单片机如果使用CP2102作为UART转USB,需要使用LDO或者DC-DC,将单片机系统设置为3.3V电源供电。
2、排除软件故障
使用STC官方的软件,第一次为板子下载程序,需要注意的地方如下。
2.1 单片机型号需要和板子对应
2.2 串口号要和实际情况对应。
2.3 第一次试验,可以选择范例程序中的某一个例程,直接下载Hex文件。
所以最后,我的试验平台变成了三个部分。
第一个部分STC芯片(STC15和STC8的都是一样的最小系统,可以不用外置晶振,下载程序接口同样为UART0。我手头上有STC8A8K64S4和STC15W408AS,都很类似):
这里需要注意的是官方的单片机规格书中,使用STC+PL2302做最小系统,通常推荐我们在单片机的TXD接二极管。我使用STC+CP2102N,需要把这个二极管短路。上次也是这个原因,熬了我一个晚上。
第二部分CP2102N模块:
第三部分是5V转3.3V降压稳压电源模块。模块输出3.3V电压为单片机供电,使得整个单片机系统都是3.3V。
同时注意的是,STC单片机都是,要先把STC单片机的UART部分和UART转USB模块连接好。然后STC单片机再上电。单片机才可以BOOT from UART(从UART下载程序)。
到这里,可能读者会觉得一头雾水,这种电子项目是需要经验的,不过也不是太难的逻辑。总之在这里我算是自己记录一下过程。希望下次在这个基础上做些新的东西。而不是每次都犯同样的错误。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125191.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...