草庐IT

【开源电路】ST-LINK/V2、ST-LINK/V2-1、DAP-LINK烧录器(已验证)

perseverance52 2023-04-28 原文

【开源电路】ST-LINK/V2、ST-LINK/V2-1、DAP-LINK烧录器(已验证)


  • 📽PCBA实物图

  • 📺最终的的PCB 3D效果图

✨本硬件电路未解决采用合宙的Air32F103CBT6芯片,当ST-LINK/V2使用时,对stm8在线调试功能的友好支持(仅对stm8支持下载,对stm32所有功能正常),ST的STM32F103CBT6以及极海的APM32F103C8T6使用STM32CubeProgrammer软件序列号显示异常的问题。后两款芯片都支持对stm8在线调试功能,但是不支持STM32CubeProgrammer软件烧录程序,这一点,合宙的Air32F103CBT6芯片支持STM32CubeProgrammer软件对stm32烧录以及目标OB选项参数配置。

⛳效果图和PCBA实物图差异说明

✨由于设计之初只考虑当ST-LINK V2来用,主要是用来给STM8stm32烧录程序。没有考虑到会将固件升级到ST-LINK/V2-1,带虚拟串口和虚拟U盘。

  • 📌参考电路一:UM0817文档
  • 📌参考电路二:ST-LinkV2原理图:

🚩烧录器主控芯片说明

🔰主控使用STM32F103CBT6,或者采用合宙的Air32F103CBT6芯片也可以,极海的APM32F103C8T6以及合宙的Air32F103CBT6已经实物验证了可以使用ST-LINK/V2、ST-LINK/V2-1固件并烧录STM32。

  • 🔖如果采用合宙的Air32F103CBT6芯片,可以烧录对应固件当作:ST-LINK/V2、ST-LINK/V2-1、CMSIS-DAP其中的一种。如果需要通过IAR或者STVD软件针对stm8在线调试,不推荐使用该芯片,而是使用STM32F103CBT6主控,或者使用极海的APM32F103C8T6IARST Visual Develop软件在线调试功能都正常。
  • 如果采用极海的APM32F103C8T6当作:ST-LINK/V2那么就不支持STM32CubeProgrammer软件对STM32进行程序烧录以及OB选项修改,无法连接到目标芯片,序列号显示@符号。通过STM32 ST-LINK Utility软件点击Refresh后,烧录器的序列号能显示支持,以及Keil在线烧录不受影响。
  • 🌿采用合宙Air32F103CBT6芯片烧录ST-LINK/V2固件后,连接烧录目标信息,烧录器的序列号:B55B5A1A0000000064B9D201,能正常显示。

  • 主控采用极海的APM32F103C8T6芯片烧录ST-LINK/V2固件后,连接烧录目标信息,STM32 ST-LINK Utility软件,能正常显示。

    使用STM32CubeProgrammer软件,则显示@

  • 主控使用STM32F103CBT6序列号信息340024000C0000373446524E

    而使用STM32CubeProgrammer软件,则显示4

🍁Air32F103差异说明

⚡整体来说可以使用,但是当ST-LINK/V2使用时,针对stm8在线调试功能表现不佳,对stm32功能正常。Air32F103在对stm8进行在线调试功能上表现差劲,不管是通过IAR软件调试还是STVD软件发现很难实现在线调试。在点击调试按钮时,容易报the debugging session could not be started.弹窗,SWIM error [30006]错误信息,有时多点几次又能成功进入调试。如果需要将Air32F103ST-LINK/V2使用特别注意这一点。当通过stm8专用下载软件:STVP进行下载,每次硬件连接后需要点击3次,才能下载成功,在不重复拔插情况下,后面可以连续下载成功。主控使用STM32F103CBT6不存在以上问题。

  • 📽采用主控使用STM32F103CBT6stm8的在线调试功能演示:

🌼固件烧写和固件升级说明

1. 将烧录器烧写成支持stm8和stm32固件ST-LINK/V2

    1. 将原始固件:STLinkV2.J16.S4.bin烧录进去.
    1. 升级固件。升级工具可以选择:stsw-link007中的升级工具ST-LinkUpgrade.exe或者使用STM32CubeProgrammer工具进行升级,最终升级到当前最新版本V2J40S7
  • 🌿stsw-link007\Windows\ST-LinkUpgrade.exe
  • 🌿STM32CubeProgrammer工具

