【導讀】C2000 Gen-3對比于Gen-2的C2000,加入了三角函數(shù)運算單元來進一步提升運算能力,提供了更多的ADC模塊及窗口比較器來增強采樣和保護的快速性和靈活性。同時,在實時通信方面,引入了新一代快速串行通信接口Fast Serial Interface (FSI),可以支持在隔離的情況下最高200Mbps的數(shù)據(jù)傳輸速率。
本文主要討論ADC通道的選擇、FSI接口的應用、3.3V供電選型考量、GPIO口的配置和JTAG的連接與調(diào)試進行詳細介紹。
1. ADC通道的輸入寄生電容:
當我們在把外部信號匹配到C2000的ADC通道的時候,常常會忽略到ADC的輸入模型可能會帶來的潛在影響。其中最為明顯的就是每個ADC通道上都會有一個輸入寄生電容,而具有較大輸入寄生電容的ADC通道通常是不適用于高頻采樣信號的。這是因為較大的輸入寄生電容會帶來更長的采樣窗口,進而可能會影響到控制回路里的Computational power budget。如需了解更多信息,請參照 F28002X TRM的Choosing an Acquisition Window Duration 章節(jié)。
針對于Gen-3的F28002X的C2000, 我們可以在數(shù)據(jù)手冊的ADC Input Model章節(jié)的表格Table 1 中查詢到每一個ADC通道的內(nèi)部輸入寄生電容?;赥able 1,ADCINA3/ADCINC5通道不管是否啟用了比較器,因為其內(nèi)部輸入寄生電容達到71.4pF,都是明顯是不適合用于高速采樣信號的。而對于ADCINA0/ADCINC15來說,如果使用了內(nèi)部比較器,那么就需要慎重考慮采樣窗口和外部采樣電路。例如:如果我們希望使用某個ADC通道實現(xiàn)OVP功能的實現(xiàn),而我們又只剩下了ADCINA0/ADCINC15這一個通道,那么我們可以利用軟件代碼在后臺任務來實現(xiàn)OVP的功能,而無需使用內(nèi)部比較器。如果我們一定要實現(xiàn)基于CMPSS模塊的OVP功能,那么建議切換到其他到ADC通道。
Table 1: ADC 通道寄生電容
2. FSI 接口介紹:
FSI接口是Gen-3的C2000引入的最新的高速可靠的快速串行接口。針對需要隔離的通信應用場景,F(xiàn)SI接收端模塊具有一個可編程的Delay Line Control。通過對每一個線的RX_DLY_LINE_CTRL寄存器值進行修改,從而對系統(tǒng)元器件(例如信號緩沖器和隔離器等)引起的信號延遲和板級的(例如不均勻的布線等)引起的信號延遲進行補償,最終保證信號的完整性,實現(xiàn)高速可靠通信。FSI是應用于點對點的的通信協(xié)議,例如單主/單從配置,所以FSI主要應用于以下兩種場景:
● 兩個MCU直接進行通信
● 板級之間的通信,例如PSFB的原邊和副邊的兩個MCU通過隔離芯片來通信
FSI接口的傳輸端(FSITX)和接收端(FSIRX)是完全獨立的,每個端口有自己獨立的寄存器、時鐘和中斷。而不同于IIC接口的一個重要區(qū)別是其只能作為單一方向的通信傳輸?;贔igure 1, FSI的每個端口有3個信號線,分別是時鐘CLK,數(shù)據(jù)線D0和一個額外的數(shù)據(jù)線D1。額外的數(shù)據(jù)線D1是作為多線傳輸來加倍數(shù)據(jù)傳輸速率,也可作為GPIO口。所以,通常來說點對點的FSI需要至少4根信號線。FSI最大可支持的時鐘頻率為50MHz,而時鐘的上升沿和下降沿也可作為數(shù)據(jù)的有效位判定。所以,理論上是可以達到最高200Mbps的傳輸速率。
Figure 1: FSITX/RX 模塊連接圖
在電機驅(qū)動和數(shù)字電源中,MCU之間進行實時通信越來越普遍,而這也對通信實時性的要求變高。FSI接口因為具有可編程的delay line control,可以確保隔離應用場景下高速通信且可靠,所以對比傳統(tǒng)的UART、SPI和CAN等通信接口來說更具優(yōu)勢。
F28002X FSI 和IIC兼容GPIO口及隔離芯片:
如果我們要把F280025C 64pin作為副邊的MCU和原邊的MCU進行FSI通信,在工程師進行系統(tǒng)調(diào)試階段,有時會希望通信接口既能作為FSI又能作為IIC通信。這個時候就會引入一些問題,例如IIC是雙向通信,而FSI是單向的。針對F280025C 64pin,只有以下GPIO口既能支持FSI,又能支持IIC:
● GPIO33 >> I2CA_SCL and FSIRXA_CLK
● GPIO8 >> I2CA_SCL and FSITXA_D1
● GPIO0 >> I2CA_SDA and FSIRXA_CLK
● GPIO32 >> I2CA_SDA and FSIRXA_D0
● GPIO10 >> I2CA_SDA and FSITXA_CLK
首先,只有GPIO32是支持FSIRXA_D0的數(shù)據(jù)線。其次,只有GPIO33的FSI和IIC都是作為時鐘使用。所以我們建議使用GPIO32/33作為接收端(RX)的數(shù)據(jù)和時鐘線。
此外,在選擇隔離器時,如果我們已經(jīng)明確了通信方向,那么只要我們保持IIC和FSI的數(shù)據(jù)傳輸方向,那么依然可以使用單向的隔離器,例如ISO7742來傳輸數(shù)據(jù)。
3. 3V供電電源芯片選擇小細節(jié):
通常我們根據(jù)C2000的供電VDDA/VDDIO選擇對應的前級DC/DC或者LDO時,更多會把重點放在輸出電流能力、PSRR和壓降等參數(shù)上,往往忽視了LDO的精度可能會帶來的影響。針對C2000內(nèi)部CMPSS模塊的參考DAC模塊,系統(tǒng)框圖如下圖。如果我們選擇VDDA作為COMPDAC的參考電壓,那么VDDA的任意百分比變化都會影響到COMPDAC的輸出。所以通常針對峰值電流控制模式的DC/DC,推薦使用1%精度的LDO,例如TPS7A90。
Figure 2: C2000 CMPSS 模塊的參考DAC部分框圖
4. GPIO口與外部信號的匹配:
● 三態(tài)(Tri-state)外部信號。例如外部信號Active的時候需要拉高,Sleep狀態(tài)下需求拉低,IDLE模式需求Floating。那么我們有兩種方式來處理,第一是通過將GPIO設置為輸入,然后禁用上拉,第二種是將GPIO設置為輸出和開漏,同時把GPIO電平設為低位。而這都可以通過C2000里面的GPAODR寄存器實現(xiàn)。
● 特定情況下,一些例如使能的數(shù)字口,如果不足以在低電平拉低,可以把其配置到模擬口。然后通過軟件對模擬量的判斷來實現(xiàn)高低電平的判斷,從而實現(xiàn)使能和關閉使能。
數(shù)字GPIO口不夠時的備選方案:
● 將原本作為風扇等其他小型設備的反饋電壓(原邊為數(shù)字信號)作為模擬GPIO口。然后通過軟件代碼基于采樣電壓來判斷高低電平。
● Boot load的GPIO24和GPIO32如果是boot from flash,可以節(jié)省出兩個GPIO口。如果是boot from SCI和CAN等的話,可以在boot結(jié)束后復用為其他GPIO口。
5. JTAG接口連接及調(diào)試:
通常來說JTAG(IEEE標準 1149.1-1990 Standard Test Access Port and Boundary Scan Architecture) 具有五個引腳:
TMS/TDI/TDO/TCK/TRSTn。主要的三大功能如下:
● 下載軟件到MCU的Flash
● 調(diào)試
● 邊界掃描:訪問芯片內(nèi)部的信號邏輯狀態(tài)以及芯片引腳狀態(tài)等
通常針對JTAG連接出現(xiàn)問題的調(diào)試流程如下:
a) Power Good LED 開啟:TI所有的C2000開發(fā)板都有LED來標識MCU的供電是否正常。
b) 檢查Device Manager:使用JTAG仿真器和PC通信,我們首先需要安裝好驅(qū)動文件。通常我們在安裝CCS的時候會有具體細節(jié)。如需驗證驅(qū)動是否成功安裝,連接JTAG模擬器到PC并供電。然后在PC的Control Panel >> Device Manger 來定位到USB仿真器。
Figure 3: Device Manager 驅(qū)動確認
c) 檢查MCU JTAG的TRSTn信號是否拉高:如果在CCS連接過程中,TRSTn沒有改變狀態(tài),那么需要驗證仿真器是否配置正常。
d) 檢查Target Configuration:在Target Configuration File (.ccxml) 會包含連接Target device的所有相關信息以及JTAG仿真器的類型。在CCS中點擊“View”,然后點擊Target Configuration,找到User Defined下的 .ccxml 文件,就會顯示處New Target Configuration 界面如下圖。在下圖中選擇合適的Devices,保持配置,再點擊測試連接即可測試連接是否正常。
Figure 4: Target Configuration 確認連接是否正常
e) 啟動CCS調(diào)試。
f) 檢查XRSn狀態(tài):如果XRSn的狀態(tài)是低或者出現(xiàn)從低到高再到低的脈沖狀態(tài),那么可能是多種因素造成。例如如果是從低到高再到低的脈沖,那么可能是看門狗導致的重啟。如果一直處于低電平,那么可能是因為供電或者PCB的其他的原因?qū)е铝薆rown Out Rest (BOR)。
g) 檢查Boot Mode:如果使用的是GPIO24和GPIO32默認的Bootload口,那么參照F28002X的TRM中3章節(jié),檢查GPIO24和GPIO32的引腳來確認是否在期望的Boot load 模式。
h) 檢查VREG/時鐘/系統(tǒng)時鐘:測量并確認JTAG的時鐘和晶振是否符合數(shù)據(jù)手冊表明。測量并確認是否供電是否運行在了推薦電壓值以外導致了BOR等問題。
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
推薦閱讀: