STM32單片機在Keil5下仿真的問題攻克

2022-06-01     大方老師單片機

原標題:STM32單片機在Keil5下仿真的問題攻克

STM32單片機Keil5下仿真的問題攻克

\\\插播一條:文章末尾有驚喜~///

作為一個單片機開發人員,每天跟我們打交道的工具沒非兩種,一種PC機上的開發環境,假Keil MDKIAR Embedded Workbench等等;而另外一種呢,沒非就是集程序下載、調試功能於一體的編程器、這個叫法比較混亂、也能夠叫編程器、下載器、仿真器(但我認為不叫燒錄器,燒錄器一般值批量燒錄階段所用的那種能夠快捷完成晶片批量燒錄的玩意)。後文統稱編程器。

常見的編程器有以下幾種:

1、自然是老Jlink;

其實拆開市面上常見jlink,能夠看到各種各樣的板子:

這都是從某寶上買的,標註著正版、永不掉固件jlink,這樣的東西在我手裡壞2個,一初始我還有毅力去找XP系統刷一下固件,但是刷了沒幾天就又壞了,而且身邊XP是越來越少了,想著再買一個也才幾十塊,完全沒必要浪費這個時長去刷了。當然很多人喜愛動手挑戰一下,但是當你的項目忙的不可開交,而這個時候你的編程器固件掉了,你還要跑去找XP給他刷固件,想想都不爽。

有朋友告訴我,自己經常要去其他城市出差,調試自己的板子SEGGER的原版太貴,只好從某寶買幾十塊的用,而且買一個又擔憂壞了耽擱事,所以每次出差至少都帶兩個,然而這個碩大的體積是在讓人不爽,出差的時候要在極其寶貴的行李空間裡放兩jlink,也是夠了。

也有人埋怨jlink的接口太不方便了,雖然大多數時候調試的時候,只用了四五根杜邦線截出來,然而他的接口卻保留20腳,其中有一整排除了一個腳全GND了。做個板子,入股只留幾個排針,那樣不好插線調試,假如想留一個jlink一樣的接口,又覺得會顯得板子笨重,而且在一些對尺寸有嚴格要求的產品里,壓根沒有空間放下這20腳的接口。

這時候有人提出了攻克方案,也就是下文的第二種編程器:

2ST-LINK

可是仔細看看這個並沒有攻JLINK的一些缺少點,接口還是笨,體積還是不小。那麼萬能的某寶上還有一種攻克方;

各種各樣的顏色,而且價格比較便宜,十五塊左右就能搞到,嘗鮮買個試試,發現挺好用。和優盤一樣大小的身板,出差帶著也方便。但是某一天它忽然不工作了,插上之後電腦沒有人任何反應,我經過一系列的診斷,最後懷著沉重的心情給它下了死亡通知書。

然後再去買下載器,我又不想買太貴的,又想買個小體積的,想來想去,最終一次買了三四個這種小STLINK,我知道他會壞,但是一次買好幾個就不怕他壞了,而且好幾個的價格也就是一個某版jlink價格。

接下來沒意發現了淘寶上有一款叫elink的玩意:

3elink32-pro

這個東西看起來很棒,由於它集成了串口調試,而且貌似速度很快,正好我和合泰半導體這個公司有業務往來,就請合泰的相關負責人寄我一個樣品試用,試用效果很棒,唯二的缺少點就是體積太大(jlink差不多)、價格太貴。

那麼有沒有可能和合泰達成一個協議,共有作出一款合乎以下需求的編程器(下載器、仿真器、調試器)呢?

a、能支持簡直所32ARM-CortexM內核單片機

b、小巧便攜

c、不掉固件

d、去掉多餘接口,只保swd

e、增加虛擬串口功能

f、可對外供電、電流過大自動切斷

g、低老本,大多數人買得起

h、沒需驅動,即插即用

於是我和合泰的相關人員進行溝通(這個溝通大略1610月初始的)。

經過屢次溝通,最終確定:elink32-pro為原型,去掉一些沒用的東西、增加相關功能、由合泰半導體提供固件,我提供硬體及出產。

溝通中爭議最多的一個問題RST引腳是否保留。由於我們使stlinkjlink等時經常會發生以下問題:

這個問題能夠通過一下方式攻克:

但是還有很多問題是通過開發環境配置修改所不能攻克的,這時候就須要保RST,然後RST接在開發板上,就能完成下載,這個功能主要是波及以下幾種使用場景:

1swd引腳復用(例STM32F103PA13PA14在程序中被設置為其他功能),這時候須要編程器能對開發板進行硬體復位。

2、晶片工作狀態為低功耗或者睡眠模式,這時候須要編程器能對開發板進行硬體復位。

所以最終探討結果是依照合泰半導體廠商提供的方案來,畢竟他們是半導體廠商,考慮問題很嚴謹、完善。

