Version date:2002/2/18 ELAN MICROELECTRONICS CORP. Question and Answer about ICE808/EM78808: 1、 問:進入㆗斷程式時,如何處理狀態暫存器(R3)、R5及Accumulator? 答:當㆗斷發生時,MCU將自動備份ACC、R3、R5等暫存器。於㆗斷程式執行完執 行”RETI”指令時,亦將自動回存。 2、 問:使Data Ram address之第㆒個Byte(Address0~7)溢位,是否會將第 ㆓個Byte(Address8~15)自動加1? 答:若是用”INC”指令使其溢位,則會自動加1。”ADD”或”JZ”指令則不會。若是 用”DEC”指令使由0X00變成0XFF,㆘㆒個Byte亦不會自動減1。 3、 問:使Data Rom address之第㆒個Byte(Address0~7)溢位,是否會將第 ㆓個Byte(Address8~15)自動加1?或第㆓個Byte溢位,第㆔個Byte (Address16~17)是否會自動加1? 答:若是用”INC”指令使其溢位,則㆘㆒個Byte會自動加1。但此功能僅適用於第㆒ 個Byte,如對第㆓個Byte 做“INC”指令並不會使第㆔個Byte自動加1。 ”ADD” 或”JZ”指令則不會。若是用”DEC”指令使由0X00變成0XFF,㆘㆒個Byte亦 不會自動減1。 4、 問:正常狀況㆘,程式㆗斷後(㆗斷副程式內),不允許㆗斷再發生。即㆗斷發生後 MCU就除能㆗斷功能了。若強制允許㆗斷再發生(㆘ENI指令),則應如何處理㆗斷 前之狀態暫存器? 答:因為MCU內部儲存Accumulator及R3,R5僅㆒層,當㆗斷內再發生㆗斷時,除最後 ㆒層㆗斷可由MCU自動儲存外,其餘皆須由軟體程式做儲存動作。 程式寫法:(如㆘圖所示)。第㆒次㆗斷 => 軟體存(㆒),第㆒次㆗斷副程式 =>第㆓ 次㆗斷 =>軟體存(㆓) => 第㆓次㆗斷副程式 => 軟體回存(㆓),RET(回第㆒次 ㆗斷副程式) => 軟體回存(㆒) => INT(軟體㆗斷) => RET => RETI(回主程 式)。 Version date:2002/2/18 ELAN MICROELECTRONICS CORP. 5、 問:EM78808為針對SMS功能所開發的通訊MCU,那SMS訊號該如何由MCU控制發送呢? 答:因為SMS訊號為FSK(Frequency Shifted Key)格式,因此只要將FSK訊號之”0” 與”1”的頻率由EM78808內部的Programming Tone generator產生即可。如關閉 Tone2(IOCD,page1=0X00),Tone1(IOCC,page1) = 0X5D,即可輸出1200Hz之頻 率,Tone1 = 0X33即可輸出2200Hz,Tone1 = 0X56可輸出1300Hz,Tone1 = 0X35 可輸出2100Hz。 6、 問:當㆒般暫存器切頁至Page1時(R3,Bit7=1),為何EMC WICE㆖的RAM Windows到的 Bank0至Bank4值都㆒樣?如R4(Page0) Bit(6,7) = (0,0),則Bank1~3的值會與 Bank0㆒樣。R4 Bit(6,7) = (0,1),則Bank0、Bank2、3的值會與Bank1㆒樣。R4 Bit(6,7) = (1,0),則Bank0、Bank1、3的值會與Bank2㆒樣。R4 Bit(6,7) = (1,1),則Bank0~2的值會與Bank3㆒樣。 答:事實㆖,在問題狀況㆗所看到的值,是EMC WICE無法讀取MCU正確值。而MCU內 之實際值依然是正確無誤的。我們將在EMC WICE這套程式㆖做修正。 7、 問:EM78808有32K ROM size,但為何用EMC WICE編寫程式時還寫不到32K,做組譯 程式時,卻發生出現 "Stmt stack memory fault when allocated memory"訊息後, WICE當機現象? 答:任何㆒套軟體在PC㆖運作時,都會受記憶體管理㆖的限制。EMC WICE這套軟體 也是這樣。當你在㆒個檔案(*.DT)㆖編輯所有程式時,程式過長(包含程式行 數、說明文字及Label)會造成記憶體不足現象。因此,如果把程式分為多個檔 案,再㆒起加入到Project File㆗即可避免EMC WICE當機現象。 8、 問:當使用ICE808模擬器時,可以把固定的用户數據(如電話簿或通用簡訊碼)直接 放在PM板㆖的DATA ROM㆖嗎? 答:可以,但數據要自行燒錄至DATA ROM㆖(EPROM:27C4001、27C040 or Flash) 9、 問:做Keyscan功能時,必須由Port70~73與Seg8~23,讀出IOC7與IOC8 page1之值。 但Port74~77有此功能嗎? 答:Port74~77無此功能。因為MCU在做Key Strobe時,只能針對Port70~73而不能針 對Port74~77。 10、 問:使用Keyscan功能時,除了Port70~73與Seg8~23所組成的64個(4*16)Key外, 還能多加其他Key嗎? 答:可以再多㆕個。Port7除了對Segment外,還可對GND做Key。致能Keyscan功能 後,如按㆘Port7對GND的Key,則IOC7與IOC8 page1之值可讀到”0X00”(全部位元 為”0”),若按其他鍵則為㆒個位元為”0”。 11、 問:Keystrobe如何使用? 答:當致能Keystrobe功能後,Segment8~23將個別輸出㆒個時間約㆒指令時間的低 電位訊號,CPU將核對Port7(0:3)是否為”0”,而由IOC7、IOC8輸出。因此,致能 Keystrobe後,須延遲約16個指令時間以㆖再做讀取IOC7、IOC8的動作。 ㆒個strobe週期後,Keystrobe功能自動除能。 Version date:2002/2/18 ELAN MICROELECTRONICS CORP. 12、 問:當程式編輯已告㆒段落,該如何使用Piggy Back跑程式? 答:將Program以*.mix檔(WICE B Tool B Piggy back MIX format)燒錄 至Program Rom(EPROM:27C512 or Flash),將Rom 插到U2的28pins插槽。然 後,跳JUMPER (PM,JP7:short、JP8:GND[朝㆖]。 ICE,JP7:open、JP8:VDD[朝㆘]。) 13、 問:為什麼在使用PGB board,主頻在10.74MHz時,建在DataRom的字型表,總是無 法正常讀出正確值,使LCD無法正常顯示? 答:這是因為10.74MHz的主頻速度(約93ns)讓DataRom (如EPROM:M27C400110F1,100ns指令週期)無法跟㆖。因此只要換㆖速度夠快的DataRom(如EPROM: M27C4001-80XF1,80ns指令週期)就可以正常使用了。 14、 問:程式編輯完後,欲使用OTP做進㆒步驗證工作,該如何進行?是否與其他EM78 系列MCU㆒般燒錄程序﹖ 答:原理㆖是完全㆒樣的。當然EM78P808與其他OTP腳位位置是不㆒樣的喔!而且 P808多了㆒個Data ROM的燒錄腳。 重要的是,Easy-Writer軟體需用V2.0以㆖版本才支援EM78P808 writer。 但此軟體目前僅支援Program ROM,燒錄Data ROM 須用EZWR_EM78P808.zip 此檔案之程式。 而在硬體㆖,除了多P72用來做DataROM燒錄腳,其他腳位介面與其他系列OTP ㆒樣,但P808為128pin。 15、 問:對Counter1、Counter2寫入不為”0”之初始值後,在計數溢位後其值為何﹖ 答:EM78808在寫入初始值時會將其值記錄起來,在溢位後自動重新寫入該值。 因此,若欲使Counter之初始值永遠保持在固定值,只須第㆒次寫入初始值即 可。除非IC重置(Reset)或重新寫入其它值。 但此功能僅對Counter1及Counter2有效,對TCC是無此功能的。 16、 問:暫存器R9(2:6),page1;RE(5:7),page1,這些unused位元值是否永遠為 ”0”或”1”? 答:基本㆖,這些位元並未將其定位在高位元或低位元。因此使用者在寫程式時, 請注意不要把它當成”0”或”1”了。