Other Parts Discussed in Post: SYSCONFIG, UNIFLASH
Shaoxing Ke1, Strong2, EP FAE Team
1. 摘要
7月13日德州儀器(TI)推出了全新的高性能微控制器(MCU+)產(chǎn)品系列,AM243X是其產(chǎn)品系列中的一款芯片。AM243X芯片擁有2個800MHZ ARM Cortex-R5F雙核,1個400MHZ ARM Cortex-M4單核,2個PRU-ICSSG工業(yè)通信子模塊并支持千兆網(wǎng)絡。由此,該AM243X芯片可實現(xiàn)對多個千兆級工業(yè)以太網(wǎng)和時間敏感網(wǎng)絡的場景應用,同時芯片上的功能安全特性可以幫助系統(tǒng)集成商在其工業(yè)設計中達到IEC 61508標準的安全完整性等級SIL 3(Safety Integrity Level, SIL)要求??傊珹M243X芯片最大優(yōu)勢在于強大的處理能力、實時控制和工業(yè)物聯(lián)、以及支持多協(xié)議應用(如EtherNet/IP、EtherCAT、PROFINET和IO-Link主站等)。本文主要介紹PC 如何與AM243X-LP進行EtherCAT通訊,參考Demo是ethercat_slave_beckhoff_ssc_demo。
2. 硬件準備與環(huán)境配置
2.1開發(fā)板準備與連接
根據(jù)項目測試所使用AM243X control card 的不同,配置CCS運行環(huán)境需進行相應調(diào)整。比如 AM243X-LP 沒有 DDR 內(nèi)存,開發(fā)板進行 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)初始化。這部分內(nèi)容下一小節(jié)會講,參考鏈接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環(huán)境配置與所需軟件
在進行環(huán)境配置時有兩種方法。第一種方法,是借助Python 3.9.6工具并通過UART來對SOC進行初始化。第二種方法,是直接通過使用 CCS 腳本初始化 SOC,每次上電都需要操作一次。本文對兩種方法進行如下介紹。
第一種方法借助Python 3.9.6工具并通過UART對SOC進行初始化。
所需要安裝的軟件,如下表所示。
安裝的軟件描述
CCS 10.3.1用于程序燒錄、調(diào)試與通訊
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引導應用程序?qū)Π遄観SPI FLASH進行初始化。
對于Windows系統(tǒng)操作如下:
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版本,進行環(huán)境變量添加路徑。

C:\Users\{your username}\AppData\Local\Programs\Python\Python39。此為Python 3.9.6安裝的默認路徑。
如果添加環(huán)境變量也無法顯示“Python 3.9.6”成功安裝。推薦使用Anaconda軟件安裝python, 鏈接:Anaconda | Individual Edition。這種方法可以不需要配置環(huán)境變量,進而幫助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協(xié)議和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 初始化成功的界面,如果這一步初始化不成功后續(xù)CCS運行工程時無法通過UART打印信息,同時從站也無法告知主站所處的狀態(tài)。這主要是由于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 上運行并且閃存驅(qū)動的程序不可用于該 EVM 情況時,可采取第二種方法初始化 SOC。
首先需要設置環(huán)境變量,添加一個名為 MCU_PLUS_SDK_AM243X_PATH 的新變量并將其指向安裝 SDK 的路徑

將AM243X-LP設置為NOBOOT模式如下。

給板子上電并在CCS中創(chuàng)建目標配置文件,如下所示。
CCS工具欄中“View 》 Target Configuration”創(chuàng)建一個新的目標配置文件,仿真器是XDS110 USB Debug Probe,板子是AM243x_LAUNCHPAD。
具體參照鏈接Create Target Configuration

需要注意:每次關閉并重新打開 AM243X-LP 電源時,都需要執(zhí)行以下步驟進行CCS 腳本初始化 SOC。

