Skip to content

Firmware docs

RGBA_CRT edited this page Sep 1, 2018 · 2 revisions

ファームウェア資料

書きかけ

コマンド

'r' or 'R' 引数はアドレス(3バイト)とデーターサイズ(2バイト)で、
           指定したアドレスからデーターサイズ分を送信

'w' or 'W' 引数はアドレス(3バイト)とデーターサイズ(2バイト)で、
           アドレスをインクリメントしながら書き込んでいく

'a' or 'A' の引数はアドレス(3バイト) アドレスバスを操作

'c' 引数はフラグ(1バイト)で、/CE /OE /WE RESET等を操作
'v'  引数なし。バージョンを返します。FIRMWARE_ID+FIRMWARE_VERSIONの形式
'g'  クロック関連 引数は'0'か'1'
'b' ボーレートを変更 引数は32ビットリトルエンディアン

接続方法

  1. INITIAL_BAUDRATE[bps]で通信開始
  2. 'v'コマンドを送る, 正常にFIRMWARE_IDが返ってくるまでリトライ
  3. 'b'コマンドでボーレートを1000000bpsとかにする。
  4. 手順2と同じく'v'コマンドで応答が来るまで待つ。
  • この時に応答がなければそのボーレートは使用不可

SNES-CIC

  • 不安定
  • カートリッジ刺したまま接続すると不安定なことが多い

その他

  • データバスはOut, BusBufferはIn方向がデフォルトなので、違うように設定したら戻すこと

ざっくりヒストリー

  • 2016/7/2 Add LastAdr(Max55KB/s)
  • 2016/8/29 SnesCIC対応
  • 2017/2/15 [HKAF0]ファームチェック導入
  • 2018/2/26 [HKAF1]動的ボーレート
  • 2018/2/26 bankを超える吸出しは不可に(62Kb/s)
  • 2018/2/27 Readにバッファリングを導入してみたが逆効果だった(40KB/s)
  • 2018/2/27 SranWriteバッファリングを導入
  • 2018/2/27 Serial.writeを自前で行うようにした(82KB/s)
  • 2018/3/?? [HKAF2]コマンド仕様変更
  • 2018/7/18 [HKAF3]クロック関連の修正