IP210S external flash (code banking)

Posted by: 邱小新 at 下午3:22 in

最近又接了一份工作,是搞 IP210S 的案子,上頭想在 LCD 裏內建網路,可以讓使用者透過網路去控制 LCD 功能,還有能從網路更新軔體;好像是要仿造 NEC 的軟體功能。

拿到 IP210S 的 source code,看了一下,主要的函數全被封裝在 library 裏了,真不知為啥要簽 NDA,都被包起來了,有意義嗎?

今天主要是來記錄 code banking 的用法,IP210S 內含一顆 8052 的 mcu,ROM 是採用外部 flash,SST 39VF040 512KB。原本 IP210S 只有 16 條的 address line,也就是只能使用 64KB,剛好也是 8052 最大的定址位址。

那 512KB 要怎麼使用?當然就是切成八塊 64KB,使用 Keil-C 的 code banking 功能,硬體也很簡單,拉三條 GPIO 到 39VF040 的 A16~A18 即可。而 L51_BANK.A51 改成使用 mode 4,自己寫 bank switch code 即可。bank 0 就三個 GPIO 設成 0,bank 1 就 A16 那個設成 1,以此類推,夠簡單吧。

之前只使用過 winbond W79E632 的 code banking,而且還是 internal ROM,使用 mode 1,一直搞不清楚 mode 4 會用在那里。現在有了範例,就更清楚為啥要分那麼多種模式了。學 8051 還真是沒啥捷徑,真是要多看多學,才能累積經驗值。

0 意見

張貼留言