選擇Launch the target configuration并進入Debug模式,在工具欄選擇“CCS Toolbar 》 View 》 Scripting Console”。
并鍵入命令行“l(fā)oadJSFile “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。因此,本文僅實現(xiàn)上位機對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界面。首先確??梢哉_B接上XDSV110,其次進行CPU重置,再次導入.out文件,Resume運行下會在Console界面顯示打印信息,進而可以看到板子上LD12和LD14燈亮。這表示AM243X-LP已經(jīng)處于初始化狀態(tài)并可以與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網(wǎng)卡驅(qū)動。如果電腦上不是Intel網(wǎng)卡,則需要從倍福官網(wǎng)上安裝兼容性EtherCAT驅(qū)動。此外,CCS一直在Resume運行下,可觀察AM243X-LP板子上LED12(INT)初始化燈是否亮,如亮說明從站已經(jīng)處于初始化狀態(tài)。
Step2:打開TwinCAT,打開一個新的工程。并在solution explorer目錄下,找到I/O后進行展開,右鍵Devices,選擇掃描。
點擊“Yes”,會掃描到boxes并設置自由運行模式,進而會顯示所掃描出來的產(chǎn)品信息。
Step3: 雙擊Box #,并在右側(cè)可看到從站處于OP狀態(tài)。
Step4: 通過DO Outputs來寫入 “0”或者“1” 控制LED燈的亮滅,以及可以在TwinCAT界面上看到信號的波形,如下圖所示。
3.3結(jié)果輸出
控制前后圖9和圖10進行對比,RJ45旁的四個LED燈(LD12、LD13、LD14和LD15)可為上位機EtherCAT控制。
4.其他說明
1.針對不是Intel網(wǎng)卡的電腦,或者沒有RJ45接口的?
可以通過USB網(wǎng)口轉(zhuǎn)換器,并安裝好EtherCAT驅(qū)動程序。但是它僅能實現(xiàn)對Demo程序的操作,應用受限。建議還是使用Intel網(wǎng)卡,對應的文件及驅(qū)動程序在這里給出:Beckhoff Information System - English
2.SSC Tool生成沒有相對應選擇的器件型號?
建議由原廠提供.xml文件,或卸載SSC Tool重新安裝進行文件生成。
3.UART設置和閃存 SOC在建立工程項目前每一次都需要初始化嗎?
UART設置和閃存 SOC僅在BOOT MODE設置使用一次,后續(xù)就無需再次進行初始化操作。
4.Python安裝時所遇到的“pip”問題及解決方法。
當運用第一種方法進行SOC初始化時,出現(xiàn)下圖情形可直接轉(zhuǎn)到閃存工具安裝錯誤總結(jié)和解決方案。鏈接: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的初始化。
此外,采取公司內(nèi)網(wǎng)使用pip安裝時會出現(xiàn)error:Could not find a version that satisfies the requirement ,同樣可參考閃存工具安裝錯誤總結(jié)和解決方案。鏈接: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)。

產(chǎn)生的原因:由于把SSC Tool整個生成的文件夾拷貝到stack_sources目錄下所導致的文件路徑索引不對,下圖可看到路徑解析不存在。

解決方案:1.把所有帶有黃色感嘆號的文件刪除,并逐個添加所生成的文件;2,把文件復制到stack_sources目錄下,重新導入項目。
6.TwinCAT所遇到的問題及解決方法(情況2)。
產(chǎn)生的原因:下圖中所遇到的情況是由于AM243X-LP沒有進行SOC的初始化,以及從站未處于初始化狀態(tài)。此時,TwinCAT無法與主站進行聯(lián)系,進而無法掃描到從站的I/O。

解決方案:重新初始化板子,并設置OSPI BOOT。
審核編輯:金巧
-
嵌入式處理
+關注
關注
0文章
341瀏覽量
10450 -
CCS
+關注
關注
8文章
186瀏覽量
42214 -
GEL
+關注
關注
0文章
5瀏覽量
3251
發(fā)布評論請先 登錄
?AM243x Sitara? 微控制器技術文檔總結(jié)
AM2431技術文檔總結(jié)
TMDS243EVM評估模塊技術解析與應用指南
AM263x控制卡擴展塢技術解析與應用指南
德州儀器AM62x Sitara?處理器技術解析
基于AM243x Sitara?微控制器的工業(yè)通信與實時控制解決方案
【米爾NXP i.MX 91開發(fā)板評測】移植運行IGH EtherCAT主站
德州儀器AM243x LaunchPad?開發(fā)套件技術解析與應用指南
AM263x Control Card開發(fā)套件技術解析與應用指南
Texas Instruments LP5899/LP5899-Q1 LED驅(qū)動器數(shù)據(jù)手冊
am335x開發(fā)板能否支持Vxworks操作系統(tǒng)的移植?
為DRA71x、DRA79x和TDA2E-17供電的LP8733-Q1和LP8732-Q1用戶指南
為 AM570x 供電的 LP87332D 和 LP873220 用戶指南
LP8733-Q1和LP8732-Q1為DRA78x和TDA3x供電的用戶指南

AM243X-LP與EtherCAT的Demo操作說明
評論