小ネタ 2008-024
ヒューレットパッカード社の電卓HP20b
HP20bを入手した。(2008-09-08)
HP20bの写真
HP20bの特徴
・金融計算用電卓
・2行の液晶表示で、上の行がドットマトリクスで、下の段が7セグメント表示
・下の段の数字表示の位取りのコンマと小数点が見分けづらい
・キータッチは安物の電卓のように軽く、質感が良くない
・プラスチック面が傷つきやすい感じ
・hpのロゴ部分はしっかり作ってある
・軽い
・中身はATMEL製ARM7プロセッサAT91SAM7L128が載っているとのこと
・DevelopmentKitが公開されており、組み込まれているソフトを書き換えることができる!
裏側の電池交換用のフタを開けたところの写真
6ケの電極が並んでいるのが見えるが、この電極の部分が回路図のJ3の部分のようだ。
J31〜J36と書いてあるのは、J3の1番ピンから6番ピンのことだと思われる。
このJ3は、JTAG端子ではなくて、シリアルポートに接続されているようだが、ここからシリアルデバッグでソフトを書き換えることができるのだろうか?
他にJTAGとかI/O端子とかA/Dとかを取り出せるような取り出し口は無い。
分解については、見える場所のネジ3本と、ゴム足の下に2本のネジがあるのだが、これらのネジを外しても簡単に筐体が開けられなかった。
分解してみた。(2008-09-13)
ネジ止めは5箇所なのだが、ネジを外しても簡単には筐体を開けられなかった。
筐体の土台側の9箇所にツメがあり、固くはまっていて簡単に外れない。かなり力を入れて外した。何カ所か傷が付いてしまった。
中の基板は、DevelopmentKitの情報のとおりJTAGとかI/Oとか存在しているようだ。
分解してみたところの写真,
ツメがはまっている部分を外し中の写真
ツメの位置
(後日加筆 2008-10-05 分解した写真とか情報は既に出ていたようだ。前にGoogleで検索した時には見つからなかったのだが、探し方が悪かったか。)
ソフトを書き換えてみた(2008-09-21)
HP20b用のソフトを自作する前に、まずHP20bのフラッシュメモリの書き換えをテストしてみた。
「HP-45 simulator running on the HP-20B」というページにて公開されているHP20b用のHP45シミュレータを書き込んでみたところ、正常に書き込みができて電卓の動作が確認できた。
書き込み方法は、JTAG端子を使う方法と、シリアルデバッグ端子を使う方法がある。
今回は、シリアルデバッグ端子を使う方法を試した。
この方法だと、電池蓋を外した部分に見える6つの電極のみで書き換えが可能であり、この電極の部分に合うコネクタとか治具が手に入れば、HP20bを分解しなくても書き換えが可能となる。
今回は、もう分解してしまった後なので、電極部分の周囲の筐体のプラスチックを切り取って基板上の6つの電極のパッド部分に電線を半田付けして、信号を取り出した。
PCとの接続は、FTDI社のUSB-UART変換用ICのFT232RLを搭載した基板のキットを使った。
書き換えには、ATMEL社のWebサイトから「SAM-BA」というソフトをダウンロードして、使用した。
上記の写真には無いのだが、ERASE端子を+Vに接続するためのスイッチをあとから付けた。ERASE端子をHighにすると、CPU内部のBoot用ROM選択のフラグがリセットされる。フラグが立った状態だとFlashROMからBootし、フラグがリセットされていると起動時に内蔵ROMから起動する。内蔵ROMにはSAM-BA用にモニタっぽいソフトが入っており、シリアル通信でPCのSAM-BAソフトから制御して、FlashROMの読み書きなどをすることができる。
(USB付きのATMELのARMだと、内蔵ROMで起動させてFlashROMにモニタが自動で書き込まれ、そのモニタを起動させることでUSB経由でFlashROMを書き換えたりできるらしいのだが、HP20bに使われているARM-CPUにはUSB機能は無いようだ。残念)
ソフトを自作できるか (2008-10-12)
ゲーム電卓のソフトを作ってみようと思った。このゲームは、昔、ポケコンで作った覚えがある。
とりあえず、画面をどのようにするかLCDに表示させてみた。