STC单片机下载实验

简介

STC(宏晶)公司的单片机是基于8051内核指令集,加速后的单片机。配置有丰富的外设,编程和调试简洁明快,适应于广大消费量电子产品的设计与开发。

STC在2020年通过赞助的形式支持全国大学生智能车竞赛。应用该单片机简洁明快,低功耗,抗干扰能力强的优势,竞赛的节能组可以充分发挥该单片机的优势。

▲ STC单片机的外设

▲ STC单片机的外设

为了便于开发也应用该单片机,下面对该单片机的程序下载过程进行实验。

建立AD元器件库

1. 建立元器件库

STC单片机具有丰富的小型封装形式,在其产品手册中列写除了相关的封装关键的定义。在DIP40封装还给出了单片机下载电路的形式。

▲ STC15W 系列单片机封装形式

▲ STC15W 系列单片机封装形式

在 AD\MISCLIB\LIB\Documents\SCH中建立相应的封装形式,它们的命名分别是:STC15-8,-16,-20, -28,-40

▲ AD中STC15W的不同封装的元器件

扫描二维码关注公众号,回复: 10717144 查看本文章
▲ AD中STC15W的不同封装的元器件

2. 原器件的封装

对于不同元器件的封装形式,选择标准的元器件苦衷的封装形式。

设计实验板

实验板的AltiumDesign的工程文件目录:
AD\Test\2020\STCTest\STC15W-16-Test.

1. 测试电路板的原理图

设计一个可以在面包板上完成实验的测试电路。使用STC15W415AS信件。具体电路原理图如下:

▲ 实验测试电路板的原理图

▲ 实验测试电路板的原理图

这种设计可以利用面包板的灵活性做多种测试。在原理图中,出来通过4PIN的P1口将电源和编程口引出之外,还引出了两个IO口以及UART口。

2. 测试电路板的PCB

通过快速制版,十分钟后得到测试电路板。

▲ 快速制版后的测试电路板

▲ 快速制版后的测试电路板

实验结果

1. 搭建实验电路

将测试的电路板放置在面包板上,将PL2303的的UART部分与单片机相连。测量UART的TXD,RXD的电压分别是:

管脚 电压
RXD 3.35V
TXD 3.35V

因此,如果不加上隔离,PL2303有可能会通过RXD,TXD给单片机供电,这样就会无法真正冷启动MCU。

▲ 测试电路板

▲ 测试电路板

根据STC使用手册给出的参考电路,在PL2303的TXD串联一个二极管,在PL2303的RXD串联一个300Ω的电阻。

防止下载程序串口对MCU供电的电路如下图所示:

▲ 防止下载程序串口反过来给MCU供电的电路

▲ 防止下载程序串口反过来给MCU供电的电路

2. 运行下载程序

(1)下载程序允许错误

允许STC-ISP-V3.80-NOT-SETUP程序出现如下的提示错误:
▲ 下载程序显示错误

▲ 下载程序显示错误

错误解决方法1:

“部件MSCOMM32.OCX或其附件之一不能正确注册:一个文件丢失或无效”问题的解决办法”博文给出了解决办法:

(1)在网上下载mscomm32.ocx

(2)32位放在Windows/System32 下,64位放在Windows/SysWOW64下,然后在对应目录下找到cmd.exe文件

右键–管理员身份运行(关键)–输入regsvr32 mscomm32.ocx
允许命令后,注册成功。

▲ 安装MMCOMM32.OCX成功

▲ 安装MMCOMM32.OCX成功

▲ 注册成功后的ISP程序界面

▲ 注册成功后的ISP程序界面

错误解决方法2:

与STC聂经理联系之后,他建议使用STC-ISP-15XX-v6.87C.exe。这样便可以不再使用MSCOMM32.OCX,直接运行就可以了。

只不过这个程序在允许的时候两次弹出的信息窗口比较令人讨厌。

(2) 上电测试

很是奇怪,在单片机单片机的P1.3端口便有信号输出。
▲ 上电后内部便开始闪烁

▲ 上电后内部便开始闪烁

(3)下载波特率选择

通过实验,最低波特率会影响单片机下载结果。

波特率选择4800~57600,可以进行单片机的正常检测和下载。如果低于4800,或者高于等于115200单片机无法正常下载。

设置下载速率为57600,在下载开始的时候,在RXD上出现的波形如下图所示。可以看到由于二极管的存在,使得单片机的上升沿出现了延迟,延迟时间大约2.2微妙。

▲ 这是设置波特率57600下载是,在TXD上出现的波形

▲ 这是设置波特率57600下载是,在TXD上出现的波形

下面是二极管前后的波形,可以明显看到二极管的截止时间使得脉冲的上升沿延迟了2.2us左右。如果波特率升至115200,这个延迟将会造成UART通讯出现错误。
▲ 测量RXD二极管前后的波形

▲ 测量RXD二极管前后的波形

为了改善二极管的上升速度,在二极管与单片机引脚之间增加一个至+5V的430欧姆的电阻,此时波形如下:
▲ 在二极管上增加上拉电阻后的波形

▲ 在二极管上增加上拉电阻后的波形

但是很奇怪,增加了上拉电阻之后,最高的下载频率只能是38400;最低的下载频率可以为1200.

在下载过程,微机每隔10ms左右发送连续两个0xff,完成握手信号。然后设置波特率115200,完成后面的芯片擦除和下载过程。

正在重新握手 ... 成功 [0.032"] 当前的波特率: 115200 正在擦除目标区域 ... 完成 ! [0.671"] 芯片出厂序列号 : F563C5D701D5F9 正在下载用户代码 ... 完成 ! [1.731"]

▲ 两次脉冲之间的间隔为10ms左右

▲ 两次脉冲之间的间隔为10ms左右

结论

  1. 确定了正确的下载程序:
    D:\zhuoqing\DesignCenter\STC\Program

  2. 确定的PL2303的正确的驱动程序:
    D:\zhuoqing\DesignCenter\STC\Program\USB to UART Driver\PL2303

  3. 确定的STC下载前的握手信号形式:
    在TXD上,会出现10ms间隔的两次低脉冲。

  4. 使用STC-ISP下载程序的时候,设置最低波特率很重要,通过实验发现,该波特率设置为19200,下载过程比较顺利。

发布了435 篇原创文章 · 获赞 514 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/105448141