stm32isp吧 关注:168贴子:165
  • 14回复贴,共1

远程ISP客户端

只看楼主收藏回复

CSDN有客户端下载,需要的请自行搜索。


IP属地:广东来自iPad1楼2013-09-05 11:47回复
    http://download.csdn.net/download/triv2009/6039915 应该是采用VB。NET开发的,尽量安装。NET2 以上的版本


    IP属地:广东来自iPad2楼2013-09-05 11:48
    收起回复
      2026-05-27 16:28:33
      广告
      不感兴趣
      开通SVIP免广告
      需要体验远程ISP下载的同学请留下QQ或者邮箱,有空就给你们发过去。
      默认的用户名和密码都在包里面,也可以自己去注册一个新的用户名。
      下载线是定做的,虽然硬件很简单,但是能否做到稳定很关键,采用PL2303做的下载线现在有售,需要的也可以联系我。
      客户端是采用VS2008开发的,基于.NET 2框架,安装文件会很大,本吧不提供下载。
      如果系统是WINXP,请下载安装文件,并且下载PL2303的驱动文件。
      如果你的系统是WIN7或以上,就可以直接运行,不需要安装文件,也不需要PL2303驱动。
      网上找不到客户端软件的话,可以联系我:QQ214490357;wenshijian4@163.com.


      IP属地:广东来自iPad3楼2013-09-05 21:10
      回复
        IP属地:广东4楼2013-09-05 21:29
        收起回复
          图片中是数据库的纪录。客户端通过传输HEX文件到服务器上,实现远程下载ISP过程。


          IP属地:广东5楼2013-09-07 15:08
          回复
            客户端安装过程请注意:
            因为客户端在.NET 环境中开发出来的,所以WINXP系统没法直接运行,请安装.NET FRAMEWORK 2 以上版本,微软官网有下载的,然后还要安装PL2303的驱动程序,因为WINXP是没有自带这些驱动的。装完这两个之后,就可以解压客户端,点击”STMISP.EXE”运行了。
            对于WIN7\8系统,只要解压之后直接点击”STMISP.EXE”就可以了。
            服务器域名是”SPKEY.OICP.NET",客户端运行的时候会访问这个域名,如果防火墙提示拦截的话,请开启允许访问,否则客户端没法使用。(别担心这不是病毒)


            IP属地:广东6楼2013-09-07 15:18
            回复
              客户端大小是27M的样子,是一个压缩包,包含了应用程序和使用手册。
              服务器域名地址是spkey.oicp.net


              IP属地:广东7楼2013-09-07 16:22
              回复
                VB.NET ISP下载源码,这些源码在网上已经有了,请自己搜索。
                STM32在芯片生产的阶段固化了一段引导程序,其作用是通过USART1接口下载程序FLASH中.这给生产带来了极大的便利,用户不需要通过JTAG/SWD接口就能轻松下载程序,提高了生产效率.
                STM32复位之后的4个时钟周期内,如果检测到BOO1引脚为低电平,BOOT0脚为高电平的话,芯片就会执行内部固化的ISP引导程序,接受来自USART的命令和数据.
                下面简单介绍一下几种命令,有了这几种命令,就可以通过上位机在线烧录STM32芯片了.命令代码是VB.NET语言写的.
                1.单字节命令
                单字节命令只需一个字节,如连接命令0x7f.
                Private Sub SendBytes(ByVal byt As Byte)
                Dim Buffer(2) As Byte
                Buffer(0) = byt
                Serial.Write(Buffer, 0, 1)
                End Sub
                2.双字节命令
                双字节命令由两个字节组成,第一个字节是命令,第二个字节是它的反码.如解除读保护命令是:0x92,~0x92(~表示反码).
                Private Sub SendByteWithChecksum(ByVal byt As COMMAND_BYTE)
                Dim XOR_Byte(2) As Byte
                XOR_Byte(0) = byt
                XOR_Byte(1) = Not byt
                Serial.Write(XOR_Byte, 0, 2)
                End Sub
                3.多字节命令
                多字节命令用来发送数据.STM32最多能接受一次256字节的数据,但由于一个8位变量最大值是255,故命令的第一个字节是实际发送数据长度N减一.接下来是N个字节的数据,最后是一个异或校验值,此值是包括长度字节在内,不包括校验值本身的异或值.
                Private Sub SendDataWithChecksum(ByVal Buffer() As Byte, ByVal Count As UInt16)
                Dim Temp(2) As Byte
                Dim XorByte As Byte
                Dim i As Integer
                XorByte = 0
                XorByte = XorByte Xor CByte(Count - 1)
                For i = 0 To Count - 1
                XorByte = XorByte Xor Buffer(i)
                Next
                Temp(0) = CByte(Count - 1)
                Temp(1) = XorByte
                Serial.Write(Temp, 0, 1)
                Serial.Write(Buffer, 0, Count)
                Serial.Write(Temp, 1, 1)
                End Sub
                发送一个地址的函数
                Private Sub SendLongWithChecksum(ByVal Dat As UInt32)
                Dim Buffer(5) As Byte
                Dim XorByte As Byte
                Dim i As Integer
                Buffer(0) = CByte((Dat >> 24) And 255)
                Buffer(1) = CByte((Dat >> 16) And 255)
                Buffer(2) = CByte((Dat >> 8) And 255)
                Buffer(3) = CByte((Dat) And 255)
                XorByte = 0
                For i = 0 To 3
                XorByte = XorByte Xor Buffer(i)
                Next
                Buffer(4) = XorByte
                Serial.Write(Buffer, 0, 5)
                End Sub
                下面简单介绍一下ISP的过程.
                1.芯片复位
                在给STM32复位之前,首先要确定BOOT0,BOOT1引脚的状态.通过各种方式,先让BOOT0处于高电平状态,BOOT1处于低电平状态,然后在RST脚上产生一个负脉冲,STM32就能进入ISP状态.注意,复位之后,一定要延时一定的时间,让ISP程序稳定,才能发送指令和数据.
                2.连接芯片
                复位并延时一定时间(100ms就够了)后,ISP程序已经处于接受连接的状态,电脑软件串口设置成1200~115200波特率,EVEN校验,8位数据位,1位停止位,然后发送一个0x7f,等待STM32回复.STM32的ISP程序利用这个0x7f来测试波特率,如果收到了0X79,表示连接成功了,可以进入下一步操作;否则,必须检测BOOT0,BOOT1引脚,并重新复位STM32.
                3.解除读保护(如果有需要的话)
                如果芯片已经设置过读保护功能,则必须解除读保护,才能写新的程序进去.发送0x92,~0x92.命令发送之后,需要等待STM32 ISP程序回复,如果接收到0x79,表明已经成功解除读保护.在烧录程序之前,必须重新发送0x7f命令进行重新连接,操作方法看"2.连接芯片".
                4.全片擦除
                发送一个双字节命令0x43,~0x43,让芯片执行擦除动作,等待回复0x79,然后再发送0xff,~0xff双字节命令,让芯片招待全片擦除.如果接收到0x79,表明全片擦成功了!
                5.烧录程序
                全片擦除之后,就可以开始烧录程序了.首先发送双字节指令0x31,~0x31,如果回复0x79,则继续用多字节命令(5个字节)发送一个32位的地址,此地址就是等待写入数据的地址,注意4个字节对齐.收到回复0x79之后,就可以发送N个字节数据了(注意N最大为256).重复以下过程,直到把所有代码发送出去
                for(...)
                {
                发送:0x31,~0x31
                发送:WW ,XX ,YY ,ZZ ,异或值(注意,32位地址必须先发送最高字节)
                发送:(n-1),d0,d1,...,d(n-1),异或值
                }
                6.读锁定
                烧录完毕之后,为了防止程序被读出,可以设置读保护.发送双字节命令0x82,~0x82,先行回复0x79,再等待一次0x79,回复成功之后,表明芯片已经被读保护了.


                IP属地:广东8楼2013-09-11 10:10
                回复
                  2026-05-27 16:22:33
                  广告
                  不感兴趣
                  开通SVIP免广告
                  其实VB.NET与VB6很多地方不能兼容的,以上代码不完全能够用在VB.NET,需要作点修改。


                  IP属地:广东来自iPhone客户端9楼2013-09-16 21:09
                  回复
                    注意:请各位不要在ISP服务器端随意删除HEX文件,有些是演示用的文件,否则新用户就没法使用客户端了。请把自己的HEX文件按规则命名,这样就不会乱了。


                    IP属地:广东来自iPhone客户端10楼2013-09-17 15:03
                    回复
                      还是没有发出来啊?!


                      来自iPhone客户端11楼2013-09-29 15:10
                      收起回复
                        强力支持~~~!


                        12楼2013-10-25 14:14
                        回复