EXCEEDの同人ソフト開発日記という名の備忘録

趣味のゲームソフト開発人。プロなのかアマなのかは不明(不定)らしい。

任天堂のソフトはいつも予定通りに出てこないって言われるけど、
ソフト作りっていうのは、そういうもの。
ゲームソフトは、期限までにやれと言われて、徹夜したり死に物狂いでやったからといって、
期待通りのものにはならない。そういうふうにすると、
結局、チームは妥協しなければならなくなる。
妥協させられて、できたものは、粗くなってしまう。
ユーザーは目が肥えていますから、受け付けてもらえない

山内 薄

EXCEED2007-09-12

最大動作クロック

QE128はデフォだと、4MHz のFEI モード(FLL 有効、内部基準クロック)のバスクロックで起動する。その後、QG4やQG8 の初期化方法と全く同じ手順で(もともと HCS08 シリーズなので QGx 用に書いたCodeWarriorのCソースなら、ほぼそのまま動く。)ICSC2のBDIVの分周比を1にすることで、8MHz まで上げられる(実際はこの時点でトリム調整※で最大10MHzまで上げられるが)


※トリム調整については下記のURL(noritanさん)が大変参考になる。
http://www.geocities.jp/noritan_micon/003/003.html
http://www.geocities.jp/programmer_noritan/hc08/spyder/index.html


調べた限りでは、内部クロックを使う限り、バスクロック値は 30MHz が限界のようだ。(DCOクロック(最大60MHz)の1/2が基準バスクロックになるらしい)
で、8MHz(10MHz)を超えるクロックを使うには、QGx のICSSC の予約ビット領域(Bit7〜4のうちの7〜5)にマッピングされたI/O を使用する。ここに、DCOレンジを3種類の中(Low/Middle/High)から選択するビット(DRS)があって、


00 Low range = 8MHzのバスクロック
01 Middle range = 16MHzのバスクロック
10 High range = 24MHzのバスクロック
11 は予約
※いずれのバスクロックも内部基準クロック31.25KHzを使用した場合の値

という具合になるようだ。で、QE128 は 31.25KHz〜39KHz(トリム調整)と最大32.768KHz固定の2系統の基準クロックが選べるので、(これも ICSSC 内の予約ビット(DMX32)で選択できるようになっている)
つまり、これを駆使して 24MHz を 約30MHzまで上げられるという寸法。(約30MHz まで上げる方法は2通りあり、31.25〜39KHz を使う場合は 30.00MHz。32.768KHz を使う場合は 29.89MHz まで上げられるらしい)

ちなみに、CodeWarriorでデバック実行中のログにバスクロックが表示されるのな・・・今まで、気がつかなかった・・・(汗