星期一, 11月 28, 2005

Winbond W78E58B : 華邦的9051變種MCU

spec在Winbond網站可以downlaod (http://www.winbond-usa.com/products/winbond_products/pdfs/8-bit/W78E58Bg.pdf)
核心是8052,另外增加:
32K ROM
4K AUX ROM - ISP loader code
512 RAM (其中256是AUX RAM)
4 個IO Port.

RAM

00H-7FH: 直接/間接定址
80H-FFH: 間接定址
AUX 00H-FFH: 間接定址,使用MOVX指令
AUX RAM rese 後是disabled,要將CHPCON的bit 4 設定後,才會將這個RAM開啟。
因為這是從CPU Core修改的功能,所有MOVX @R0/1的動作都會對應到AUX RAM,而不會影響到外部。同時,也不會影響P0/P2的動作(一般MOVX 指令會使用P0/P2作為bus line)。

In System Programming (ISP) Mode

利用另外提供的4K ROM,可以作ISP的動作。
對read-only的CHPCON register寫入87H,59H後會開啟CHPCON的write mode,對CHPCON的bit更動,可以讓MCU進行(wakeup後執行4K ROM的program,MCU reset..等動作)。
programming相關的SFR:
SFRAH,SFRAL:燒寫的高/低位址
SFRFD:燒寫的資料
SFRCN:control byte of on-chip ROM progamming mode

SFRCN.6 (WFWIN) : 0 - 燒錄32K ROM
1 - 燒錄 4K ROM區域(AUX ROM)

W78E58B_SFCNspec 後附ISP的sample code。

使 用祥曦的P-ICE來作模擬時....

要使用到AUX RAM的功能(ISP就不用想了,一定是不可能模擬,除了jtag, embedded trace cell type的cpu外,沒有看過可以模擬ISP功能的MCU)。要follow deemax網站討論區的這一篇: 為甚麼P-ICE無法模擬W78E65Pㄋ
其實也不是甚麼密技,只是deemax的人不把他寫在Help中,所以如果不到討論區去問一下,應該沒有人會知道,要把JUMP設成BUS,然後又不能完全follow help的內容。要把P2設成IO。

所以說這些作tools的人很奇怪,既然是賣tool,有寫明有支援W78E58B,實際上也可以支援,但是在操作手冊中就是不說。讓人try了大半天,罵了大半天候,耐著性子到討論區去問,才給回答。
....但是這時候........已經對deemax沒甚麼好感了。

但是偉大的是,你問他為什麼不在手冊中寫清楚呢?(要不然就在W78E58B中註明限制)。
還有人會還回答說: ..其實這一家已經算很好了,問問題還會回答,像XXX和OOO,問題就像是石沉大海...
....所以?是在比誰比較爛就是了?

抱怨這麼多,設定還是要寫一下:
  1. 將target POD的X1,X3,X9 Close (P0/P2 as BUS)
  2. 將cpu的EA 接到High (disable EA)
  3. 將WUIT的P2ASIO enable起來
  4. 注意: Target POD上的CPU要有on-chip XData。WUIT emulate targt也要選有的
  5. Code : 在使用pdata前要enable:
    sfr CHPENR = 0xF6;
    sfr CHPCON = 0xBF;
    ......
    CHPENR = 0x87; // enable CHPCON write
    CHPENR = 0x59;
    CHPCON = CHPCON | 0x10; // write to CHPCON, enable AUX-RAM
    CHPENR = 0x00; // back to normal CHPCON write-disable
    ...

沒有留言:

張貼留言