問題1:為什么我的仿真器可以識別,但是卻無法仿真調(diào)試下載程序?
答:仿真器可以識別,可以證明仿真器是好的。而無法仿真調(diào)試程序,或下載程序有如下兩個(gè)方面的原因:1、硬件通路是否正常。檢查如下原因:ML-EC3是否與目標(biāo)板連接;連接線有無斷線;目標(biāo)板是否上電以及目標(biāo)板的硬件是否能正常工作等;2、仿真器需要復(fù)位。不當(dāng)操作或其他原因造成的ML-EC3可以被計(jì)算機(jī)識別但不工作現(xiàn)象,使用ML-EC3的復(fù)位軟件復(fù)位一下即可。軟件在光盤中的USB Reset文件夾。
問題2:為什么我用你們的例程顯示自己提取的漢字字模在液晶屏上顯示亂碼?
答:字模的提取是有順序的。以ML-F020DK+開發(fā)板使用的16X16漢字字模為例,字模的提取順序是先左后右、先上后下、縱向8點(diǎn)、下高位、的順序提取的。新的字模也要按照這個(gè)順序,否則會(huì)顯示亂碼。
問題3:為什么我在做液晶顯示的硬件仿真的時(shí)候正常,在實(shí)際運(yùn)行的時(shí)候卻是亂碼?
答:MCU在仿真的時(shí)候的速度和實(shí)際運(yùn)行的速度是有細(xì)小差異的。適當(dāng)增加對LCD操作的時(shí)間間隔,延緩對LCD的操作速度。
問題4:為什么ML-F020DK+、 ML-F120DK+開發(fā)板以及ML-F020ICB工業(yè)測控板等C8051F系列MCU為核心的目標(biāo)板無法使用其他公司的C8051F仿真器?
答:ML-EC3的驅(qū)動(dòng)能力比較強(qiáng),所以可以對這些帶抗干擾處理的目標(biāo)板進(jìn)行正常的仿真調(diào)試及程序下載。如使用其他公司的仿真器,請將這些目標(biāo)板的JTAG中的TMS、TDO、TDI三條走線上的下拉電阻取掉。調(diào)試完畢或下載完畢后再復(fù)原。
問題5:如何對C8051F芯片加密?
答:C8051F系列的芯片加密有兩種方式:1、程序中通過設(shè)置相應(yīng)的寄存器進(jìn)行加密;2、專用程序下載軟件的加密方式下載。第一種方式請參考Datasheet,第二種方式在下載的時(shí)候選中相應(yīng)的復(fù)選框后下載即可。
問題6:C8051F芯片加密后還能再擦除嗎?還能再下載程序調(diào)試嗎?
答:可以擦除。擦除后可繼續(xù)使用。
問題7:如何擦除加密后的芯片?
答:使用SILABS的程序下載軟件Flash Programming Utility 2.51擦除加密后的MCU。具體做法是:仿真器連接好計(jì)算機(jī)和目標(biāo)板,目標(biāo)板上電(此時(shí)保證有且只有Power指示燈是亮的)。在Flash Programming Utility 2.51軟件的Flash Erase頁中點(diǎn)擊Erase Code Space按鍵進(jìn)行擦除。詳細(xì)的芯片資料請參考Datasheet。
問題8:為什么C8051F320/340的USB驅(qū)動(dòng)安裝不上?
答:直接使用安裝軟件系統(tǒng)會(huì)提示錯(cuò)誤,系統(tǒng)提示拷貝文件SiUSBXp.cat出錯(cuò),使安裝無法繼續(xù)。安裝步驟如下:先在C8051F340的目標(biāo)板中寫入U(xiǎn)SB的程序并運(yùn)行。用USB線連接計(jì)算機(jī)和目標(biāo)板。系統(tǒng)提示發(fā)現(xiàn)新硬件但沒有驅(qū)動(dòng)。指定驅(qū)動(dòng)程序位置按照安裝向?qū)Ю^續(xù)安裝直至完畢。
問題9:我的MCU為什么會(huì)燒壞?
答:MCU燒壞的最終原因是器件承受了不能承受的電壓或電流造成了永久損壞。實(shí)際中的原因有很多也很復(fù)雜,設(shè)計(jì)上的錯(cuò)誤:例如程序錯(cuò)誤的設(shè)置了IO管腳,硬件上的錯(cuò)誤接法,應(yīng)用上的失誤:例如誤接了IO管腳,引入了錯(cuò)誤的電流,有導(dǎo)電物質(zhì)進(jìn)入電路板,手上的靜電等等。
問題10:為什么我在用KEIL C調(diào)試程序的時(shí)候已經(jīng)安裝SILABS的驅(qū)動(dòng),Load按鍵卻仍然是灰色的無法使用?
答:是因?yàn)闆]有進(jìn)行設(shè)置。在Option for target“target1”對話框的Utilities頁面上選中Use target Driver For Flash Programming項(xiàng),并在下邊的下拉菜單中選擇SILABS的驅(qū)動(dòng),確定即可。(注意Load與Debug的區(qū)別)
問題11:為什么在仿真的時(shí)候程序段運(yùn)行的時(shí)間沒有顯示?
答:MCS-51的指令執(zhí)行時(shí)間是確定的,所以在仿真的時(shí)候程序運(yùn)行的時(shí)間是可以計(jì)算的。而高速的、流水線結(jié)構(gòu)的CIP-51內(nèi)核芯片的指令雖然與MCS-51兼容,但有6條指令的執(zhí)行時(shí)間并不確定(請參考Datasheet相關(guān)部分資料)。所以時(shí)間是不可預(yù)計(jì)的。
注意:C2口的口線定義與JTAG口線定義不同,布板接線的時(shí)候注意。