STC单片机如何通过485接口下载程序
- 格式:docx
- 大小:70.02 KB
- 文档页数:2
STC单片机程序升级通过ISP软件发布项目程序(可实现加密传输)通过ISP软件直接下载程序(可以不停电下载)OTA升级(高端客户使用)第三方MCU自己制作离线下载器USB转串口工具连接P30/P31硬件USB/软件USB连接P30/P31离线下载器直接使用ISP生成的程序升级软件自己有上位机调用isp生成的软件进行程序升级DEBUG下载(支持硬件仿真的MCU)使用官方下载器LINK1D/U8 mini见手册第三方MCU对STC单片机进行ISP下载范例(部分单片机支持此功能)当然通过外部的蓝牙/wifi模块升级固件也可以参考这章内容量产非常推荐这个,只需要开发人员把程序下载进去之后,生产人员就可以分分钟下载程序了客户无法拿到源程序,且无法得知下载的一些配置信息(频率,等待)也可以给客户自己更新离线下载器里的程序论坛里有详细的视频教程可以自己做个好看的软件,或者集成到自己的软件里去直接下载程序,无需打开STC的软件。
见手册第三方应用程序调用STC发布项目程序下载STC全系列的单片机均可使用这个功能,通用性最高可以拜托下载器的困扰,直接USB两根线连接P30/P31即可(单片机必须支持USB下载的才可以)论坛和视频教程均有详细介绍,强烈推荐ISP软件将单片机设置为仿真芯片(一次设置,终身使用),就可以关闭ISP软件了,直接在KEIL里下载和仿真。
论坛里有无数的资料和教程需要提前烧录一个用户编写的Bootloader(难度较大)。
可以使用任意的用户自己的方式下载,可以摆脱P30/P31的束缚,比如插入SD卡自动读取SD卡里的新程序跟新,自己写个升级小程序等等。
见官网“做自己的升级软件”板块有部分范例程序。
强烈建议开发人员使用系统需要经常升级,且公司为了做品牌推广,且额外功能繁多建议使用这个推荐生产人员量产使用该方式,或者给客户自己升级程序给客户自己远程升级程序建议使用和这个,客户无法拿到源码推荐公司内部人员可以使用这个,因为下载需要HEX文件,容易泄密。
STC单片机下载器使用说明介绍:这是一个USB转TTL电平的串口转换器。
它利用USB协议里规定的总线转换功能,把USB转换成串行通信口。
因为现在的台式机、笔记本电脑普遍已经不再配备串口,因此在需要串口的时候,可以使用这种转换器。
由于STC单片机可以使用串口下载程序,所以可以使用这种USB转串口模块来给STC的单片机下载程序。
写到此处,我想多说几句题外话,8051内核单片机诞生于1980年左右,由Intel公司设计,(这家公司各位一定不陌生吧)。
当时英特尔公司刚刚起步,走的是开放的、兼容型的路线。
所以,intel公司把8051单片机的设计授权给了给了其他半导体厂商,于是众多厂商生产了各种各样的51系列单片机,这些厂商包括:ATMEL公司、WinBond(华邦)公司、Philips(飞利浦)公司、 LG公司、NEC(日电)公司、SIEMENS(西门子)公司等。
如今,8051单片机内核的知识产权保护期已过,因此许多国产半导体厂商兴起,如:深圳宏晶(STC)、上海海尔、台湾笙泉、湖南华芯、台湾华邦(芯唐)、台湾中颖、台湾新茂、台湾太欣等等。
我们之所以选用国产STC单片机作为教学用单片机,主要还是考虑到其成本因素。
相对来说,STC单片机价格比较便宜,而且芯片功能强大,片内集成了很多功能。
此外还要说明的是,给单片机下载程序必须要有下载器(编程器、烧录器),而多数单片机的下载器价格都会在100到200元以上,这对于初学者来说是难以承受的,而STC 单片机烧录程序,仅仅需要串口即可,而即使电脑没有配备串口,购买一个USB转串口也不过15块钱以内,这就大大降低了单片机的学习门槛。
下面就来介绍我们这款STC的单片机下载器——USB转TTL串口模块。
USB转串口小板功能:1、简单的串口通信。
2 、路由器或者ADSL固件升级。
3 、STC单片机、STM32单片机等,烧写程序。
4 、硬盘固件升级。
5、超级终端里使用。
常用串口调试工具。
stc单片机支持串口isp程序下载,不必使用专用下载器,仅使用串口就能下载程序。
但每次下载程序都要断电再上电,比较麻烦。
下面介绍一种不需断电就能下载程序的方法,在程序调试时比较方便。
基本原理:stc单片机有专用的复位寄存器,通过对该寄存器写入不同的数值可以实现单片机热启动复位。
寄存器功能如下图所示:由上图可以看出只要满足某个条件,向ISP_CONTR写入0x60,就可以实现从ISP监控区软启动启动某个条件设置为:当串口接收到0xaa数据时,单片机执行ISP_CONTR=0x60; 指令,从ISP 监控区软启动启动。
演示程序如下://*************************STC12C5410AD软启动演示**************************////收到0xaa,从ISP监控区软启动,利用该特性,可以实现stc单片机不断电下载//收到0x55,从用户程序区启动//2010年3月13日21:58:49//************************************************************************* #include <STC12C5410AD.H>uint c;//*************** 函数定义 ******************void delay1ms(unsigned int j);void senddata(uchar dc);//*************** 主程序 ********************void main(void){///******************TMOD|=0x20;SCON=0x50;TH1=0xfd; //12T时钟9600bpsTL1=0xfd;TR1=1;ES=1;EA=1;AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps///******************delay1ms(30000);for(c=0;c<256;c++){senddata(c);delay1ms(200);}while(1){}}//***************************发送数据************************** void senddata(uchar dc){SBUF=dc;while(!TI); //当TI=0时,发送未结束,循环等待TI=0; //当TI=1时,发送结束,用软件将TI清零}void uart(void) interrupt 4{uchar cdd;if(RI){RI=0;cdd=SBUF;if(cdd==0xaa){ISP_CONTR=0x60; //软复位,从ISP监控区启动}else if(cdd==0x55){ISP_CONTR=0x20; //软复位,从用户程序区启动}else{senddata(cdd);}}else{TI=0;}}//*************************延时 n*1ms********************void delay1ms(unsigned int j){unsigned int i;for(;j>0;j--){ for(i=0;i<124;i++){;}}}在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序///******************TMOD|=0x20;SCON=0x50;TH1=0xfd; //12T时钟9600bpsTL1=0xfd;TR1=1;ES=1;EA=1;AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps///******************void uart(void) interrupt 4{uchar cdd;if(RI){RI=0;cdd=SBUF;if(cdd==0xaa){ISP_CONTR=0x60; //软复位,从ISP监控区启动}else if(cdd==0x55){ISP_CONTR=0x20; //软复位,从用户程序区启动}else{senddata(cdd);}}else{TI=0;}}在上演示程序中,利用单片机串口收到某个有效数据后,执行从isp引导区软启动的命令(ISP_CONTR=0x60;),实现程序不断电下载。
基于stc单片机的具有485远程通讯接口的产品代码更新方案(载波程序下载)作者:陕西凯星电子科技有限责任公司成立于2001年11月,拥有国际一流的技术资源和最权威的研发团队。
是目前国内外唯一一家利用“电力线载波通信技术” 进行远程:智能控制集中管理信息通信数字传输红外感应传感控制监控管理,助推实现水、电、气、热(暖∕冷)四大能源“节能减排、数字信息化管理”的高新技术企业,是集研发、生产、销售、服务于一体的专业化团队来源: <关于我们-电力载波,远程控制,节能管理>1.前面的话目前国内51单片机的应用中stc系列的应用量逐渐增长了起来,就我发现,高校学习中采用stc单片机的很多,市场上销售的学习开发板大部分也是带有stc芯片。
目前各类产品都在向智能化靠近,同时产品的升级也很必要。
特别是做系统工程的厂家,针对不同的工程,需要不是针对具体案例做一些代码改动。
如果你的产品已经成型,并预留了485接口,那么程序更新想通过485直接更新是不是可以呢?答案是肯定的!有兴趣的朋友请往下看。
2.应用前提条件:支持isp的芯片(目前只用stc的片子做过测试)通讯接口是485(其他通讯方式当然也可以实现)实际应用的产品中,例如采集终端,你可能生产时预留了下载接口,通过串口直接下载,方便快捷,一切ok。
但是如果你们的产品在已经在现场完全安装调试结束,但又发现一处bug,需要重新更新代码,这时你发现你的产品有485接口,但是485却是半双工,收发需要切换。
但是下载时你不可能去控制它(一般应用时使用一个IO口控制485的收发)。
现在下载程序遇到了麻烦,打开产品外壳,肯定会损坏产品外观,那客户怎么会答应,你还不如帮人家换个新的呢。
肯定也有人遇到过类似的问题,那你们是怎样解决的呢?3.寻求答案:下面是我就这个问题做的一些探索——stc下载时先通过编程软件不断发送编程识别码,冷启动是程序进入引导区,判断需要下载时,开始刷新代码,否则执行用户代码。
STC串口下载说明STC―ISP下载使用说明说明:本说明以STC_ISP_V4.80为例,不同版本的软件略有不同,但基本差不多。
①首先在桌面上找到STC_ISP_V4.80的快捷方式图标,如图(1)。
双击打开软件出现如图(2)的软件界面。
图(1)软件图标图(2)软件整体界面②按照软件界面的提示,第一步,选择单片机的型号如图(3)。
图(3)选择单片机的型号鼠标点击列表右方的倒三角,出现如图(4)的选型列表,在表中找到所使用的单片机型号。
图(4)选型列表③按照软件界面的提示,第二步,打开需要下载的HEX文件,如图(5)所示。
图(5)打开程序文件鼠标点击“打开程序文件”按钮出现如下对话框,找到要下载的HEX文件并选中点打开(或直接双击需要打开的文件既可)。
④按照软件界面的提示,第三步,选择下载用的串口以及下载的波特率,如图(6)所示。
图(6)选择下载用的串口以及下载的波特率鼠标点击列表右方的倒三角,出现如图(7)的串口选择列表,在表中选择使用的串口图(7)串口选择列表如果不知道单片机所接的串口是哪个可以右击“我的电脑”选中“设备管理器”出现设备管理器的界面如图(9)所示,点击“端口”前的加号便出现连接在电脑上的所有端口,如图(10)所示。
图(8)图(9)设备管理器图(10)当处于程序下载阶段时串口列表后面的标志变为绿色⑤按照软件界面的提示,第四步,选项设置,如图(11)所示。
图(11)选项设置本试验箱搭配的晶体振荡器为11.0592MH,所以选择“Low”如不选择“Low”有可能造成不能下载的情况,其他选项不要改动。
图(12)振荡器放大增益选择⑥按照软件界面的提示,第五步,下载,先点击下载按钮再按下试验箱上总电源开关,箱上电源指示灯亮,再按下试验箱左上角单片机系统板上的电源开关便可以进行下载了。
如图(12)所示。
图(13)下载程序当选中用每次都去点击时必须点击当选中时每次下载程序时就不方便调试使用。
如果没有选中的话那下载程序不然下载的程序不会被刷新。
STC单片机烧入程序的步骤第一步:硬件连接,连接硬件之前,必须先把USB驱动装好编程器的AUTO脚是用来关闭STC的自动冷启动功能,只要用跳线帽跳到GND,就可以关闭自动冷启动功能,这时间必须要人工来断电源来实现下载。
如果选择自动冷启动,就不用跳任何线了。
编程器<------->目标板接线关系5V单片机接线关系3V单片机接线关系5V-------VCC 3.3V--------VCCTXD------RXD TXD---------RXDRXD------TXD RXD---------TXDGND-----GND GND--------GND第二步:打开文件夹“STC单片机编程使用说明”,打开“新版本ISP 下载软件”文件夹,双击“”软件,如下图找到串口号,必须是“USB-SERIAL CH340 (COMX)”,不一定是COM3,其它COM口也可以,注意不要同时出现两个USB转串口设备。
第三步:选择你要下载的“单片机型号”(例如:如果是STC89C52R 或者STC89LE52RC,都选择是“STC89C/LE52RC”这个型号),然后,再点击打程序文件:加载的文件可以是XX.bin或XX.HEX都可能。
第三步:点“下载/编程”,如果没有问题,最后提示“操作成功”常见问题解决方法●如果中途下载失败,并且提示更新软件,其实不需要更新软件,这时看一下硬件电源或者管脚是否接触良好,然后,再重复一次下载过程。
●如果点击“下载/编程”时,一直在检测单片机,2S后没有出现下载过程,这时要看编程器上的电源指示灯是否在闪烁,如果不闪烁,说明硬件没有连接好(例如:STC单片机最小系统不工作);如果闪烁,一种说明电源供电不足,需要外部供电,一种可能是可能RX和TX互换了.。
1.准备工作:使用配送的串口线将学习板连接到计算机串口。
2.运行STC-ISP下载文件;
3.在“MCU Type”中选择相应的单片机类型,例如学习板上CPU
用STC89C52,则请选择“STC89C52”;
4.点击“Open File/打开文件”按钮,并选择已经编译好的HEX
或BIN文件打开;
5.在“COM”中选择学习板所接计算机的串口号;
6.其他参数使用默认即可,如果下载有问题,可将“最高波特率”
的值设小一点;
7.点击“Download/下载”按键,之后使用配送的USB取电线连接
学习板到计算机,学习板上电,即可看到左下角文本框中显示的连接信息及下载的进度条;
8.下载完成后单片机便立即进入正常工作状态。
下载软件使用说明:
1.用串口线连接开发板和电脑,打开STC_ISP_V3.1可以看到如图一界面
图1 STC_ISP下载界面
在左上角选择器件名称STC89C51RC,然后点击,选中要下载的hex文件。
2.点击,然后按下串口上面的S_DLD按键,让系统断电,既可开始下载。
STC_ISP左下方会有下图提示,说明下载成功。
图2 下载提示
编程说明:
ZLG7290芯片负责LED显示及键盘扫描,它与单片机采用IIC总线方式进行通信,所以在此开发板上进行开发时需要添加iic.h此头文件(所给例程里面都包含此头文件,使用时自己添加即可),在它里面提供了一些IIC总线的函数,可以直接调用。
关于ZLG7290的用法,可参考其芯片的PDF,上面有详细的说明。
有能力的同学可以自己根据IIC的时序自己编写函数,或者在此基础上进行修改。
另:注意数码管显示函数 void dispp(unsigned char num,char leddata)(在iic.h头文件中)中第一个参数num是选择那一个数码管,8个数码管从左至右顺序依次为7,6…1,0。
例:若使第3个数码管显示为8,调用显示函数应该为dispp(2,8).
注意事项:
开发板led标示为p0.0到p0.7,此处标示错误,应该为p1.0到p1.7,在编程时请注意。
焊接时,6脚的按键不要焊接错误,按键侧面有一竖条的那面应该朝右,请一定注意,否则硬件会有问题!!。
STC12C5616AD 通过RS485下载程序
由于产品完全密封,只有RS485电缆外露,如果能通过RS48下载程序的话,以后升级程序就比较方便。
问宏晶的人说此芯片不支持RS485下载程序,感觉态度有点应付了事,解释也很牵强,说什么RS485单工所以不能下载程序;个人觉得下载程序的过程在逻辑上是单工的,RS485完全是可行的!(以后设计新版一定改用STM32芯片,完全不存在这些问题;)没办法,老产品了一下也改不了,只能想想办法,通过试验,我发现基本上可以用RS485下载程序,只是有时要下载好几次才能成功,但不影响使用,反正本产品只是维护升级程序时才能过RS485下载程序,多试几次也没关系。
实现方法如下:
一:修改RS485电路,实现发送器自动切换,如图一所示:
图一DI接地,TXD接/RE,DE
发送原理:发送低电平信号(0)时TXD输出低,使能DE,由DI接地,AB端输出0信号;发送高电平信号(1)时,TXD输出高,DE去能,485处于接收状态,AB端靠R37,R48的下拉及下拉实现发现高电平信号。
实样就实现了自动切换485芯片的收发状态。
二:下载/编程工具:
选用STC-ISP(V6.58B),波特率选择要注意:最低2400,最高9600,如图二:
图二:波特率2400~9600
三:下载:
与正常操作一样,但有时需要重复试好几次才能成功,但肯定能下载成功的。
主要原因是STC-ISP这个软件的下载过程的延时问题,如果宏晶公司能开放源码给我的话,我愿意帮他改改,RS485下载程序肯定完全正常。
由于RS485相比RS232具有抑制共模干扰、传输距离长等优点,所以许多大型的工业设备都采用RS485进行串口通讯。
但由于RS485采用的是差分信号,所以在进行串口通讯时,只能采用半双工的工作方式,必须使用1个或2个I/O口来控制RS485的发送和接收状态。
当需要采用RS485来对STC的新版IC(支持RS485下载的单片机系列在后面会详细列出)进行ISP下载时,必须进行一些设置才可下载代码。
具体的操作步骤如下:
1、首先需要设置好相应的RS485控制端口,并勾选上“下次下载时使能目标芯片的RS485控制功能”这个选项
2、然后使用普通下载方式将RS485相关的硬件选项写入到目标芯片
3、经过前面两步的设置和编程,此时的目标芯片便具有了对RS485的控制功能。
接下来仍需要保持RS485的控制选项不变,并勾选上"本次使用RS485进行控制下载"的选项(此选项的作用是使PC端也采用RS485的控制方式进行发送/接收串口数据)
4、再点击下载编程按钮,并对目标芯片重新上电即可实现使用RS485进行通信下载的功能
RS485控制功能仅对如下系列及新出的单片机有效:
STC15F2K60S2/STC15L2K60S2
IAP15F2K61S2/IAP15L2K61S2
STC15F104W/STC15L104W
IAP15F105W/STC15L105W
STC15W104SW/IAP15W105W
特别注意:
若需要RS485控制功能,则每次都需要将RS485相关的配置设置正确,并勾选上“下次下载时使能目标芯片的RS485控制功能”这个选项,否则在下一次下载时将不具有RS485控制功能了。