Other Parts Discussed in Post: SYSCONFIG, UNIFLASH
Shaoxing Ke1, Strong2, EP FAE Team
1. 摘要
7月13日德州儀器(TI)推出了全新的高性能微控制器(MCU+)產品系列,AM243X是其產品系列中的一款芯片。AM243X芯片擁有2個800MHZ ARM Cortex-R5F雙核,1個400MHZ ARM Cortex-M4單核,2個PRU-ICSSG工業通信子模塊并支持千兆網絡。由此,該AM243X芯片可實現對多個千兆級工業以太網和時間敏感網絡的場景應用,同時芯片上的功能安全特性可以幫助系統集成商在其工業設計中達到IEC 61508標準的安全完整性等級SIL 3(Safety Integrity Level, SIL)要求。總之,AM243X芯片最大優勢在于強大的處理能力、實時控制和工業物聯、以及支持多協議應用(如EtherNet/IP、EtherCAT、PROFINET和IO-Link主站等)。本文主要介紹PC 如何與AM243X-LP進行EtherCAT通訊,參考Demo是ethercat_slave_beckhoff_ssc_demo。
2. 硬件準備與環境配置
2.1開發板準備與連接
根據項目測試所使用AM243X control card 的不同,配置CCS運行環境需進行相應調整。比如 AM243X-LP 沒有 DDR 內存,開發板進行 DDR 初始化僅適用于 AM243X-EVM。其中,AM243X-LP的板子及連接如圖1所示。
圖1中USB Type-C connector(J10)用于板子供電,板子上電故障燈LD9,正常燈LD6、LD7和LD8。AM243X-LP和AM243X-EVM都有閃存 SOC,因此都需要進行初始化。在這里可以查看板子BOOT MODE是否處于OSPI 模式,見圖2所示。如果不是圖2模式,需要首先對板子進行UART設置和閃存 SOC (Sitara System-on-chip)初始化。這部分內容下一小節會講,參考鏈接AM243x MCU+ SDK: EVM Setup (ti.com)。其中AM243X-LP原理圖,如圖3所示。
圖3 AM243X-LP原理圖
圖3中BOOT MODE有UART、OSPI、SD和NOBOOT四種模式。其中,SD BOOT MODE僅AM243X-EVM需要進行設置。因此,AM243X-LP可選擇不同的BOOT MODE對SOC進行初始化設置,本文以OSPI BOOT MODE方案為初始化操作方法。
2.2環境配置與所需軟件
在進行環境配置時有兩種方法。第一種方法,是借助Python 3.9.6工具并通過UART來對SOC進行初始化。第二種方法,是直接通過使用 CCS 腳本初始化 SOC,每次上電都需要操作一次。本文對兩種方法進行如下介紹。
第一種方法借助Python 3.9.6工具并通過UART對SOC進行初始化。
所需要安裝的軟件,如下表所示。
安裝的軟件描述
CCS 10.3.1用于程序燒錄、調試與通訊
SysConfig 1.8.1makefiles操作需要,如若CCS則無需安裝
TI CLANG compiler toolchain 1.3.0.LTSARM 編譯器
Python 3.x.設置UART 和BOOT MODE
{SDK_INSTALL_PATH}/SDKSDK /example
SSC_V5i12生成從機與主機建立映射的源文件
配置前首先需要檢查板子上電和UART通訊、Python 3.9.6安裝是否正常,并設置BOOT MODE。AM243X-LP正常上電,如圖4所示。UART通訊進行檢查如下:
首先,關閉AM243X-LP的電源并設置UART BOOT(BOOTMODE [ 1 : 8 ] (SW4) = 1110 0000),如圖5所示。
圖5 UART BOOT MODE
其次,在AM243X-LP上電前通過CCS-》View-》Terminal-》Open a new UART terminal-》Select the UART port-》進行串口設置,板子上電后可看到UART打印信息,如下圖所示。
接著,關閉UART并進行閃存 SOC初始化。其中,SOC初始化是借助Python 3.9.6工具進行.cfg文件的配置,并通過UART引導應用程序對板子QSPI FLASH進行初始化。
對于Windows系統操作如下:
Step1:安裝python 3.9.6, https://www.python.org/downloads/windows/
Step2:命令提示符(WIN+R)輸入以下命令(“python --version”),可查看Python 3.9.6是否安裝成功。
Step3:若找不到所安裝Python 3.9.6版本,進行環境變量添加路徑。
C:\Users\{your username}\AppData\Local\Programs\Python\Python39。此為Python 3.9.6安裝的默認路徑。
如果添加環境變量也無法顯示“Python 3.9.6”成功安裝。推薦使用Anaconda軟件安裝python, 鏈接:Anaconda | Individual Edition。這種方法可以不需要配置環境變量,進而幫助Python 3.9.6的安裝。
Step4: 檢查是否安裝了 python 軟件包管理器 “pip” ,默認情況下pip 應該是與 python 一起安裝的。如果 “pip”有安裝,如有顯示下圖則直接跳過Step5。
Step5:安裝python 軟件包管理器 “pip”,命令提示符下鍵入“python -m pip install pyserial xmodem tqdm” ,如下圖所示。其中,python 軟件包管理器 “pip”的安裝,是為了利用pip引導安裝物理層的串口、xmodem協議和tqdm進度條軟件包。因此,需要檢查“pip”是否有安裝。
Step6: 閃存 SOC (Sitara System-on-chip)初始化。命令提示符下鍵入“python uart_uniflash.py -p COM –cfg= sbl_prebuilt\am243x-lp\ default_sbl_null.cfg”,如下圖所示。此處COM需要通過設備管理器查看電腦上所連J20引腳所對應的串口號。
上圖為閃存 SOC 初始化成功的界面,如果這一步初始化不成功后續CCS運行工程時無法通過UART打印信息,同時從站也無法告知主站所處的狀態。這主要是由于J20引腳既有JTAG燒錄,又有UART通信功能。如果SOC初始化失敗并報錯,可以查看Flash tool error messages and solutions
SOC 初始化成功后,接著將AM243X-LP斷電并將BOOT MODE設置為OSPI MODE(BOOTMODE [ 1 : 8 ] (SW4) = 0100 0100),如圖6所示。
圖6 OSPI BOOT MODE
Step7: AM243X-LP上電并打開UART通訊,Console界面打印信息顯示圖7,則說明AM243X-LP 已設置可以 CCS 加載并運行。
圖7 Console界面打印信息
同時,也可以嘗試其他Demo案例進行燒錄以驗證SOC 初始化是否成功,圖8為Build a Hello World example的Console界面打印信息。注意:板子 SOC 初始化只需進行一次,之后可以放心使用。
圖8 Hello World example在Console界面上的打印信息
第二種,直接通過使用 CCS 腳本初始化 SOC。但是在某些情況下,尤其在用戶自定義的EVM 上運行并且閃存驅動的程序不可用于該 EVM 情況時,可采取第二種方法初始化 SOC。
首先需要設置環境變量,添加一個名為 MCU_PLUS_SDK_AM243X_PATH 的新變量并將其指向安裝 SDK 的路徑
將AM243X-LP設置為NOBOOT模式如下。
給板子上電并在CCS中創建目標配置文件,如下所示。
CCS工具欄中“View 》 Target Configuration”創建一個新的目標配置文件,仿真器是XDS110 USB Debug Probe,板子是AM243x_LAUNCHPAD。
具體參照鏈接Create Target Configuration
需要注意:每次關閉并重新打開 AM243X-LP 電源時,都需要執行以下步驟進行CCS 腳本初始化 SOC。
選擇Launch the target configuration并進入Debug模式,在工具欄選擇“CCS Toolbar 》 View 》 Scripting Console”。
并鍵入命令行“loadJSFile “C:/ti/mcu_plus_sdk_{soc}_{sdk version}/tools/ccs_load/am64x_am243x/load_dmsc.js”
”進行SOC初始化,會在 scripting console顯示如下:
在 scripting console中,來自腳本自身的日志,如下圖所示。
在 AM243X “CIO” console中,來自 R5F核的日志,如下圖所示。
在 AM243X console中,來自 GEL 腳本的日志,如下圖所示。
成功配置后,顯示上述三個console的日志進而完成SOC的初始化。CCS界面整體顯示界面,如下圖所示。
3.項目的搭建過程
3.1項目說明
以ethercat_slave_beckhoff_ssc_demo 工程為例,詳細介紹一下搭建測試的步驟。其中,AM243X-LP有4 個 LED 可用于EtherCAT 主控制器進行控制。 如果TwinCAT設置DC運行模式,則需要兩個以上的EtherCAT從站進行Task分配,最小測試周期是50us。因此,本文僅實現上位機對LED燈的開關控制。
運行Demo之前可先按照mcu_plus_sdk_am243x_08_00_00_21\examples\kernel\dpl\hello_world\am243x-lp\r5fss0-0_freertos和Build a Hello World example來驗證UART和SOC初始化是否成功,如圖8所示。
3.2搭建項目的詳細步驟
整個項目的實施主要分為三個部分:1.SSC Tool配置文件生成;2.CCS Debug模式;3.TwinCAT上位機設置。
1.SSC Tool配置文件生成
Step1:打開SSC tool,建立新的工程,import選擇并打開相應的xml文件(一般由原廠提供的.xml文件)。
Step2:選擇TI AM243x/AM64x Sample
Step3:在application的選項卡中,確保 DC_SUPPORTED為1,并在默認路徑下保存,并在Project選項卡中選擇Create new Slave Files。
上述設置成功后,進行文件的生成如下圖所示。
Step4:將所生成的27個文件復制到${SDK_INSTALL_PATH}/source/industrial_protocols/ethercat_slave/beckhoff_stack/stack_source。
2.CCS Debug模式
CCS中導入Demo工程,Build后并進入Debug界面。首先確保可以正常連接上XDSV110,其次進行CPU重置,再次導入.out文件,Resume運行下會在Console界面顯示打印信息,進而可以看到板子上LD12和LD14燈亮。這表示AM243X-LP已經處于初始化狀態并可以與TwinCAT進行通訊。Console界面顯示的打印信息,如下圖所示。(如果沒有顯示,那說明板子第一次在CCS未進行UART配置和SOC初始化不成功。)
3.TwinCAT上位機設置
在TwinCAT新建項目之前需要將.xml文件復制到{TWINCAT_INSTALL_DIR}\TwinCAT\3.1\Config\Io\EtherCAT folder,否則設備掃描I/O時無法掃描EtherCAT從站的信息。
Step1:打開TwinCAT,檢查PC是否存在Intel網卡驅動。如果電腦上不是Intel網卡,則需要從倍福官網上安裝兼容性EtherCAT驅動。此外,CCS一直在Resume運行下,可觀察AM243X-LP板子上LED12(INT)初始化燈是否亮,如亮說明從站已經處于初始化狀態。
Step2:打開TwinCAT,打開一個新的工程。并在solution explorer目錄下,找到I/O后進行展開,右鍵Devices,選擇掃描。
點擊“Yes”,會掃描到boxes并設置自由運行模式,進而會顯示所掃描出來的產品信息。
Step3: 雙擊Box #,并在右側可看到從站處于OP狀態。
Step4: 通過DO Outputs來寫入 “0”或者“1” 控制LED燈的亮滅,以及可以在TwinCAT界面上看到信號的波形,如下圖所示。
3.3結果輸出
控制前后圖9和圖10進行對比,RJ45旁的四個LED燈(LD12、LD13、LD14和LD15)可為上位機EtherCAT控制。
4.其他說明
1.針對不是Intel網卡的電腦,或者沒有RJ45接口的?
可以通過USB網口轉換器,并安裝好EtherCAT驅動程序。但是它僅能實現對Demo程序的操作,應用受限。建議還是使用Intel網卡,對應的文件及驅動程序在這里給出:Beckhoff Information System - English
2.SSC Tool生成沒有相對應選擇的器件型號?
建議由原廠提供.xml文件,或卸載SSC Tool重新安裝進行文件生成。
3.UART設置和閃存 SOC在建立工程項目前每一次都需要初始化嗎?
UART設置和閃存 SOC僅在BOOT MODE設置使用一次,后續就無需再次進行初始化操作。
4.Python安裝時所遇到的“pip”問題及解決方法。
當運用第一種方法進行SOC初始化時,出現下圖情形可直接轉到閃存工具安裝錯誤總結和解決方案。鏈接:http://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_00_00_21/exports/docs/api_guide_am243x/TOOLS_FLASH.html#TOOLS_FLASH_ERROR_MESSAGES。
解決方案:首先,使用 Ctrl-C 終止腳本的運行。 其次,檢查 UART 啟動模式開關設置是否設置為UART BOOT,檢查 EVM/LP 的電源是否連接,關閉 EVM/LP的電源后重啟EVM/LP。最后,重試第一種方法進行SOC的初始化。
此外,采取公司內網使用pip安裝時會出現error:Could not find a version that satisfies the requirement ,同樣可參考閃存工具安裝錯誤總結和解決方案。鏈接:http://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_00_00_21/exports/docs/api_guide_am243x/TOOLS_FLASH.html#TOOLS_FLASH_ERROR_MESSAGES。
5.CCS Debug所遇到的問題及解決方法(情況1)。
產生的原因:由于把SSC Tool整個生成的文件夾拷貝到stack_sources目錄下所導致的文件路徑索引不對,下圖可看到路徑解析不存在。
解決方案:1.把所有帶有黃色感嘆號的文件刪除,并逐個添加所生成的文件;2,把文件復制到stack_sources目錄下,重新導入項目。
6.TwinCAT所遇到的問題及解決方法(情況2)。
產生的原因:下圖中所遇到的情況是由于AM243X-LP沒有進行SOC的初始化,以及從站未處于初始化狀態。此時,TwinCAT無法與主站進行聯系,進而無法掃描到從站的I/O。
解決方案:重新初始化板子,并設置OSPI BOOT。
審核編輯:金巧
-
嵌入式處理
+關注
關注
0文章
341瀏覽量
10012 -
CCS
+關注
關注
8文章
183瀏覽量
39878 -
GEL
+關注
關注
0文章
5瀏覽量
2981
發布評論請先 登錄
相關推薦
評論