2020年11月23日 星期一

充電一下 -- 安裝 E1 Emulator遇到 [Renesas E-Series USB Driver 驅動程式並不預期在這個平台上工作] 的問題

 這是一個非常令人沮喪的問題

最終也是令人十分振奮的結果

故事是這樣子的:

============================================================

因為系統不斷更新且新裝置對電腦的要求越來越高

公司裡在經過幾輪的電腦更換後

發生了 E1 下載器無法安裝的問題

在瑞薩官網下載了 E1USBDRIVER.exe 進行安裝

卻無論如何都無法安裝成功

安裝好 USB driver 後將 E1 接上電腦

最後總是出現 Renesas Emulator (無法辨識) 的裝置

不管重新插拔裝置或是改變安裝流程(先插E1再安裝驅動程式)

都無法改變 <<Renesas Emulator (無法辨識) 的裝置>> 這個結果

網路上有人說是裝置衝突

也有人說是BIOS版本問題

更有人說是安裝了虛擬光碟的緣故

可是都跟我的故障原因一點關係也沾不上邊

官網也找不到有人討論這樣的問題

只好自己想辦法

============================================================

先假設因為官方提供的驅動程式版本太新

導致我的 E1 無法被新版本的驅動程式辨別

那麼改用舊版本的驅動程式是不是可以呢?

找了一下電腦裡 Program Files (x86)\Renesas\ 資料夾內

還有一個 FDT4.09 的資料夾

這是瑞薩的官方燒錄軟體

裡面有個 Drivers\for_64bit 的資料夾

竟然就是 E1 舊版本的驅動程式

於是我就直接從這裡重新安裝驅動程式 (執行dpinst.exe)

發現竟然安裝成功了!

本來開心地以為 E1 已經安裝好了

但是到裝置管理員查看時發現

還是 <<Renesas Emulator (無法辨識) 的裝置>> 這個結果

============================================================

我不信邪 (我姓李 Xp)

用了 Driver Booster 這套工具

將所有 Renesas USB 裝置資料全部清除

然後又重新安裝了 Program Files (x86)\Renesas\FDT4.09\driver\for 64bit\dpinst.exe

這一次依然是顯示安裝成功的訊息

但不一樣的是:

系統竟然找到了 E1 並真的安裝成功

我找了片有 RX62T MCU 的板子進行下載

HEW環境提示我 E1 的韌體版本太舊需要更新

更新後就是活龍一尾啦!

可喜可賀~~

============================================================

雖然只有短短幾行文字

卻是奮戰一整個上午的結果 (約三~四小時)

如果有人跟我遇到一樣的問題

希望能幫你縮短一些除錯的時間

讓你的 E1 早日復活


2020年10月5日 星期一

充電一下--Thunderbird 更新後,信件消失/遺失/不見

 Thunderbird是一款免費的郵件管理軟體

擁有非常多的粉絲

不過到 V68 以後的版本

沒有支援繁體中文


由於我的電腦有安裝軟體自動檢查版本更新的工具

所以忘了 Thunderbird 不用更新這件事

不小心把 Thunderbird 變成了英文版


事實上

就算改用英文版也沒什麼大問題

但一堆裡面設定的英文欄位就變得很困擾

更詭異的是

有的信件匣還是原來的中文

有些又被改成英文

寫信的欄位也有了不少變化

用起來很不習慣


因此

我又重新安裝了舊版本的 Thunderbird 

想說應該安裝完就可以回復以前的使用習慣

剛開啟舊版本的 Thunderbird 

看到熟悉的中文介面很開心

此時英文版竟然也同時存在

為了怕自己開錯捷徑

便把英文版的捷徑從工作表取消釘選

接下來就是災難的開始......


當我開啟舊版本的信件後

發現收件匣內一封信也沒有

而英文版的執行檔

無論如何都找不到

因為不管我開啟 Thunderbird 資料夾內哪一個執行檔

出現的都是中文版的介面

裡面的信件空空如也

天阿!

好幾年的信件呀!

還有最近正在聯繫的工作細節

......

這根本不只是災難可以形容呀!


上網搜索