🍁两个工具进行升级,可以看到最终升级的固件版本有差异。使用stsw-link007工具最终升级的版本是V2.J40.S7,而STM32CubeProgrammer工具最终升级到的版本是V2.J39S7

  • 🌿使用STM32CubeProgrammer工具升级之后:


🚩1. 以上两个工具升级,不管是使用stsw-link007工具升级到V2.J40.S7,还是通过STM32CubeProgrammer工具升级到V2.J39S7,可以使用Keil软件烧录或STM32 ST-LINK Utility烧录工具,但是对于主控采用STM2F103CBT6芯片的,STM32CubeProgrammer工具不能下载,可以识别到烧录器以及固件版本,序列号显示7,感觉是这里异常导致不能下载程序。不影响使用命令行调用下载命令。例如在Arduino IDE环境下,通过命令行执行烧录,不知道是不是买的这颗芯片的个别体质问题还是其他原因,使用合宙的Air32F103CBT6芯片的可以正常显示序列号,并且可以使用STM32CubeProgrammer工具直接下载和配置OB选项。

🚩2. 合宙的Air32F103CBT6芯片支持烧录ST-LINK/V2固件,当作STM32 调试和下载器使用以及对stm8的程序下载功能(在线调试功能表现差劲)。


🔰在STM32 ST-LINK Utility软件里烧录器序列号显示:

  • 🌿通过STM32CubeProgrammer工具升级到V2.J39S7之后,还可以使用stsw-link007工具升级到最终的V2.J40.S7。当然你可以直接使用stsw-link007工具来直接升级到V2.J40.S7

🌴升级之后的版本:

  • 🔰使用STVP工具,给stm8程序烧录:

  • ✅支持IAR软件在线调试

  • 🔨也还可以通过STM32CubeProgrammer工具降级到V2.J39S7

2.将烧录器烧录成带虚拟U盘和虚拟串口ST-LINK/V2-1(不支持stm8烧录)

  • 🍂通过STM32 ST-LINK Utility工具烧录固件STLinkV2.J28.M18.bin
  • 🍂通过其工具STM32 ST-LINK UtilityST-LINK升级功能,升级到V2.29.M18.
  • 🔧也可以使用stsw-link007工具升级到最新固件版本:V2.J40.M27

  • 🛠使用stsw-link007工具升级。

  • 🎋也可以使用STM32CubeProgrammer工具为烧录器升级固件,不过当前升级的固件版本还没有stsw-link007工具升级的固件版本高。

  • ⚡升级后可以使用STM32CubeProgrammer工具给STM32下载程序。

3. 刷DAP-LINK固件

🎉DAP-LINK是开源的,网上可以找到很多STM32f103刷dap-link固件。烧录和调试接口和ST-LINKV2的SWD接口共用,所以也可以用来刷DAP-LINK固件,来当DAP-LINK使用。在立创开源广场也有同类开源项目。

  • 这里演示烧写合宙提供的dap固件:air32_daplink.hex
  • 🔖刷完固件后,显示的设备信息:
  • ⏳DAP-LINK,Keil烧录,参数设置。
  • STM8和STM32的ST-LINKV2在线调试器/编程器官方说明文档:https://www.st.com/resource/en/data_brief/st-link-slsh-v2.pdf
  • STSW-LINK009为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动:https://www.st.com/zh/development-tools/stsw-link009.html
  • 🎈STM32CubeProgrammer烧录工具:https://www.st.com/zh/development-tools/stm32cubeprog.html
  • 📍STSW-LINK007升级工具:https://www.st.com/zh/development-tools/stsw-link007.html
  • 📌 STM32 ST-LINK Utility烧录和固件升级工具:https://www.st.com/zh/development-tools/stsw-link004.html

⚡其固件请前往立创开源链接附件下载,这里不提供。

  • 🔰相关原理图参考:

⚡官方ST-Link V2原理图:

链接:https://pan.baidu.com/s/1nn_U7SOybdUTGptBbAKUTA 
提取码:q3no

⛳开源地址

  • 📌立创EDA:https://oshwhub.com/perseverance51/st-linkv2-xia-zai-qi

