我前東家師傅用STM32H7做伺服的,然後客戶反應說伺服變參數。伺服一共2000多個參數,偶爾變幾個參數銷售一開始認為客戶自己調錯了,而且一口咬定對方亂動上位機了。後來隨著產量越來越大發現這不是簡單的操作失誤,而是伺服參數真的會發生詭異的變化。而且這種變化在一些工況中是致命的,比如電機正反轉參數變化。然後師傅開始著手解決這個事情,花了很久的時間才復現了變參數這個現象。
最後確認是STM32芯片的問題,把STM32中國團隊找來沒解決,後來STM32國外的研發人員參與進來,發現他們的芯片為了達到最高的執行效率節省資源,就會預設進行亂序執行,但芯片的亂序執行功能會打亂比如通訊協定的某些動作順序,進而造成參數傳輸中發生變化。好在我師傅是個很較真的人,死磕這個問題,最後解決了。我敢保證,很多使用STM32的廠家可能到現在都沒有意識到有這個問題存在。
PS1:我看到有些回答者之前發生了爭論,其實做技術的不要想太復雜,大家都是分工合作的。我就舉一個例子:我做一個功能在所有芯片上都是好的,在ST其他系列也是好的,但是換了新型號的芯片就出了問題,而且ST的人來了修改後變好了,那100%說明是ST的問題,至於你這個芯片怎麽做出來的用的什麽沙子,什麽提純工藝,你的內核架構怎麽設計,怎麽做在芯片上,誰代工的,跟我沒半毛錢關系,這也不是一個伺服工程師應該去想的。
PS2:我覺得現在都是大分工的時代,做伺服的不會去做芯片,所以優秀的企業應該對工作內容有一個清晰的解構,能夠在出問題的時候分清楚問題出現在哪個層面。我看到個別人做不到這一點,認為寫程式碼的是萬能的,可以彌補芯片的缺陷,我認為是很可笑的,這樣的人我覺得是不可能做出好的產品的,因為根本就不專業,這樣的人所處的公司也沒有清晰的職能結構。
PS3:評論區大家互相爭論有點激烈,為了營造合適的討論氣氛。我立個規矩:作為一個合格的工程師,下結論的時候請一定闡明這個結論的依據,理由,不應該張嘴就來毫無根據的抹黑貶低別人,雖然同行是冤家,但素質也不能這麽低下,後面素質較低的評論我直接刪除。