往期系列文章推薦:
全球主流8位MCU芯片詳細(xì)解剖No.1:飛思卡爾 MC9S08AC60
簡(jiǎn)介
XC866是 新型8位微控制器系列(XC800)的第一代系列產(chǎn)品,集成高性能8051核、片內(nèi)FLASH及功能強(qiáng)大的外設(shè)集。此外,XC800系列產(chǎn)品內(nèi)部集成的片 內(nèi)振蕩器和支持3.3V或5.0V單電源供電的嵌入式電壓調(diào)節(jié)器(EVR)進(jìn)一步增強(qiáng)了產(chǎn)品性能并有效地節(jié)省了系統(tǒng)成本。XC866除了提供片內(nèi) FLASH的產(chǎn)品外,同時(shí)推出同系列兼容ROM 產(chǎn)品,為大批量生產(chǎn)提供了進(jìn)一步節(jié)省成本的空間。
單片機(jī)結(jié)構(gòu)圖
引腳圖
多功能引腳舉例
-P0.0 引腳12
TCK_0 JTAG 時(shí)鐘輸入
T12HR_1 CCU6 定時(shí)器12 硬件運(yùn)行輸入
CC61_1 捕獲/比較通道1 輸入/輸出
CLKOUT 時(shí)鐘輸出
RXDO_1 UART 發(fā)送數(shù)據(jù)輸出
-P0.1 引腳14
TDI_0 JTAG 串行數(shù)據(jù)輸入
T13HR_1 CCU6 定時(shí)器13 硬件運(yùn)行輸入
RXD_1 UART 接收數(shù)據(jù)輸入
COUT61_1 捕獲/比較通道1 輸出
EXF2_1 定時(shí)器2 外部標(biāo)志輸出
模塊分析
存儲(chǔ)器結(jié)構(gòu)
-8K 啟動(dòng)(boot)ROM 地址:C00H-E000H
-256字節(jié)片內(nèi)RAM,0~7FH使用直接尋址,80~FFH使用
(1)寄存器間接尋址
-128字節(jié)SFR 地址80~FFH,使用直接尋址
-512字節(jié)XRAM 地址F000~F200,使用MOVX訪問。當(dāng)使用R0,R1作地址寄存器時(shí),其XRAM地址的高位地址由寄存器XADDRH 中的值定義。
-8K/16K 程序存儲(chǔ)器,起始地址0000
-特殊的EO寄存器操作,允許切換DPTR以及對(duì)程序ROM
-寫操作(指令:MOVC @(DPTR++),A)實(shí)現(xiàn)軟件更新
(2)基本端口結(jié)構(gòu)圖
(3)端口相關(guān)寄存器
- PX_PUDSEL 上拉/下拉選擇寄存器
-PX_PUDEN 上拉/下拉使能寄存器
-PX_OD 漏極開路控制寄存器
- PX_DIR 方向寄存器(P2口只能作為輸入)
- PX_ALTSEL0 第二功能選擇寄存器0
-PX_ALTSEL1 第二功能選擇寄存器1
- PX_DATA 端口數(shù)據(jù)寄存器
其中PX的X為端口編號(hào),寄存器都是8位,每位對(duì)應(yīng)一個(gè)引腳
?
I2C總線和SPI總線
I2C總線和SPI總線同屬于“位同步”的串行接口,但又有一些不同點(diǎn):
nn I2C總線的數(shù)據(jù)信號(hào)需要:起始、停止和ACK信號(hào),要求對(duì)方作應(yīng)答
I2C總線電路鏈接
SPI總線:兩條串行數(shù)據(jù)線,一條時(shí)鐘線。數(shù)據(jù)線分輸出和輸入。對(duì)多個(gè)部芯片,還需要片選CS。
SPI總線結(jié)構(gòu)
?
XC866的SSC
XC866具有高速同步串行通道SSC,可與SPI兼容,也可與8051串口方式0兼容;
-波特率可獨(dú)立編程:它具有專用的,具有重裝載功能的16位波特率發(fā)生器;
-數(shù)據(jù)寬規(guī)定為2~8位“字符”;
-可先發(fā)送LSB(與8051串口方式0兼容),也可先發(fā)送MSB(與SPI兼容);
-可在時(shí)鐘的上升沿或者下降沿對(duì)數(shù)據(jù)進(jìn)行移位;
-可產(chǎn)生移位時(shí)鐘或者接收移位時(shí)鐘;
-名稱有所不同:MOSI=MTSR, MISO=MRST ;
SSC組成框圖
DA轉(zhuǎn)換器芯片
DA轉(zhuǎn)換器主要組成部分是電阻網(wǎng)絡(luò)和相應(yīng)的模擬開關(guān)陣列。
? 模擬量輸出通常為電流輸出,圖中的運(yùn)算放大器把電流輸出轉(zhuǎn)換成電壓輸出,按廠家設(shè)計(jì)的反饋電阻連接,輸出電壓與參考電壓之間滿足如下關(guān)系:
Vout= - Vref X (data /(2n-1))
其中:n為數(shù)字量的位數(shù),data為輸入的數(shù)字量有的芯片自帶數(shù)據(jù)鎖存器、自己提供參考電壓。芯片型號(hào)繁多,常見的有DAC0832等。
AD轉(zhuǎn)換器
-逐次逼近
-8位或者10位精度,8路模擬通道
-4個(gè)獨(dú)立的結(jié)果寄存器
-單次轉(zhuǎn)換和自動(dòng)掃描功能
-采樣時(shí)鐘可編程,時(shí)鐘分頻器可編程
-集成的采樣保持電路
-數(shù)據(jù)壓縮濾波
-靈活的中斷產(chǎn)生方式,中斷服務(wù)節(jié)點(diǎn)可配置
-可以關(guān)閉ADC模塊,以便降低功耗
XC866的AD轉(zhuǎn)換器框圖
AD轉(zhuǎn)換初始化解說
AD轉(zhuǎn)換器初始化程序:
-SFR_PAGE(_ad0, noSST); // switch to page 0
-ADC_GLOBCTR = 0x70; // f32,8位寬度
-ADC_PRAR = 0x94; // 設(shè)定仲裁方式和優(yōu)先
- SFR_PAGE(_ad1, noSST); // switch to page 1
-ADC_QMR0 = 0x00; // ADC模式,禁止外部觸發(fā)
-ADC_CRMR1 = 0x01; // ADC模式,開啟請(qǐng)求源
-SFR_PAGE(_ad0, noSST); // switch to page 0
-ADC_GLOBCTR |= 0x80; // 開啟模擬部分
- XC866的ADC使用SFR的7個(gè)頁面,每個(gè)頁面占用地址CAH~CFH和D2H,D3H。隨頁不同具有不同的內(nèi)容,用D1H作為分頁寄存器,確定使用那個(gè)頁。GLOBCTR和PRAR在0頁,QMR0和CRMR1在6頁。
可編程序計(jì)數(shù)器陣列PCA和捕獲比較單元CCU
增強(qiáng)的定時(shí)器/計(jì)數(shù)器模塊,或者多個(gè)模塊組合,稱為PCA/CCU
- 定時(shí)器時(shí)鐘可選擇:另一個(gè)定時(shí)器溢出或者固定分頻器輸出
-可選擇捕獲/比較/重裝/PWM輸出等多種功能
- 多個(gè)捕獲/比較/重裝數(shù)據(jù)寄存器組成多路PWM輸出
- 捕獲/溢出/匹配均可產(chǎn)生中斷
- 單獨(dú)的重裝載寄存器可以設(shè)定PWM的周期
XC866的捕獲比較單元CCU6
捕獲/比較單元6(CCU6)中有兩個(gè)獨(dú)立的定時(shí)器(T12,T13)、可被用來產(chǎn)生脈寬調(diào)制(PWM)信號(hào),尤其適用于控制交流電機(jī)的應(yīng)用場(chǎng)合。CCU6 也支持一些用于塊切換和多相電機(jī)的專用控制模式。
定時(shí)器T12 的3 路通道可工作在捕獲和/或比較模式。定時(shí)器T13 只能工作在比較模式。
?
多通道控制單元產(chǎn)生的輸出序列可由T12 和/或T13 調(diào)制。調(diào)制源可選擇并組合使用。
定時(shí)器T12,T13 特性:
-定時(shí)器T12 特性:
1. 3 路捕獲/比較通道,每路可用作捕獲或比較通道
2. 支持產(chǎn)生三相PWM(6 路輸出,每路信號(hào)對(duì)應(yīng)上橋臂或下橋臂開關(guān))
3. 16 位精度,最大計(jì)數(shù)頻率 = 外設(shè)時(shí)鐘頻率
4. 單通道死區(qū)時(shí)間控制 ,避免功率級(jí)短路
5. 同步刷新T12/T13 寄存器
6. 產(chǎn)生中間對(duì)齊和邊緣對(duì)齊PWM
-定時(shí)器T13 特性:
1. 單一比較通道,單輸出
2. 16 位精度,最大計(jì)數(shù)頻率 = 外設(shè)時(shí)鐘頻率
3. 可與T12 同步
三相馬達(dá)PWM生成簡(jiǎn)單介紹
三相不同的脈寬值需實(shí)時(shí)寫入CCU6i的映射寄存器CCU6iSR
U,V,W三相輸出通過CCU6i和COUT6i引腳配對(duì)輸出,極性相反
各種設(shè)置:時(shí)鐘選擇,預(yù)分頻選擇,死區(qū)時(shí)間,輸出腳配置,以及多種模式選擇,在此略講。
三相馬達(dá)SPWM信號(hào)原理
三角波稱為“載波”,正弦波稱為“調(diào)制波”。A,B,C三相相位差120度,他們的SPWM波形參數(shù)表其實(shí)也是相同的,但是也是差120度。
SPWM波形參數(shù)表實(shí)際就是每個(gè)三角波周期內(nèi)相應(yīng)的脈沖寬度
三相馬達(dá)/無刷電機(jī)控制舉例
單片機(jī)CCU6輸出的U+/U-;V+/V -和W+/W-經(jīng)驅(qū)動(dòng)后連接到IGBT。
實(shí)時(shí)改變周期和脈寬,可以達(dá)到變頻目的,以及調(diào)整輸出功率,從而控制馬達(dá)轉(zhuǎn)速。
工程師們對(duì)于XC866的使用問答:
?。?)XC866 應(yīng)該選擇哪種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,自己制作比較困難,如果是其他常用器件,找一個(gè)相近的替換一下。可以采用miniwager, 是英飛凌自家的仿真器,也可以用南京偉福的Multi-Infineon仿真器。 ”
?。?)英飛凌XC866中SCLK時(shí)鐘問題
Q:在DAVE中SSC都已經(jīng)設(shè)置好了,但在keil中編完程序進(jìn)行仿真時(shí)發(fā)現(xiàn)SCLK始終為0,XC866不是SSC設(shè)置好就能產(chǎn)生時(shí)鐘信號(hào)嗎?
A:“自帶的SPI外設(shè),發(fā)數(shù)據(jù)的時(shí)候才會(huì)有時(shí)鐘輸出。”
?。?)XC866 mbc 電平 ocds模式求助
Q: xc866開發(fā)板。使用ulink通過ocds接口調(diào)試,書上說:如果(MBC,TMS,P0.0)= (0,1,1),將進(jìn)入OCDS 模式進(jìn)行程序代碼的調(diào)試。首先初始化OCDS,接下來跳轉(zhuǎn)到程序存儲(chǔ)器的地址0000H 處,執(zhí)行Flash 或ROM存儲(chǔ)器中的用戶代碼,開始進(jìn)行調(diào)試。在OCDS 模式下,內(nèi)部數(shù)據(jù)存儲(chǔ)器的低64 字節(jié)(地址00H- 3FH)可選擇映射為64 字節(jié)的監(jiān)控RAM或內(nèi)部數(shù)據(jù)RAM。
為什么用ulink調(diào)試時(shí),mbc引腳為始終高電平啊,跟書上說的不一樣啊。用萬用表看的,難道是mbc瞬間置低電平后進(jìn)入ocds模式,然后又置高。
用xc800_fload燒寫程序時(shí),必須將mbc引腳專門給接到地,要不不能燒寫。
A1:“(MBC,TMS,P0.0)= (0,1,1) 指的是芯片復(fù)位后這些腳的電平,xc866在復(fù)位后會(huì)自動(dòng)檢測(cè)這三個(gè)腳的電平?jīng)Q定芯片進(jìn)入下載模式、JTAG模式,還是運(yùn)行程序。對(duì)于你的問題
1。 OCDS模式:你的理解可能是對(duì)的,因?yàn)镸BC, TMS, P0.0都會(huì)連到Ulink, 所以我猜實(shí)際流程是這樣的,Ulink先將MBC, TMS, P0.0設(shè)置為0,1,1. 然后復(fù)位芯片(Ulink 拉低Reset),釋放復(fù)位芯片,這時(shí)候芯片就進(jìn)入 OCDS模式了。
?。??!∪绻鸐BC = 0. TMS = 0,則芯片復(fù)位后進(jìn)入BSL 模式,進(jìn)行串口下載(通過FLoad)”
A2:也就說,在ulink連接下,keil軟件界面點(diǎn)擊debug按鈕后,ulink首先讓芯片復(fù)位,然后設(shè)定MBC, TMS, P0.0為(0,1,1)讓芯片進(jìn)入ocds模式。進(jìn)入模式后,則MBC, TMS, P0.0的設(shè)定則恢復(fù)的正常模式。這樣的話,比如在斷點(diǎn)調(diào)試時(shí),人為的按下reset鍵后,芯片可以進(jìn)入正常運(yùn)行模式,程序在正常運(yùn)行,而不是又進(jìn)入ocds模式。
而fload模式,從電路上看,mbc只能被ulink的ocds信號(hào)控制,所以需要人工的加低電平,并且燒完程序后,程序是不能運(yùn)行。
?
XC86相關(guān)資料下載:
評(píng)論
查看更多