發現有一個叫做inbox的檔案

被存放在USER/NAME/AppData/Roaming/Thunderbird/Profiles

裡面某一個資料夾中

並非安裝 Thunderbird 的原始資料夾

當我點進去某一組像是亂碼名稱的資料夾時

發現我所點開的inbox檔案大小竟然也是 0KB

Oh!  My God !!

就在我以為每一個像是亂碼的資料夾內

都是0KB的inbox檔案時

忽然在某個結尾是xxxx-release的資料夾內

發現一個138MB的inbox檔案

不過因為我不管如何開啟Thunderbird都是沒有信件的狀態

所以便將這個inbox複製到日期最近的一個資料夾內

取代掉原來0KB的inbox檔案

再一次開啟時

看到了久違的信件

雖然過程只經歷了短短的一個多小時

內心的感覺卻像是洗了趟三溫暖

掉入地獄又重返人間的感覺真是超刺激


網路上大多數是提到

inbox.msf的內容錯誤

移除後重新建立新的收件匣

可以將聯結的訊息回復

不過我的狀況是inbox的內容是對的

但inbox變成了新安裝版本的空資料夾

連結也都全部指向這個空資料

所以才看不到信件


複製檔案取代了原有的空資料

其實還是有些冒險

因為我並不確定信件的格式

是否可以被舊版本的Thunderbird所讀取

因為某些軟體更新後會修改檔案的資料格式

比方調整欄位或資料排放的順序

如此一來就算我還原了inbox這個檔案

也不能正確地開啟信件

好在最後的結果是順利找回信件

可喜可賀

也把這個還原的過程記錄下來

希望可以幫助到和我遇到同樣問題的使用者






2020年7月28日 星期二

STM32的Cube生態系

大家好
最近過得好嗎?

今天要來分享一下STM32在Cube系列中對馬達控制所做的努力
如果你本身也在從事馬達控制相關的行業
歡迎您一同來交流分享
我不是STM官方
單純站在一個使用者的角度來討論
如果有錯誤的地方
也請不吝指教

==========================================================

Cube系列是STM32最近幾年軟體開發平台整合的重點
為了可以更好地將所有的元件做系統化的連結
提供更方便、更符合使用者需求的開發環境
因此才有了Cube這一整個系列的軟體工具

==========================================================

從早期蒐集MCSDK開始
到Cube的加入
一路走來也有七八年的時間了
STM32在這部分的整合一直很用心
認真說
剛開始的MCSDK很工程師style
雖然有雛形出來了
但使用上還是有很多的不便
特別是拿到完全不知道特性的馬達
根本不曉得該怎麼切入
然而到了4.x版本中後期
銜接到5.x版本的這段時間
MCSDK開始變得好用
很大一部分原因就是有了Cube的加入
還有Motor Profile的加入與改良

==========================================================

現在 (2020.07.29)
基本上整個馬達的開發環境應該算是健全了


推薦幾款開發工具的官方連結
有興趣的人可以去下載來玩看看

X-CUBE-MCSDK (New Version 5.4.4)

STM32CubeMX (New Version 6.0.0)

STM32CubeIDE (New Version 1.4.0)

STM32CubeProgrammer (New Version 2.5.0)


==========================================================

X-CUBE-MCSDK (New Version 5.4.4)

這款老牌的馬達開發環境
應該所有STM32愛用者有在玩馬達控制的都不陌生
目前最新的版本已經更新到5.4.4
而最新的版本支援了什麼?

第一個最重要的
就是馬達特調晶片的加入 (G4 系列 MCU)
(謎之音:那不是去年的事了?ESC板子就是用G4呀!)
好啦好啦!我當然知道去年就加入了
但是今年才完善的呀!
不管是對開發板的支援還是PID控制的調整
都比以前要順得多

第二個重要的
就是Position Control的加入
這在5.4.3的版本中就有了
但同樣在5.4.4的版本更加完善
將大多數 G4 系列可以對應的板子都加進來
不過如果您用了5.4.3以後的版本
就不能改回5.4.1以前的版本
原因也在於Position Control的加入
讓原來的馬達參數結構有了一些變化
所以只要換上新的版本後就回不去了
要更新跑道的人記得先將舊版本備份唷!

第三個重要的
就是CubeIDE的加入與完善
之前一直在用MDK5(Keil C)
(SW4、CubeIDE編譯門檻頗高)
這一次用CubeIDE真是無縫銜接
不會再出現一大堆無法編譯
卻搞不懂該怎麼調整的程式碼或環境設定
新版本程式碼一產生就可以編譯成功
直接下載到板子上
然後馬達就動起來了
一整個超感動!

然後跟之前一樣
也是有分一般的版本及完整的版本
差別在馬達控制函數有沒有開放給自己改
當然FOC底層的程式碼還是看不到的
但是可以引用的參數就有開放調整
不是完全寫死的
如果您是進階一些的馬達控制開發人員
建議要申請完整版來試唷!

==========================================================

STM32CubeMX (New Version 6.0.0)

你沒看錯
CubeMX真的已經進化到6開頭的版本了
不過對馬達控制來說
5.6.x的版本應該就很好用了
H7系列是一個新境界
但對馬達控制並不是那麼適合

什麼是CubeMX?
簡單說就是幫你設定好IO功能的開發環境
現在的User Manual動輒數千頁
要看完再來設定MCU都已經天荒地老了
所以圖像化的設定環境已經是趨勢
MCSDK更是不能沒有CubeMX
少了就完全無法產生程式碼了
所以安裝完MCSDK的人
記得要接著安裝CubeMX

==========================================================

STM32CubeIDE (New Version 1.4.0)

這個就是官方提供的免費編譯環境
如果你不想買Keil C或IAR C
那可以試試看用CubeIDE
雖然程式空間轉出來比Keil C多了快一倍(FOC的部分)
(也許是我不知道該怎麼設定編譯環境,總之以初始設定轉出來真的多一倍)
但其他IO應用倒是還好
如果沒有效率上的特別要求
一定要試試免費又好用的CubeIDE
而他所整合的周邊監看環境也很好用
如果你的應用剛好需要
可以試著用監看環境協助你調整一下程式

而我認為最大的好處
其實是程式閱讀的部分
可以在程式碼直接看到函式內容
也可以在Outline視窗中直接看到所有變數、函式的名稱
點選就可以直接找到相關內容
這部分Keil C真的沒得比
同時因為是官方軟體
所以連同CubeMX也整合進來
以往要開兩套軟體交替設定IO、GenCode
設定後MDK5還要Reload程式碼才能編譯
現在就在CubeIDE裡一次搞定
雖然還是會有一些過場動作
(詢問要不要GenCode、Reload程式碼時的視窗更新...)
但是整合在一起
用起來的感覺就是不一樣
你也試試看就知道我在說什麼了

==========================================================

STM32CubeProgrammer (New Version 2.5.0)

因為新的IC更新
所以燒錄工具也就跟著更新
雖說在CubeIDE介面也能燒錄程式
但是自動連續燒錄的功能
就只能在CubeProgrammer中完成了

什麼叫做自動連續燒錄?
就是字面的意思
當你有一批板子要量產
可是MCU的程式是空的
你只要把要燒錄的程式載入CubeProgrammer
然後STLINK插上板子後按一下Enter鍵
程式就自動下載進去了
接著重複同樣的動作:
拔下STLINK => 在另一片板子插上STLINK => 按Enter
很快就把一群板子燒錄完成

不要在意[按下Enter]這個動作
感覺好像不那麼Auto
但是他又不曉得你換個插頭需要多久
畢竟下載功能最初設計時就沒有自動偵測IC接上的功能
還是要透過手動的方式來告知
這樣已經很快很快了
如果128KB燒到滿
也是兩三秒鐘就可以換一片燒錄
更換板子的速度都沒這麼快呢!

==========================================================

以上[非專業]介紹的STM32Cube系列
希望各位同好有Get到他們的優缺點
有興趣的人
找片價廉物美的開發板
馬上就來試試看吧!

(很久以前的開發板也可以拿來試唷!)
(一種舊板子大復活的感覺...)