kazzo

バス衝突その後

MMC1 ぽんさんとこで、SNROM を書き込むとセーブデータが消える件が似た問題なので調査。スクリプトが怪しい気がするが、MMC1 のバージョンに依存するみたい。(AT49F002 は別問題のようでした)MMC1A (または無印)を利用すると flash 書き込み時にセーブデー…

バス衝突

なんと、海外の人からバス衝突してるかもねってメールが来た!すげー! 適当文法でも英語で文書書いておくもんだなと感心した!問題は SNROM の書き込み。書き込み完了後に SRAM が enable になってるとの報告。つまり、 0xffff を write したあとに bus を clo…

再販について

ここは公式見解を書く場所ではない(そもそもここは一般ユーザーお断りの空気を出すので来づらい)ので、なるかもしれない発表です。 kazzo PCB revision test 3.0 passed は完売で在庫 0 kazzo PCB revision test 6.0 passed は在庫 2 で、代行が落ち着いたら…

kazzo firmware 0.1.1 released

http://sourceforge.jp/forum/forum.php?forum_id=21585 書いときました。いまからファームウェアを更新するだけの簡単なお仕事が始まる...!

販売について

ばくてんさんのところでは通信エラーがでなかったので na6ko の環境で通信エラーがでたものは 1500 円引きで販売します。文書がまとまり次第、販売します。1月4日の予定。

address - data memo

<control pin status> CPU PHI2 = H CPU R/W = H PPU /RD = H PPU /WR = H <data bus status> address|CPU |PPU |data $0000- |empty |memory |hi-z $2000- |empty |empty(*2)|hi-z $4000- |register(*1)|memory |*1 $6000- |RAM |empty(*2)|CPU RAM $8000- |memory |memory |CPU memory $a000- |m</data></control>…

AVR 内部の flash さえ AVR から書き込んでしまう

思いつき bootloader という機能があって、起動時にファームウェアイメージを PC と通信してとってきて、ファームウェアに書いてから、起動。が、普通。起動時のベクタで bootloader mode にはいって、そこから書き込む専用と思いこんでた。データシートみて…

通信速度とエラー

いんくさんにエッジを削ってもらったので全て組み立てた。そのうち 5 個が書き込み途中にエラーが出る。回路上の問題はなさそうだ、では、なぜ。 USB のつなぎ方 なんでこうなるかしらないが、ハブを経由させずポートに直接つなぐとおそい。テストプログラム…

W29C040 の書き込みが安定しない件

PCB で試し運転してみたら、ETROM の CHR の書き込みが安定しないどころか、USB の通信まで切れてしまう。他の W29C040 を使っているのもそこそこ悪い結果が出るのだが、顕著に悪い値が出るのは ETROM だけ。それなりにおもいつく場所はあるのでところどころ…

プリント基板が届いた

というわけで組んでみた。致命的ではないが物理的な問題が出てきた。 エッジのスルーホールの径がぎりぎりだったので次回があれば一回り大きくする。 ねじ穴が合わない。これは紙に印刷した時点で、それがすこし小さかったのに気づくのが遅かったため。 セラ…

対外告知

disk はサポートできませんでした。すいません。 ファームウェア書き込み済みプリント基板を販売します。15個ぐらい。AVR だけ実装済みと全部実装済みの2種類を用意します。 ソフトと回路図などの公開はライセンス問題の解決待ちです。 文書は日本語と英語で…

回路図

(公開中断)

todo

host の調整。dump mode のエラーチェックがついてなかった。 文書書き。これが結構な量なのと、集中力が維持できない。 V-USB のライセンスの問い合わせ。 ライセンスに関しては2点違反しそうな点があったので、許してくれないかと問い合わせ中。英語だから…

いろいろ

基板と部品の発注は終わり。 AVR ライタが届いたが、動かん... コンペアのためのバッファ容量は 0x100 x3 にした。read のスピードは落ちるに落ちたが、8M で 90 秒が 95 秒になった。差を4で割ると1.25秒だし、そもそも read は需要が少ないので許容範囲。 …

flash のコンペアの検討

現状の unagi についてる書き込みは1領域だけで動いているのでいままでの通りのコンペアでよい。開発中の2領域同時書き込みはメモリ管理が面倒だったので現在は条件付きでページ単位でやっているときもある。コンペアの実装が適当なのは同時に動かすにはそれ…

時間計測をしてはいけない

経過時間が気になって気になって、ルーチンの最適化に心を奪われる。ルーチンの最適化なんてものはソースが読みづらくなるだけで、他の生産行為を妨げるからである。だから、えーと、ちょっと無駄な処理を発見したので似たような処理を追加して昨日の条件で…

flash うんぬん

erase request が利かない件 デバッグクライアントが erase の古い仕様だった。消えるわけない。直したら成功率 100% になった。 コマンドアドレス付近で書き込みが停まる件 flash write するときの波形を見直したら、バス衝突してた。直したら成功率 100% …

AM29F040B で書き込みが安定しない件

flash memory が erase command を受け付けない。erase を行う手段は 2 つあって、kazzo で erase command を発行する方法と、デバッグクライアントから 1write ずつ計6回送って erase command を発行する。通常は前者で、試しに使ってみたカセットで動かな…

product id, device id

flash memory というか、ROM にも id を得る方法があるので、現行は手動設定しているものを自動で設定できないか試してみた。 id 取得手順が似ているがばらばら 取得アドレスがアドレスバス全部のやつがある 実際に動かしてみたら安定しなかった というわけ…

並行書き込み

コルーチンがないと実装できなかったので、日本語文書が多い lua を選択。あとは unagi のソースを使いまわす。lua の使い方とか host 側の制御プログラムを作るのにちょっと手間取ったが、AVR 側との通信はわりと素直に動いてくれた。c から lua を呼んで、…

flash memory

MMC3, VRC6, VRC7 あたりは安定しているんだが、MMC5, VRC4 がだめ。 MMC5 erase command を打ち込むと erase 途中のデータは規則的に変化したものがでてくるが、これが8割ぐらいの確率でとれない。なので erase 完了のタイミングがわからずに、erase 途中に…

flash memory その2

Charcter ROM 領域の W29C040 の書き込みが安定しない 0x100 byte 書いた後に比較して、一致しなかったら書き込みし直す実装をいれたら大丈夫! Program ROM 領域はそんなんなかったんだけどなぁ... AM29F040B の erase がうまくいかない erase 中のデータ出…

flash memory

unagi に相当な手を入れて、Program ROM 領域の書き込みを確認。mmc5 だけうまくいってないけど、根が深そうなので後回し。Charcter ROM 領域も同様に実装したはずなのに、書き込みが実装できず。問題点はわかってるのだが、修正点が見つからん。phi2 関連で…

ほそく

ディスクに関しては詰まってるのでだめになるかも!

disk 進行状況

motor が動かなかったり、停まらなかったりする理由は write タイミングで wait をはさまないといけないため。 motor の制御は 1seek で停まるか、動き続けるか(強制的に停められる)のどっちかなんだが、よくわからず。 DRQ の発生は確認しているが 20 回程…