新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 全球主流8位MCU芯片詳細解剖No.2:英飛凌 XC866

        全球主流8位MCU芯片詳細解剖No.2:英飛凌 XC866

        作者: 時間:2016-11-29 來源:網絡 收藏

          模擬量輸出通常為電流輸出,圖中的運算放大器把電流輸出轉換成電壓輸出,按廠家設計的反饋電阻連接,輸出電壓與參考電壓之間滿足如下關系:

          Vout= - Vref X (data /(2n-1))

          其中:n為數字量的位數,data為輸入的數字量有的芯片自帶數據鎖存器、自己提供參考電壓。芯片型號繁多,常見的有DAC0832等。

          AD轉換器

          -逐次逼近

          -8位或者10位精度,8路模擬通道

          -4個獨立的結果寄存器

          -單次轉換和自動掃描功能

          -采樣時鐘可編程,時鐘分頻器可編程

          -集成的采樣保持電路

          -數據壓縮濾波

          -靈活的中斷產生方式,中斷服務節點可配置

          -可以關閉ADC模塊,以便降低功耗

          XC866的AD轉換器框圖

          AD轉換初始化解說

          AD轉換器初始化程序:

          -SFR_PAGE(_ad0, noSST); // switch to page 0

          -ADC_GLOBCTR = 0x70; // f32,8位寬度

          -ADC_PRAR = 0x94; // 設定仲裁方式和優先

          - SFR_PAGE(_ad1, noSST); // switch to page 1

          -ADC_QMR0 = 0x00; // ADC模式,禁止外部觸發

          -ADC_CRMR1 = 0x01; // ADC模式,開啟請求源

          -SFR_PAGE(_ad0, noSST); // switch to page 0

          -ADC_GLOBCTR |= 0x80; // 開啟模擬部分

          - XC866的ADC使用SFR的7個頁面,每個頁面占用地址CAH~CFH和D2H,D3H。隨頁不同具有不同的內容,用D1H作為分頁寄存器,確定使用那個頁。GLOBCTR和PRAR在0頁,QMR0和CRMR1在6頁。

          可編程序計數器陣列PCA和捕獲比較單元CCU

          增強的定時器/計數器模塊,或者多個模塊組合,稱為PCA/CCU

          - 定時器時鐘可選擇:另一個定時器溢出或者固定分頻器輸出

          -可選擇捕獲/比較/重裝/PWM輸出等多種功能

          - 多個捕獲/比較/重裝數據寄存器組成多路PWM輸出

          - 捕獲/溢出/匹配均可產生中斷

          - 單獨的重裝載寄存器可以設定PWM的周期

          XC866的捕獲比較單元CCU6

          捕獲/比較單元6(CCU6)中有兩個獨立的定時器(T12,T13)、可被用來產生脈寬調制(PWM)信號,尤其適用于控制交流電機的應用場合。CCU6 也支持一些用于塊切換和多相電機的專用控制模式。

          定時器T12 的3 路通道可工作在捕獲和/或比較模式。定時器T13 只能工作在比較模式。

          多通道控制單元產生的輸出序列可由T12 和/或T13 調制。調制源可選擇并組合使用。

          定時器T12,T13 特性:

          -定時器T12 特性:

          1. 3 路捕獲/比較通道,每路可用作捕獲或比較通道

          2. 支持產生三相PWM(6 路輸出,每路信號對應上橋臂或下橋臂開關)

          3. 16 位精度,最大計數頻率 = 外設時鐘頻率

          4. 單通道死區時間控制 ,避免功率級短路

          5. 同步刷新T12/T13 寄存器

          6. 產生中間對齊和邊緣對齊PWM

          -定時器T13 特性:

          1. 單一比較通道,單輸出

          2. 16 位精度,最大計數頻率 = 外設時鐘頻率

          3. 可與T12 同步

          三相馬達PWM生成簡單介紹

          三相不同的脈寬值需實時寫入CCU6i的映射寄存器CCU6iSR

          U,V,W三相輸出通過CCU6i和COUT6i引腳配對輸出,極性相反

          各種設置:時鐘選擇,預分頻選擇,死區時間,輸出腳配置,以及多種模式選擇,在此略講。

          三相馬達SPWM信號原理

          三角波稱為“載波”,正弦波稱為“調制波”。A,B,C三相相位差120度,他們的SPWM波形參數表其實也是相同的,但是也是差120度。

          SPWM波形參數表實際就是每個三角波周期內相應的脈沖寬度

          三相馬達/無刷電機控制舉例

          單片機CCU6輸出的U+/U-;V+/V -和W+/W-經驅動后連接到IGBT。

          實時改變周期和脈寬,可以達到變頻目的,以及調整輸出功率,從而控制馬達轉速。

          工程師們對于XC866的使用問答:

          (1)XC866 應該選擇哪種IDE

          A:“Miniwigger+KEIL V3破解版

          keil for c51 v8

          infineon dave v2.1

          infineon memtool v4.01.05

          fload 下載器”

          (2)想用Proteus仿真英飛凌的XC866,可是元件庫里沒有,該怎么辦?

          A:“由于Proteus的元件庫里沒有英飛凌的MCU,自己制作比較困難,如果是其他常用器件,找一個相近的替換一下。可以采用miniwager, 是英飛凌自家的仿真器,也可以用南京偉福的Multi-Infineon仿真器。 ”

          (3)英飛凌XC866中SCLK時鐘問題

          Q:在DAVE中SSC都已經設置好了,但在keil中編完程序進行仿真時發現SCLK始終為0,XC866不是SSC設置好就能產生時鐘信號嗎?

          A:“自帶的SPI外設,發數據的時候才會有時鐘輸出。”

          (4)XC866 mbc 電平 ocds模式求助

          Q: xc866開發板。使用ulink通過ocds接口調試,書上說:如果(MBC,TMS,P0.0)= (0,1,1),將進入OCDS 模式進行程序代碼的調試。首先初始化OCDS,接下來跳轉到程序存儲器的地址0000H 處,執行Flash 或ROM存儲器中的用戶代碼,開始進行調試。在OCDS 模式下,內部數據存儲器的低64 字節(地址00H- 3FH)可選擇映射為64 字節的監控RAM或內部數據RAM。

          為什么用ulink調試時,mbc引腳為始終高電平啊,跟書上說的不一樣啊。用萬用表看的,難道是mbc瞬間置低電平后進入ocds模式,然后又置高。

          用xc800_fload燒寫程序時,必須將mbc引腳專門給接到地,要不不能燒寫。

          A1:“(MBC,TMS,P0.0)= (0,1,1) 指的是芯片復位后這些腳的電平,xc866在復位后會自動檢測這三個腳的電平決定芯片進入下載模式、JTAG模式,還是運行程序。對于你的問題

          1。  OCDS模式:你的理解可能是對的,因為MBC, TMS, P0.0都會連到Ulink, 所以我猜實際流程是這樣的,Ulink先將MBC, TMS, P0.0設置為0,1,1. 然后復位芯片(Ulink 拉低Reset),釋放復位芯片,這時候芯片就進入 OCDS模式了。

          2。 如果MBC = 0. TMS = 0,則芯片復位后進入BSL 模式,進行串口下載(通過FLoad)”

          A2:也就說,在ulink連接下,keil軟件界面點擊debug按鈕后,ulink首先讓芯片復位,然后設定MBC, TMS, P0.0為(0,1,1)讓芯片進入ocds模式。進入模式后,則MBC, TMS, P0.0的設定則恢復的正常模式。這樣的話,比如在斷點調試時,人為的按下reset鍵后,芯片可以進入正常運行模式,程序在正常運行,而不是又進入ocds模式。

          而fload模式,從電路上看,mbc只能被ulink的ocds信號控制,所以需要人工的加低電平,并且燒完程序后,程序是不能運行。


        上一頁 1 2 下一頁

        關鍵詞: 8位MCU英飛凌XC86

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 灵寿县| 汉中市| 同心县| 晋中市| 治多县| 乳山市| 祁阳县| 阜平县| 万全县| 当涂县| 运城市| 靖宇县| 慈溪市| 新邵县| 濉溪县| 新建县| 石楼县| 临潭县| 叙永县| 耒阳市| 二连浩特市| 海晏县| 鄱阳县| 滦平县| 越西县| 嘉定区| 临桂县| 霍州市| 西华县| 贵德县| 卓资县| 海丰县| 堆龙德庆县| 志丹县| 轮台县| 呼图壁县| 漠河县| 武义县| 大田县| 阳江市| 长沙市|