有关【开源电路】ST-LINK/V2、ST-LINK/V2-1、DAP-LINK烧录器(已验证)的更多相关文章

  1. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  2. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

  3. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  4. ruby - Hanami link_to 助手只呈现最后一个元素 - 2

    我是HanamiWorld的新人。我已经写了这段代码:moduleWeb::Views::HomeclassIndexincludeWeb::ViewincludeHanami::Helpers::HtmlHelperdeftitlehtml.headerdoh1'Testsearchengine',id:'title'hrdiv(id:'test')dolink_to('Home',"/",class:'mnu_orizontal')link_to('About',"/",class:'mnu_orizontal')endendendendend我在模板上调用了title方法。htm

  5. Ruby 守护进程导致 ActiveRecord 记录器 IOError - 2

    我目前正在用Ruby编写一个项目,它使用ActiveRecordgem进行数据库交互,我正在尝试使用ActiveRecord::Base.logger记录所有数据库事件具有以下代码的属性ActiveRecord::Base.logger=Logger.new(File.open('logs/database.log','a'))这适用于迁移等(出于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时脚本失败并出现以下错误/System/Library/Frameworks/Ruby.frame

  6. ruby Mechanize : Follow a Link - 2

    在Ruby上的Mechanize中,我必须为我访问的每个新页面分配一个新变量。例如:page2=page1.link_with(:text=>"Continue").clickpage3=page2.link_with(:text=>"About").click...etc有没有一种方法可以在没有保存每个页面状态的变量的情况下运行Mechanize?喜欢my_only_page.link_with(:text=>"Continue").click!my_only_page.link_with(:text=>"About").click! 最佳答案

  7. ruby - 在模块/类之间共享全局记录器 - 2

    在许多ruby​​类之间共享记录器实例的最佳(正确)方法是什么?现在我只是将记录器创建为全局$logger=Logger.new变量,但我觉得有更好的方法可以在不使用全局变量的情况下执行此操作。如果我有以下内容:moduleFooclassAclassBclassC...classZend在所有类之间共享记录器实例的最佳方式是什么?我是以某种方式在Foo模块中声明/创建记录器还是只是使用全局$logger没问题? 最佳答案 在模块中添加常量:moduleFooLogger=Logger.newclassAclassBclassC..

  8. ruby - 使用指向 ruby​​ 可执行文件的符号链接(symbolic link)时查找相关库 - 2

    假设您有一个可执行文件foo.rb,其库bar.rb的布局如下:/bin/foo.rb/lib/bar.rb在foo.rb的header中放置以下要求以在bar.rb中引入功能:requireFile.dirname(__FILE__)+"../lib/bar.rb"只要对foo.rb的所有调用都是直接的,这就可以正常工作。如果你把$HOME/project和符号链接(symboliclink)foo.rb放入$HOME/usr/bin,然后__FILE__解析为$HOME/usr/bin/foo.rb,因此无法找到bar.rb关于foo.rb的目录名.我意识到像ruby​​gems这

  9. ruby-on-rails - 为什么 Rails 使用像 link_to 这样的辅助方法而不是 <a href...>? - 2

    我正在学习Rails,我注意到Rails不断地使用诸如link_to之类的辅助方法,而不是仅仅使用普通的html。现在我可以理解为什么他们会使用他们会使用一些辅助方法,但我不明白为什么他们更喜欢辅助方法而不是直接编码html。为什么Rails更喜欢辅助方法而不是您必须手动编写html?为什么Rails团队做出这样的设计选择? 最佳答案 在Rails应用程序中,通常使用URL方法和内容方法生成链接,例如这绝对比将它们放入中更易于管理手动标记。">(您正在使用路由器生成这些URL,对吗?如果您硬编码/users/1并决定稍后将其设为/u

  10. SCIM v2 的 Ruby 实现 - 2

    SCIM是Google、Salesforce、PingIdentity等提出的用户配置的新标准。是否有现有的ruby​​实现来支持它?SimilarbutforJava 最佳答案 您可以获得一个面向Okta的开始fromhere或从头开始here但我认为您只能靠自己。耶!您有机会为Ruby社区贡献一个开源项目:) 关于SCIMv2的Ruby实现,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

随机推荐