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