作者:Dan Eddleman and Malavika Sajikumar
Linduino 是凌力爾特的 Arduino 兼容系統,用于向凌力爾特集成電路的客戶分發固件庫和示例代碼。該設計基于Arduino Uno,使用Atmel ATmega328處理器,同時增加了14針QuikEval。?可插入近 100 個子板的連接器。這些電路板展示了凌力爾特的部件,包括模數轉換器、數模轉換器、高壓功率監控器、溫度測量設備、射頻合成器、電池組監控器等。
最初的Arduino Uno(可從 www.arduino.cc 獲得)包括一個很少使用的功能,使其能夠在切割PCB上的銅跡線后與Atmel硬件調試器配對。在此模式下,圍繞 Microsoft Visual Studio 構建的免費提供的 Atmel Studio 開發環境支持廣泛的調試功能,包括逐行代碼單步執行、斷點支持和輕松查看變量值的功能。不幸的是,在Arduino Uno的PCB走線被切斷后,只有硬件調試器才能將新固件(草圖)加載到Arduino Uno;標準Arduino IDE通過USB電纜加載新固件的能力將丟失,直到用一點焊料重新連接走線。
當我在2013年設計Linduino時,我增加了一個規定,讓用戶可以焊接一個3引腳針座,這樣就可以隨時在正常操作和支持硬件調試器的操作之間進行選擇,而無需進一步焊接。
雖然 Arduino IDE 是一個絕佳的環境,讓用戶在 10 分鐘內啟動并運行凌力爾特演示板和示例代碼,但其簡單性是有代價的。它不提供更高級的 IDE 的功能,例如實時調試代碼的功能。當我在 Linduino 上開發自己的代碼時,我會使用 Atmel Studio 和 Atmel-ICE 硬件調試器。到目前為止,將 Arduino 草圖轉換為可以使用硬件調試器進行調試的 Atmel Studio 項目是一個相當復雜的過程。
最近,Atmel Studio 的 Visual Micro 加載項簡化了此過程,因此我創建了本教程,以展示將 Linduino(或 Arduino)草圖轉換為可以使用 Atmel-ICE 硬件調試器進行調試的表單所需的步驟。這篇博客的長度可能令人生畏,但過程相當簡單,我已經努力從頭到尾包含所有步驟。
話雖如此,我不會向全新的Arduino用戶推薦此過程。如果您編寫的代碼少于 100 行,Arduino IDE 很簡單,而且可以正常工作。隨著代碼越來越大,并且您接受調試代碼所花費的時間比編寫代碼所花費的時間更多,您將欣賞硬件調試器提供的功能。但是,請理解,如果您錯誤地覆蓋了Linduino的引導加載程序,您可能會使Linduino變磚。引導加載程序可以使用 Atmel-ICE 恢復,因此 Linduino 并不是真正的磚砌,但如果您是不熟悉術語引導加載程序的新手用戶,這可能不適合您。
安裝 Linduino Library 和 Arduino IDE
在此處下載林杜伊諾圖書館
圖1.下載林杜伊諾圖書館。
下載完成后,打開包含 *.zip 文件的文件夾,然后右鍵單擊 LTsketchbook.zip將內容提取到用戶的“文檔”文件夾中,如下所示。
圖2.從LT素描本中提取內容。
圖3.用戶文檔文件夾。
在LTsketchbook.zip提取時,下載Windows Installer for Arduino IDE版本1.6.7。在編寫本文時,最新版本 1.6.10 和 1.6.11 無法使用此調試方法正常工作。
圖4.Arduino IDE.
下載完成后,運行 Windows 安裝程序并接受所有默認設置。安裝完成后,打開Arduino應用程序并選擇文件→首選項。
圖5.打開 Arduino。
按“素描簿位置”旁邊的“瀏覽”按鈕,然后選擇新提取的 LT素描簿文件夾。此外,在“在檢查編譯和上傳期間顯示詳細輸出”旁邊,然后按“確定”。
圖6.提取的LT素描本。
選擇素描本→實用工具→MyBlink
圖7.我的眨眼。
圖8.我的眨眼上傳。
將Linduino連接到USB端口,如果出現提示,則允許安裝驅動程序。然后,選擇“工具→端口→COMx”,其中 COMx 對應于已分配給 Linduino 的 COM 端口。在下圖中,它是 COM3。如果列出了多個端口,則可能很難確定哪個端口對應于您的Linduino。在這種情況下,請斷開 Linduino 的連接,然后再次選擇“工具→端口”以查看已刪除的 COM 端口。重新連接 Linduino 并選擇該端口。
圖9.Linduino 到 USB 端口。
接下來,按箭頭按鈕編譯并上傳到林杜伊諾。完成后,您將在Arduino IDE中看到“完成上傳”消息,Linduino的LED將開始閃爍。
圖 10.編譯并上傳我的眨眼。
配置視覺微
請仔細遵循接下來的幾個步驟,即使您尚未完全了解其目的。這些步驟對于 Visual Micro 的正確操作非常重要,原因將在開始使用硬件調試器后變得清晰。
關閉所有打開的Arduino IDE應用程序。使用 Windows 文件資源管理器,導航到 Documents/LTsketchbook/Utilities/MyBlink。在該文件夾中,將 MyBlink.ino 復制到 MyBlink.cpp。
圖 11.復制MyBlink.ino。
接下來,從MyBlink.ino中刪除所有內容并將其保留為空文件。清除內容的最簡單方法是雙擊 MyBlink.ino .Arduino IDE使用MyBlink打開MyBlink.ino.cpp在第二個選項卡中加載。清除MyBlink.ino的所有內容(鍵入Ctrl-A并按鍵盤上的刪除)。保存文件,然后再次按上傳箭頭。MyBlink.cpp的內容將被編譯并上傳到Linduino中。
雖然這里沒有顯示,但最好在 MyBlink.ino 文件中添加注釋。
/* 此文件 MyBlink.ino 故意留空,代碼已移至 MyBlink.cpp。從 ino 文件中刪除所有代碼允許此項目與 Arduino IDE 和 Atmel Studio、Visual Micro 加載項和硬件調試器正常工作。*/
圖 12.編譯并上傳了MyBlink.cpp。
關閉 Arduino IDE 并下載 Atmel Studio Web 安裝程序。
圖 13.愛特梅爾工作室安裝程序。
運行安裝程序并接受所有默認值。安裝程序可能需要很長時間才能完成,可能需要一個小時或更長時間。如果 Atmel Studio 提示需要某些 Windows 更新,請嘗試使用其提供的鏈接安裝更新。
Atmel Studio 安裝完成后,打開 Atmel Studio 并選擇“工具→擴展和更新”。
圖 14.擴展和更新。
從“擴展和更新”窗口的左側面板中,選擇“可用下載→全部”。從中央面板中,下載并安裝 Atmel Studio 7 的 Arduino IDE。Atmel Studio 可能會要求您注冊一個帳戶。完成后,按“立即重新啟動”按鈕。
圖 15.Arduino IDE for Atmel Studio 7.
Atmel Studio 重新啟動后,將打開一個 Visual Micro 配置窗口,該窗口由上一步中用于 Atmel Studio 7 擴展的 Arduino IDE 安裝。接受默認值。將草圖位置和電路板管理器字段留空,然后按確定 如果配置窗口未自動打開,請選擇 vMicro→IDE 并從下拉菜單中選擇配置管理器。
圖 16.接受默認值。
此時,Arduino IDE和Atmel Studio已經安裝了許多USB驅動程序。我建議重新啟動 Windows 以確保正確注冊所有新驅動程序。
重新啟動 Windows 后,將 Atmel-ICE3 的電纜插入 USB 端口。您將看到一條消息,指出正在設置新設備。
圖 17.設備設置安裝。
修改林杜伊諾進行硬件調試
如果尚未修改,這將是修改Linduino以進行硬件調試的好時機。拔下Linduino上的所有連接,將其翻轉并剪切如下所示的痕跡。
圖 18.切斷痕跡。
圖 19.剪切跟蹤細節。
然后,將 1mm 3 針接頭焊接到 Linduino 中,并在未標有 NORM 的引腳上放置跳線。
當跳線處于如下所示的位置時,Linduino 處于調試模式,需要硬件調試器和 Atmel Studio 對 Linduino 進行編程。Arduino IDE將無法在調試模式下對Linduino進行編程。當跳線處于NORM位置時,Linduino將與Arduino IDE一起正常工作,但硬件調試器則不能正常工作。如果沒有可用的 1mm 3 針接頭,上面顯示的切割將啟用調試模式。焊接在切口或跳線孔上的 NORM 引腳將重新啟用正常工作。
圖 20.焊接在 NORM 引腳上。
圖 21.JTAGICE3 連接器。
按如下所示的方向將 Atmel-ICE 的 6 針連接器插入 Linduino 的 6 針 ISP 接頭上。
圖 22.Atmel-ICE 的 6 針連接器位于 Linduino 的 6 針 ISP 接頭上。
對于那些熟悉Arduino電路和操作的人來說,在調試模式下,ATmega328P的RESET引腳用于傳輸有關內存,寄存器值,斷點等的所有數據,而不會中斷IO引腳。Arduino的自動復位(從FTDI的USB到串行DTR引腳耦合的交流電)與ATmega328P斷開連接。對于普通用戶來說,沒有必要了解這些細節就可以有效地使用硬件調試器。
配置我的眨眼
重新啟動 Windows 后,將 Atmel-ICE3 的電纜插入 USB 端口。您將看到一條消息,指出正在設置新設備。
圖 23.新設備設置。
如果您尚未這樣做,請重新連接PC和Linduino之間的USB電纜。
重新啟動 Atmel Studio。選擇vMicro→打開現有Arduino項目。
圖 24.打開現有的 Arduino 項目。
導航到 Documents→LTsketchbook→Utilities→MyBlink 文件夾,然后選擇 MyBlink 文件。如上所述,在使用Visual Micro打開任何Arduino項目之前,最好將*.ino文件復制到*.cpp文件,并從*.ino文件中刪除所有內容。我們在本教程的上一步中為 MyBlink 做到了這一點。如果不創建 *.cpp 文件,Visual Micro 將創建一個新的臨時文件夾,并將您的項目復制到該文件夾中。生成的復制更難與硬件調試器一起使用。
圖 25.選擇“我的眨眼”。
Linduino 與 Arduino/Genuino Uno 板兼容,因此請選擇 vMicro→Board→Arduino/Genuino Uno。
圖 26.Arduino/Genuino Uno.
選擇“vMicro→Compiler→Verbose”以在編譯步驟中顯示更多信息。
圖 27.詳細編譯器選項。
選擇 vMicro→Uploader→Programmer→Atmel Studio Device Programming,指定應使用 Atmel-ICE3(或其他與 Atmel Studio 兼容的硬件調試器)對 Linduino 進行編程。
圖 28.愛特梅爾工作室設備編程。
此外,選擇vMicro→Uploader→始終使用Programmer進行上傳(而不是端口/IP)。
圖 29.始終使用程序員進行上傳。
選擇 vMicro→Debugger→Atmel Studio Debugger 以指示將使用硬件調試器。
圖 30.愛特梅爾工作室調試器。
接口設置
選擇“調試”→“啟動調試并中斷”。
圖 31.開始調試并中斷。
應出現一個窗口,詢問接口設置。選擇 Atmel-ICE、ATmega328P 和 ISP,然后按“應用”。
圖 32.接口設置。
如果您收到一條消息,請選擇連接的工具和界面,然后重試,請繼續。
圖 33.連接的工具和界面。
在要出現的下一個窗口中,選擇 Atmel-ICE3 和 debugWire。debugWire是一種調試模式,允許使用微控制器的RESET引腳傳輸所有信息。啟用后,固件將使用調試線加載到微控制器。
如果在啟用調試線時嘗試使用 Arduino IDE 加載固件,上傳將失敗。為了將來參考,如果遇到此問題,請選擇“調試→禁用調試線并關閉”以重新啟用Linduino的默認引導加載程序。如果該菜單選項灰顯,則可能需要在 Atmel Studio 中加載項目才能使其可選。
圖 34.選擇“調試器/程序員”。
選擇“調試”→啟動調試并再次中斷。如果“設備編程”窗口再次出現,您可能還必須關閉該窗口。
此時,您可能會收到一條消息,通知您即將啟用 debugWire。盡管該消息看起來是一個錯誤,但這是 Atmel Studio 讓您知道它即將啟用 debugWire 的方式。如果演示板連接到Linduino的QuikEval連接器,請在按“是”按鈕之前將其卸下。您可以在啟用調試線后重新插入演示板。
圖 35.啟動失敗。
啟用 debugWire 后,將顯示一條消息,提示您切換目標電源。要切換電源,請從 Linduino 上拔下 USB 電纜,然后重新插入。如果您使用的是 12V 交流電源,請同時斷開它以從 Linduino 上卸下所有電源。
圖 36.已啟用調試線。
首次啟用 debugWire 后,可能需要再次選擇“調試→啟動調試和中斷”。如果“設備編程”窗口再次出現,您可能還必須關閉該窗口。等待構建和寫入完成,如 Atmel Studio 窗口底部的狀態吟游詩人所示。
圖 37.狀態欄。
加載并執行程序
MyBlink 草圖加載到 Linduino 中,并在 init() 語句處暫停。如果按 F5,程序將執行。您還可以通過 MyBlink 放置斷點或單步,其方式與使用 Microsoft Visual Studio 調試其他軟件的方式相同。
圖 38.MyBlink Debugging AtmelStudio.
請注意,當您退出 Atmel Studio 時,debugWire 會自動禁用。禁用debugWire后,將3針接頭移動到NORM位置可恢復正常操作,Linduino可以再次與標準Arduino IDE一起使用。但是,Atmel Studio 有時無法自動禁用 debugWire。在這種情況下,可以通過在 Atmel Studio 中打開項目并選擇“調試→禁用調試線并關閉”來手動禁用調試線。
為避免混淆,建議您在關閉 Atmel Studio 之前始終禁用 debugWire。
結論
Arduino IDE簡化了新手用戶的固件開發,同時為更高級的用戶提供了一個交換代碼的通用環境。但是Arduino IDE的簡單性是通過避開更高級的IDE的功能來實現的。本教程介紹了 Linduino 如何通過添加跳線來實現 Atmel Studio IDE、Visual Micro 加載項和 Atmel-ICE3 硬件調試器提供的高級功能。
凌力爾特的 Linduino 不隸屬于官方 Arduino 團隊,但凌力爾特認識到,Linduino 之所以成為可能,是因為 Arduino 團隊對開源社區的承諾。請考慮在 www.arduino.cc 支持他們。
故障 排除
在“設備編程”窗口中,如果在單擊“應用”時看到如下所示的連接問題,一個可能的原因是您在打開項目時選擇了 .cppproj 而不是 .atsln 文件。
無法連接。
下圖顯示了關閉“設備編程”窗口后的錯誤消息。
設置失敗。
如果無法讀取設備簽名,請確保連接器已正確插入。
無法讀取設備。
如果需要固件更新,請允許其完成。
需要固件更新。
審核編輯:郭婷
-
集成電路
+關注
關注
5366文章
11162瀏覽量
358374 -
連接器
+關注
關注
98文章
13845瀏覽量
135085 -
Arduino
+關注
關注
187文章
6453瀏覽量
185927
發布評論請先 登錄
相關推薦
評論