方案定稿之後,簽訂了軟體使用合同與保密合同,接下來是合泰提供帶固件的晶片,我來做整體設計並完PCB設計、焊接調試等詳細的工作。經過一個月的時長、出了幾個樣品,經過測試發現使用不順手,等各種問題。假如第一次構思的是直接在板子上加一usb公頭,然後就能夠插在電腦上了,但是後續使用發現,這樣不是很方便,由於這樣的話就會導致宗旨板距離電腦獨有杜邦線長度的距離,假如杜邦線太短,挪動不太方便,甚至此時有些電腦USB口在後面,這樣不方便用戶下載程序後觀察現象。而杜邦線太長則會不穩定,很多情況下,程序沒法下載是與杜邦線連接不穩定有關係的(在使用優盤狀STLINK時,經常由於杜邦線太長或者接觸不良導致下載失敗,後來換成航空線直接焊接上去就能夠下載,說明這stlinkio口驅動才能欠佳)。

考慮以上的缺少點,我決定使用此時最常見micro-USB線來連e-Link32PC機。於是經過改版e-Link32變成了下面這樣(手工焊接調試版):

其中白色SH1.0端子和右側5P彎針都SWD接口。為啥要增加一SH1.0端子呢,由於在有些電路里,保2.54的插針都是對空間的浪費,而且插針是要占PCB的雙面,對其他布線造成了影響。所以增加SH1.0端子接口,以後大家做板也能夠使用這樣的埠、減小板子面積,方便調試。

這個版e-Link32我贈送給五個人進行測試,大略是1612月份初始測試的、178月份沒有人任何問題,所以我才批量1000個。選用的是最可靠PCB提供商和貼片廠商,做出的板子如下:

一個產品必需有完善的文檔。在量產的階段我也進行了相關文檔的編寫

詳細文檔能夠在淘寶寶貝詳情下載。大略詳細內容如下:

另外清晰的闡述elink32如何連接開發板和電腦:

以及如何elink3220jtag接口的開發板下載程序:

此時能夠說完成了當時提出的這個需求,實現了具有以下功能的調試器:

經測試,可用於但不局限於以下晶片的調試:

STM32F0,STM32F1,STM32F2,STM32F3,STM32F4STM32F7

STM32L0STM32L4

LPC800XX,LPC1100XXX,LPC1200XXX,LPC1300XXX,LPC1500XXX,LPC1700XXX,LPC1800XXX,LPC4000XXX,LPC4300XXX,LPC5400XXX,

K60

HT32F16XX,HT32F52XXX

NV32F100XXX

EFM32XXX

W7500

NXP iMX RT1052系列

列表有待完善。

有人提出了:帶串口的東西其實早有了,那麼你能夠去看看,網絡上也有很多教程教大家做這樣的下載器的,我能夠花一兩天時長依據教程完成這麼一個下載器,但我肯定沒有勇氣把他批量了放在市場上給大家用。一款工具性的東西須要經過長期的穩定性測試、還須要對加工工藝進行測試、這些流程都增加了產品的老本,但是卻是保證用戶買到有保證的產品的一個必需的投入。

委託西安某軍工企業進行了溫沖測試與高低溫測試。

兼容市面上絕大多ARM Cortex-M系列單片機。

500ma3.3v對外供電電流,加自恢復二極體保駕護航。

半導體原廠提供固件與技術支持。

如何使用串口來STM32下載程序

轉自如何使用串口來STM32下載程 - whik -博客 (cnblogs.com)如侵權,聯絡刪!!前言第一次進STM32的時候,不知道有調試器這個東西,所以一直是通過串口來STM32下載程序?

靜水流深

如何了STM32單片機引腳的復用功能?

北島李工發表於單片機與...

STM32單片機的啟動過程

STM32單片機的啟動過程分享這篇文章,談一 STM32啟動流程。假如讀者朋友已經有過彙編相關根底,能夠夠好了解本文內容。彙編語言是C語言更接近機器底層的程式語言,能讓我們更好的了解?

一個發表於億配芯城...

彩蛋:最近有同學跟我要單片機的資料,我特意花幾個月時間,總結了我10年產品研發經驗,資料包幾乎覆蓋C語言、單片機、模電數電、原理圖PCB設計、單片機高級編程等等,非常適合初學者入門和進階。除此以外,再含淚分享我壓箱底22個熱門開源項目,包含源+原理+PCB+說明文檔,不是市面上打包賣的那種課程,我認為教程多未必是好事10年前我自學快,除了自身執行力以外,還有就是教程少。不要害羞做伸手黨,等你一個小紅點。後期我也會組建一些純技術交流的小圈子,讓大家能認識更多的大佬,有個好的圈子,你對行業的認知一定是最前沿的。

文章來源: https://twgreatdaily.com/zh-cn/f18f6e56a96da8cd243ff47aa1e51818.html