c8051f單片機(jī)的主要應(yīng)用問答
問:內(nèi)部時(shí)鐘振蕩器是否穩(wěn)定?是否可以用于產(chǎn)生波特率的時(shí)基?
答:不同器件的內(nèi)部時(shí)鐘振蕩器的精度是不同的(±20%)。隨電源電壓變化,它也將發(fā)生變化(6.5%/V)。但基本不隨溫度變化(<1%溫度變化范圍-40℃~+85℃)。由于不同器件內(nèi)部振蕩器的離散性較大,所以不能用于產(chǎn)生波特率,應(yīng)該外接標(biāo)準(zhǔn)晶體 。而有些器件,如C8051F3xx/f12x/f04x/f06x內(nèi)部振蕩器精度為±2%,可用于產(chǎn)生波特率 。
問:片內(nèi)/外振蕩器如何配置?
答:正確步驟:
1、允許外部振蕩器;
2、等待1ms;
3、查詢XTLVLD 0->1
4、切換到外部振蕩器。
注意:振蕩器頻率的選擇,即OSCXCN寄存器的配置(外部振蕩器頻率控制位的設(shè)置)。關(guān)于更多的信息以及源代碼可以參看應(yīng)用筆記AN002《配置內(nèi)部和外部振蕩器》。應(yīng)用筆記可以從我公司網(wǎng)站下載:www.xhl.com.cn
問:C8051F MCU的指令執(zhí)行速度為多少?
答:C8051F MCU的CIP-51內(nèi)核采用流水線結(jié)構(gòu),與標(biāo)準(zhǔn)的8051結(jié)構(gòu)相比,指令執(zhí)行速度有很大的提高。標(biāo)準(zhǔn)的8051單片機(jī)執(zhí)行一個(gè)單周期指令需要12個(gè)系統(tǒng)時(shí)鐘周期,而C8051F MCU執(zhí)行一個(gè)單周期指令只需要一個(gè)系統(tǒng)時(shí)鐘周期。如果系統(tǒng)時(shí)鐘頻率為25MHz,執(zhí)行一個(gè)單周期指令所需時(shí)間為40ns。
問:切換外部晶振時(shí)應(yīng)注意哪些問題?
答:首先要允許外部振蕩器,但此時(shí)的系統(tǒng)時(shí)鐘源仍應(yīng)是內(nèi)部時(shí)鐘,直到外部振蕩器穩(wěn)定后,才可將系統(tǒng)時(shí)鐘源切換到外部振蕩器上,否則會出現(xiàn)切換不過去,系統(tǒng)死機(jī)的情況。
問:使用外部晶振應(yīng)注意哪些問題?
答:1、所有的模擬和數(shù)字電源引腳都應(yīng)接電源(2.7~3.6V);
2、C8051F3xx系列器件的晶振引腳間應(yīng)跨接一個(gè)10M電阻(在新華龍網(wǎng)站的“主頁”—“原理圖/PCB庫”中有C8051F系列單片機(jī)的典型接線圖);
3、晶振、電容等相關(guān)器件盡量靠近單片機(jī)的晶振引腳。
問:系統(tǒng)時(shí)鐘切換到外部時(shí)鐘后,內(nèi)部的時(shí)鐘是否應(yīng)關(guān)閉?
答:可以選擇關(guān)閉或不關(guān)閉,但是從降低功耗的角度來說,應(yīng)該關(guān)閉。
問:系統(tǒng)時(shí)鐘可不可以在程序中隨時(shí)切換?
答:可以,但是由內(nèi)部再一次切換到外部時(shí)應(yīng)按照技術(shù)問答2所介紹的步驟進(jìn)行切換。
問:使用外部晶振時(shí)如何配置芯片的引腳?
答答:對于芯片上有固定晶振引腳的設(shè)備(例如C8051F02X);相應(yīng)時(shí)鐘輸入引腳按選擇的晶振模式自動分配引腳;
對于晶振引腳與GPIO共用的芯片(例如C8051F30X);晶振引腳要按下述方式進(jìn)行設(shè)置:
(1).外接晶體體時(shí);XTAL1與XTAL2都要配置為模擬輸入
(2).外接振蕩電路為“RC”或“C”方式時(shí),XTAL2引腳要配置為模擬輸入
(3).外接CMOS時(shí)鐘電路時(shí),XTAL2引腳要配置為數(shù)字輸入
(4).以上幾種方式在引腳的配置中都要使用跳過功能將此引腳跳過
問:外接晶振的最高頻率是多少?
答:外接晶振的最高頻率是30MHz;
模數(shù)轉(zhuǎn)換
問:從上電(或退出掉電模式)到ADC穩(wěn)定開始轉(zhuǎn)換需要多長時(shí)間?
答:模擬建立時(shí)間也就是等待參考電平穩(wěn)定的時(shí)間。它取決于接在VREF引腳的電容容量。此電容越大VREF的噪音就越小,ADC轉(zhuǎn)換結(jié)果的噪音也就越小。如果用4.7μF電容,則穩(wěn)定時(shí)間大約為2ms,如果無旁路電容(不推薦),穩(wěn)定時(shí)間大約為10μS。
注意:在開始轉(zhuǎn)化之前,需要一個(gè)1.5μS的跟蹤時(shí)間,這也就決定了ADC多路轉(zhuǎn)換開關(guān)(MUX)的切換速度。
問:ADC的最大輸入電壓及輸入阻抗?
答:ADC的最大輸入電壓為VREF,它的輸入電壓范圍是0V-AV+/VDD。
輸入電容為10pF;輸入阻抗等價(jià)于一個(gè)5kΩ電阻和一個(gè)10pF電容的串聯(lián)。
請參考應(yīng)用筆記AN019“計(jì)算開關(guān)電容ADC的建立時(shí)間”。
問:ADC可編程窗口檢測器有什么用途?
答:ADC可編程窗口檢測器在很多應(yīng)用中非常有用。它不停地將ADC輸出與用戶編程的限制量進(jìn)行比較,并在檢查到越限條件時(shí)通知系統(tǒng)控制器,這在中斷驅(qū)動的系統(tǒng)中尤其有效,既可以節(jié)省代碼空間和CPU帶寬又能提供快速響應(yīng)的時(shí)間。
問:為了使ADC或DAC具有更好的性能,是否應(yīng)在VREF 引腳接電容?
答:推薦在VREF引腳接一個(gè)0.1μF的陶瓷電容器與一個(gè)大的電容(典型為4.7μF鉭電容)。在VREF引腳加電容是為了降低VREF的噪聲。因?yàn)閂REF的噪聲越小,ADC或DAC轉(zhuǎn)換結(jié)果的噪聲也就越小。且這兩個(gè)電容在PCB板上應(yīng)盡可能離VREF引腳近。
問:內(nèi)部參考電平是否可以用于外部電路的參考?
答:可以,你可以用VREF信號作為輸出驅(qū)動其它電路(像放大器的偏置電壓等)。注意,VREF引腳只能提供源電流,也就是說,要有負(fù)載接地使電流流出C8051器件。例如,如果你將VREF連到OP運(yùn)放的(+)節(jié)點(diǎn),你要加一個(gè)下拉電阻對地(24K左右)將電流限制在100μA。
問:如果測試的模擬輸入電壓范圍是0-5V怎么辦?
答:因?yàn)槟M輸入(AINx)引腳不能承受5V電壓,任何引腳在任何情況下(不管ADC或PGA的設(shè)置如何)必須使其輸入 電壓保持在AGND和AV+之間,這是為了避免沉(或源)電流通過ESD保護(hù)裝置。為了測試0-5V范圍的信號,必須使信號衰減(衰減到AV+以下)才能進(jìn)入到ADC輸入。當(dāng)使用外部VREF時(shí),要求VREF的最大值比AV+小300mV。
問:F02x器件內(nèi)部有PGA(可編程增益放大器)可以對輸入模擬信號進(jìn)行放大。其中的一個(gè)放大倍數(shù)為0.5倍。是否意味著我可以外接+6V的模擬輸入電壓,經(jīng)過0.5倍的放大變成3V輸入到AINx呢?
答:請注意:任何模擬引腳(數(shù)據(jù)IO口和VDD引腳除外)的最大輸入電壓為-0.3V到 VDD+0.3V。如果超出此范圍可能造成器件永久損壞。
在單端輸入方式,有兩個(gè)限制因素如下:
1、AIN輸入電壓必須在AGND和AV+之間以避免吸/源電流流過ESD保護(hù)器件。
2、AIN電壓必須在AGND和(VREF / GAIN) 之間。假設(shè)一個(gè)12位的ADC,AINx 引腳的輸入電壓小于AGND,結(jié)果將是0x000;如果輸入電壓大于(VREF / GAIN) ,結(jié)果將是0xFFF。
例如,使用外部1.25V參考,PGA增益為0.5,允許的電壓輸入范圍是0V到 (1.25V / 0.5 = 2.5V)。
問:如何提高系統(tǒng)的ADC的性能?
答:第一、將模擬電源和數(shù)字電源分開,可以使用比較簡單的方法,如在模擬電源和數(shù)字電源之間加簡單的濾波。
第二、將模擬地和數(shù)字地分開,并在電源附近通過磁珠連接。
第三、制板時(shí),大面積覆銅。
第四、未使用到的模擬引腳要接地。
第五、為了確保參考電壓的穩(wěn)定,參考電壓引腳一定要接去耦電容。
第六、模擬信號的輸入電壓范圍是0-VDD,如果模擬輸入的外圍有可能侵入高電壓(超過芯片的極限允許范圍),就要采取保護(hù)措施(如加兩個(gè)肖特級二極管)。如果模擬輸入會有瞬間過電流,也要加限流保護(hù)。
問:如果使用內(nèi)部參考源,C8051F020/F021的參考電壓引腳如何連接?
答:C8051F020/F022共有4個(gè)參考電壓引腳,VREF,VREF0,VRFE1和VREFD。允許ADC和DAC使用一個(gè)外部電壓基準(zhǔn)或片內(nèi)電壓基準(zhǔn)。通過配置VREF0CF基準(zhǔn)電壓控制寄存器,ADC0還可以使用DAC0的輸出作為內(nèi)部基準(zhǔn),ADC1也可以使用模擬電源作為電壓基準(zhǔn)。內(nèi)部基準(zhǔn)電壓必須通過VREF引腳連接到芯片內(nèi)部。所以當(dāng)您的系統(tǒng)中使用到內(nèi)部基準(zhǔn)電壓時(shí),必須確保VREF與VREF0,VREF1,VREFD(全部或部分)引腳的連接。
C8051F021/F023共有兩個(gè)參考電壓引腳,VREFA和VREF。如果ADC0和ADC1使用內(nèi)部參考源,必須將VREFA與VREF引腳連接。
注意:如果使用ADC或DAC,則不管電壓基準(zhǔn)取自片內(nèi)還是片外,REF0CN寄存器中的BIASE位必須被置為邏輯1。
問:為什么在進(jìn)行A/D轉(zhuǎn)換時(shí)測得的數(shù)據(jù)跳變很大?
答:當(dāng)輸入信號有干擾脈沖、ADC的轉(zhuǎn)換時(shí)間太短、在通道切換后通道還沒有穩(wěn)定就開始轉(zhuǎn)換等原因都會導(dǎo)致轉(zhuǎn)換后的數(shù)據(jù)跳變大,請仔細(xì)檢查以上三點(diǎn)并做相應(yīng)的處理就可以解決此類問題。
問:在進(jìn)行A/D轉(zhuǎn)換時(shí)所測得的數(shù)據(jù)與計(jì)算所得的數(shù)據(jù)相差很大,但跳變不大,為什么?
答:1、計(jì)算時(shí)所用的基準(zhǔn)電壓是多少,如果用的是內(nèi)部基準(zhǔn),把內(nèi)部基準(zhǔn)電壓通過交叉開關(guān)分配到芯片引腳上,再進(jìn)行測量;
2、換別的通道轉(zhuǎn)換看是否正常。
問:ADC的單端輸入與差分輸入的區(qū)別?
答答:在單端方式工作時(shí);ADC轉(zhuǎn)換的是單輸入引腳對地的電壓值;在增益為1時(shí),測量的值就是輸入的電壓值;范圍是0V到VREF;當(dāng)增益增加時(shí),輸入的范圍要相應(yīng)的減小;
在差分方式工作時(shí);ADC轉(zhuǎn)換的是AIN+與AIN-兩個(gè)引腳的差值;在增益為1時(shí),測量的值等于(AIN+)-(AIN-),范圍是-VREF到+VREF;當(dāng)增益增加時(shí),輸入的范圍要相應(yīng)的減小。
注意:在差分方式時(shí)所提的負(fù)壓是指AIN-引腳的電壓大于AIN+引腳的電壓,實(shí)際輸入到兩個(gè)引腳的電壓對地都必需是正的;例如:如果AIN+引腳輸入的電壓為0V,AIN-引腳的輸入電壓為1/2VREF時(shí),差分的輸入電壓為(0V-1/2VREF) = -1/2VREF。
端口
問:器件IO口的吸收(sink)電流和源(source)電流是多少?
答:IO口的沉電流和拉電流的極限參數(shù)為100mA(但是此時(shí)已經(jīng)不能保證端口的正常邏輯關(guān)系了)。具體的參數(shù)請參考datasheet的端口IO部分的“端口I/O直流電氣特性”。
問:端口是否要加保護(hù)?
答:在端口電流瞬間跳變的情況下,建議加限流電阻進(jìn)行保護(hù)。另外如果端口可能有超過極限電壓范圍的瞬變電平侵入,也要加瞬態(tài)保護(hù)。(瞬態(tài)保護(hù)的通常方式為接入TVS器件)
問:C8051F系列單片機(jī)的IO口與傳統(tǒng)8051單片機(jī)相比有什么區(qū)別?
答:①C8051F系列單片機(jī)的IO口全部為三態(tài)雙向口(而傳統(tǒng)8051單片機(jī)P1、P2、P3口為準(zhǔn)雙向口),內(nèi)部有弱上拉可禁止(傳統(tǒng)8051單片機(jī)固有),可配置為開漏輸出和推挽輸出(傳統(tǒng)8051單片機(jī)只有開漏輸出)。
②片內(nèi)數(shù)字資源要通過數(shù)據(jù)交叉開關(guān)(crossbar)按一定的優(yōu)先級配置到IO引腳(C8051F2xx系列除外,而傳統(tǒng)8051單片機(jī)不具備這一功能)。IO口的配置更加靈活。
問:C8051F系列單片機(jī)電源電壓全部為2.7-3.6V,那么是否有與5V系統(tǒng)接口的比較簡單的解決方案?
答:所有IO口允許5V(極限值為5.8V)輸入,但是輸出高電平為VDD。如果與5V系統(tǒng)接口,最簡單的方法是開漏輸出并在輸出端加接5V上拉,關(guān)鍵是上拉電阻的選擇。具體參考應(yīng)用筆記AN011“在5V系統(tǒng)中使用C8051Fxxx”。
建議:如果可能,請盡量選用供電電壓兼容的芯片,這是一種最理想的選擇。
問:模擬引腳能否簡單地用于數(shù)字I/O?
答:如果模擬引腳是獨(dú)立的是不可以的。但是如果模擬引腳和數(shù)字IO是復(fù)用的,是可以通過SFR的設(shè)置來完成配置。
問:C8051F020/022的p4-p7口和p0-p3口有什么不同?
答:P0-P3口復(fù)位時(shí)為通用口,可通過Crossbar(數(shù)據(jù)交叉開關(guān))寄存器按優(yōu)先級設(shè)置成第二功能。而P4-P7口是通用口,另外P4-P7寄存器不能位尋址。
問:如果通過Crossbar寄存器使能并分配為P0.0和P0.1引腳,那么,我還可以用這兩個(gè)引腳為通用I/O嗎?
答:①如果你通過Crossbar使能一個(gè)外設(shè),如UART,那么這個(gè)外設(shè)將控制這些引腳的輸出狀態(tài)(邏輯高/邏輯低)。
②你可以在任何時(shí)刻讀引腳的狀態(tài),與Crossbar控制與否無關(guān)。
③當(dāng)被禁止時(shí),大部分外設(shè)的輸出引腳被置為高阻態(tài)(UART口是一個(gè)很好的例子)。因?yàn)閁ART收發(fā)器無明確的禁止態(tài),你可將相應(yīng)的引腳置成開漏輸出模式,也可以達(dá)到相同的結(jié)果,因?yàn)閁ART收發(fā)器在空閑時(shí)引腳為邏輯1。
總的來說,Crossbar置配后在末使用時(shí)的外設(shè)引腳可以用于數(shù)據(jù)輸入,但不能作為數(shù)據(jù)輸出。其它器件,如F3xx系列,口引腳可通過Crossbar“重新聲明”且用于GPIO引腳對器件管腳無影響,因?yàn)檫@些器件具有“引腳跳過”(PIN SKIP)特性。
問:IO口的開漏和推挽輸出如何使用?
答:將端口引腳置成推挽輸出方式,這將使能端口引腳驅(qū)動器??傮w上來講,數(shù)據(jù)輸入端口引腳置成開漏方式、數(shù)據(jù)輸出端口引腳置成推挽方式。當(dāng)引腳用于輸出連接上拉電阻(也就是說當(dāng)與5V系統(tǒng)接口時(shí))時(shí)配置成開漏輸出。
問:引腳P1.4~P1.7中斷如何使用?
答:如果外部中斷(EX4-EX7)使能且相應(yīng)的引腳P1.4~P1.7變低(可以是外部輸入信號、寫輸出端口鎖存或是Crossbar定義的外設(shè)啟動的事件)。那么中斷標(biāo)志(PRT1IF.n)將置位,如果全局中斷使能,將產(chǎn)生一個(gè)中斷。中斷邏輯檢測本身的邏輯狀態(tài),與產(chǎn)生邏輯狀態(tài)變化的原因無關(guān)。
問:是不是所有的C8051F系列單片機(jī)的I/O口都是5V兼容?
答:不是,例如C8051F060只有P0口是5V兼容,具體的要參照相關(guān)型號的數(shù)據(jù)手冊。
問:P4口的某些引腳已用為外部存儲器的控制信號,剩下的口線能否作為普通I/O使用?
答:可以,但不能直接給此端口送數(shù),應(yīng)通過“與”或者“或”的方式來對此端口進(jìn)行操作。
問:為什么端口的數(shù)據(jù)寄存器置為0時(shí),其引腳上的電平還是為高電平?
答:交叉開關(guān)使能位沒有置位。
問:端口在停機(jī)(STOP)模式下是什么狀態(tài)?
答:端口在停機(jī)模式下將保持進(jìn)入停機(jī)模式前的狀態(tài)。
評論