マイコンの最近のブログ記事

工場ハックで手に入れたジャンク基板に懐かしの6802 CPUが載っていたので、ぜひ動かしてみたいと考えていました。

mc6802_cpu.jpg

6802で検索してみると6802 Nano computerというシンプルな回路とサンプルプログラムが載っていましたので、まずはこれをブレッドボードで組み立てて、CPUが正常に動作することを確認してみました。

必要な材料は懐かしのUV-ROM 2732AとPIA 6821とあとは少々のパーツです。
2732Aは若松通商で150円で売っていますので、これを買ってきました。
問題はPIA 6821です。これはなかなか手に入れにくい状況です。海外のサイトでは在庫限りで販売しているところがありますが、国内ではなかなか見かけません。いろいろ探したところ、手創り屋さんというお店でPIA 6821(¥263)を売っていました。ついでに懐かしい46505(¥263)というCRTCも売っていましたので、合わせて購入しました。

早速組み立てです。40P DIPを2個使いますので、少し広めのブレッドボードを使わないといけません。
また同じボード上でサンプルプログラムにあるDice Gameの回路も実装します。
 
組み立てた結果はまるでジャングルになりました。

6802_nano_breadboard.jpg

写真の右上にある電源ぽい回路は以前作ったVFD用の電源回路なので、今回の回路とは関係ありません。
一番配線が集中している左下の40P DIPが6802で、中央下の40P DIPが6821、CPUの上にある少し小窓が見えている24P DIPが2732Aです。アドレス線は青、データ線は白で接続しています。
Dice Gameの回路は本当であれば、サイコロの目のようにLEDを配置するのですが、スペースの関係で7セグメントLEDで代用しています。このためサイコロの目にはなっていません。

配線確認をして動作させたところ無事動きました。CPUは正常のようです。


折角7セグメントLEDを使っているので、数字として表示するようにプログラムを手直ししてみたいと思います。
また、少し時間はかかると思いますが、6802 Nano computerのようにユニバーサル基板に実装しなおしてみたいと思います。


AVAL PECKER-11で2732Aを焼いてみました。このPECKER-11は最近入手したものでして、使い方を忘れないようにまとめておきたいと思います。
pecker11_1.jpg

PCとはRS232Cでシリアル接続をしますが、私の場合はiMacのParallels Desktopを使っているので、秋月のUSB・シリアル変換ケーブル[M-00720]に9P-25PのクロスケーブルをつないでPECKER-11につなぎます。
この状態で、シリアルの設定をします。
(1) 通信形式をデータ8ビット, ストップ1ビット, パリティ無しにします。
[SET] [0] で、[SET]キーと[-]キーを使ってD8 S1 Noを選びます。選んだら[JOB]キーで登録。
(2) 通信速度を9600bpsにします。
[SET] [1] で、[SET]キーと[-]キーを使って9600を選びます。選んだら[JOB]キーで登録。
(3) フロー制御をX-On/X-Offにします。
[SET] [4] で、[SET]キーと[-]キーを使ってXON/XOFFを選びます。選んだら[JOB]キーで登録。
(4) データフォーマットをIntel HEX形式にします。今回は6802のROMなのですが、アセンブラがHEXフォーマットを出力するもので。
[SET] [5] で、[SET]キーと[-]キーを使ってIntel HEXを選びます。選んだら[JOB]キーで登録。
(5) この状態でPC側でTeraTermを立ち上げて、COMポートを選び9600bps、データ8bit、ストップ1bit、パリティnone、フローXON/XOFFに設定します。
(6) 通信テストとして、PECKER-11のバッファRAMの内容をシリアルに出力してみます。
[JOB] [C] [0] 00000000 [SET] 00000FFF [SET]
これでHEXフォーマットがTeraTermの画面に出力されればシリアル通信は問題ありません。

今回焼くROMはFUJITSUのMBM2732A-25です。
PECKER-11には簡単なイラストが書いてありますが、右よせでソケットにセットします。
pecker11_2.jpg
セット後にROM種別をPECKER-11に設定します。[JOB] [SET] [0]でデバイスを自動認識するのですが、今回はうまく認識できなかったので、手動で設定しました。
(1) まずメーカー名の設定です。[JOB] [SET] [1] [0] で、[SET]キーと[-]キーを使ってFUJITSUを選び、[JOB]キーで登録します。
(2) 続けて型名の設定です。[1]を押し、[SET]キーと[-]キーを使って、2732Aを選び、[JOB]キーで登録します。
(3) 続けて容量の設定です。[2]を押すと、4KBと表示されますので、[JOB]キーで登録します。
(4) 続けて書き込み方式の設定です。[3]を押し、[SET]キーと[-]キーを使って、STANDARDを選び[JOB]キーで登録します。
これで2732Aが使える状態になりました。
pecker11_3.jpg

まずはブランクチェックをします。
(1) [BLNK] [SET]と押します。
問題なければ以下のように「Blank chk finished」と表示されます。
pecker11_4.jpg

次に書き込むデータをPECKER-11のRAMバッファに読み込みます。
今回は0x0000F000 に配置するROMなので、オフセットは0000F000とします。
(1) [JOB] [D] [0] 0000F000 [SET] と押すと、シリアルポートからの受信画面になります。
pecker11_7.jpg

(2) シリアル接続したPCからIntel HEXフォーマットでファイルを送信します。受信が終わると画面がもとに戻ります。
(3) RAMバッファに正常に読み込めているかを確認します。
[JOB] [0] 00000000 [SET] と押すと、00000000の内容が表示されます。
pecker11_8.jpg
今回は8Eで正しかったです。ここで[SET]キーを押すと次のバッファの内容が表示されますが、その内容も正しかったので、正しく読み込めているようです。なお、[-]キーで前のバッファの内容が表示されます。

いよいよROMに書き込みを行います。
(1) [PROG] [0] [SET] と押します。書き込みが始まります。
(すぐ書き込みが終わってしまったので書き込み中の画面写真が取れませんでした。また次回にでも。)
(2) 書き込みが完了すると、finishedとチェックサムが表示されます。
pecker11_9.jpg

これで2732Aに無事6802のコードが書き込めたようです。
でも、ROMの窓に張るシールが無いなぁ。どこかにあったかな。

mbedにVFDを接続して遊んでいましたが、mbedと同じマイコンが載っているLPCXpresso LPC1768 にVFDを接続してみました。
プログラムはmbedサイトでコンパイルしたバイナリをLPCXpresso-IDEを使って、LPCXpresso LPC1768に書き込みました。
microSDカードはSparkFunのマイクロSDカードスロット・ピッチ変換基板を使って接続しています。
LPCXpressoは基板に少し幅があるので、少し大きめのブレッドボードを使うしかありません。もう少し小さいと良いのですが。
とりあえずVFDとの接続はmbedと同様にして、内蔵LEDのポートだけLPCXpressoに合わせたところ問題なく動作しました。
microSDカードからBMPを読み込んで表示するだけであればこれで十分ですし、ブレッドホードの空きスペースには+70VのDC-DCコンバータを組むことができそうです。
mbed + StarBoard Orangeはネットワークに接続して使うことにしましょう。

VFD_LPCXpresso.jpg

これでMTM07のネタが1つできました。

@morecat_labさんから、7segduinoの試作版を試しませんかというツイートをみかけたのでお願いしたとこころ、7segduinoリード部品版パーツセット一式をお送りいただきました。
7segduinoの詳細は@morecat_labさんのサイトで紹介されています。
http://web.mac.com/kuwatay/morecat_lab./7segduino.html

今回の試作版は上記サイトに掲載しているものとは異なり、7segduinoのチップ抵抗を通常のリード抵抗に変更しているため、作りやすくなっています。

本来ですと、SparkfunのFTDIアダプターがそのまま刺さるようになっていますが、私はあいにく持っていませんので、秋月のFTDIモジュールを使うことにしました。

7segduinoの組み立てですが、ハンダ付けの経験があれば特に問題なく作れると思います。
部品点数も少ないので短時間で製作できます。
注意すべき点としては、7セグLEDをハンダ付けする前にAVRに書き込みができるかの確認を行うことです。
7セグLEDをハンダ付けしたあとは基板の裏側にはアクセスできなくなってしまいます。私はこれを忘れて7セグLEDまで取り付けてしまいましたが、無事一発で動作したので助かりました。
また、7セグLEDを取り付ける方向は、基板にUP, DOWNと書かれていますので、これで合わせる必要があります。

完成した7segduinoです。

7segduino_1.jpg

7segduino_2.jpg

秋月のFTDIモジュールとの接続は、ピンーソケットケーブルで以下のように接続しました。

JP1(Sparkfun FTDIアダプタ) CN2(秋月FTDIモジュール)
----------------------------------------------
1 GND           7 GND
2 CTS (U1-11)       10 CTS
3 Vcc (5V or 3.3V)     4 VIO
4 TXO (U1-1)        1 TXD
5 RXI (U1-5)        5 RXD
6 DTR (U1-2)       2 DTR

なお、秋月のFTDIモジュールのJ2はショート(USBから電源)、J1は2-3ショート(5V)とします。

実際に接続するとこのようになります。
7segduino_3.jpg

この状態でiMacのUSBに接続したあとに、Arduino IDEを起動しLilypad Arduino 328とすることで、スケッチのアップロードもできました。
サンプルプログラムを動かしてみました。

無事動作を確認することができました。
最近は自動販売機の投入料金表示の7セグLEDでアニメーションをやっているのを見かけますが、あのような様々な表現を試してみたいと思います。
また、I/O端子にセンサー類も取り付けられるので、ブレッドボードでいろんなセンサーを接続して、気に入ったものは基板にして7segduinoに取り付けると面白いでしょう。

試作7segduinoをお送りいただいた@morecat_labさんに感謝です。

秋月で買ってきたNuTiny-SDK-NUC120を動かしてみました。
DVD-ROMがついています。付属品はそれだけです。紙の説明書はありません。
DVD-ROMをWindows PCに入れると、次のような画面が出てきます。

NuTiny-SDK-NUC120 Keil EV.jpg

開発環境をインストールした後にサンプルプログラムを動かしますが、この説明がアニメーションになっていて、分かりやすいです。なお、開発環境は評価版なので32KBまでですが。
また、動作中のビデオ画像も入っています。このあたり親切にできていると思います。
私も早速動かしてみました。


HP20bの分解が終わったところで、JTAGコネクタをつける部分のケースに穴を開けます。
私の場合は今後の作業がしやすくなるように、結構大きめに穴を開けてしまいました。

hp20b_case_cut1.jpg

ただし、ここまで大きく開けてしまうと、外側のカバーケースをロックする部分が無くなり、非常に甘くなりますので注意してください。

次に電卓本体とケースをはめ合わせます。

hp20b_case_cut2.jpg

電池をいれて動作確認。良くみるとわかりますが、外側のケースを固定するところが無くなってしまいました。

hp20b_case_cut3.jpg

動作は特に問題ないようです。

hp20b_case_cut4.jpg

反省点としては、窓はもう少し狭くして、外側ケースのロックをする部分は残しておいたほうが良いでしょう。
困っている点は表面実装用のピンヘッダがなかなか見当たらないことです。もし、秋葉原で見かけた場合はぜひ教えてください。
どうしても見つからなかったら、フラットケーブルをハンダ付けかなぁ。

去年の年末から大きな話題になったHP20bのケースを開けてみました。今年初めての分解作業です。
工具は先が薄い金ヘラと精密ドライバーになります。

あくまでも参考手順です。分解は自己責任でお願いします。

まず外側から見える場所のネジ3本と、ゴム足の下にある2本のネジを精密ドライバーで外します。
ゴム足は全部めくるのではなく、端を少しだけめくって、ネジを取るようにしました。
次に難関のプラスチックのツメですが、こういう構造のツメをはずすのに最適の工具があります。写真に映っている先が薄い金ヘラ(幅38mm)です。これは以前Mac miniを分解するときに購入したものです。今回もこれが役立ちました。ちなみにホームセンターで一般的に売られています。

hp20b_open01.jpg

こんな感じで隙間に金ヘラを差し込んで少し斜めにするとツメが外れます。

hp20b_open02.jpg

同様に横のツメも外していきます。

hp20b_open03.jpg

このように斜めにするとツメがはずれて浮き上がります。

hp20b_open04.jpg

すべてのツメを外して、ケースを開けることができました。ほとんど傷はついていません。

hp20b_open05.jpg

この方法であれば何度でも開け閉めできそうです。
次はJTAGコネクタを付けるためのケースの加工に入ります。

Twitterを眺めていたら、HP20bというキーワードがでてきました。
なにやらARMを載せていて、gccとかでプログラミングできる電卓とか。
さっそく、HPのサイトに行くと、Developer kit for HP 20b financial calculatorなるものがあり、ZIP形式で開発キットが公開されていました。
サンプルプログラムや回路図やオリジナルのROMイメージなどが入っていて、これはなかなか楽しそうです。
しかも、お手頃の値段になっているとか。HPの電卓にも興味がありますし、昔PC-1500みたいなポケコンとかFX-602Pとかのプログラム電卓も触っていたので懐かしいです。
年内には到着する模様です。これでまたおもちゃが増えてしまいました。


Make: Tokyo Meeting 04で、スイッチサイエンスさんから購入したProto sheld v.4Arduinoシールド用ピンソケットのセットを使って、ArduinoのLCDシールドを作ってみました。
これまでは、ブレッドボード上に組んでいましたが、今後もよく使うと思うのできちんとしたものにしました。LCDは秋月の小型LCDです。

lcd_shield.jpg

LCDシールドは表示が見えるように一番上に載せることになるので、リセットスイッチがあるのは便利です。
バックライトはショートピンで点灯/消灯が選択できるようにしました。
Arduinoとの接続はピンヘッダからジャンパピンでD2からD7に接続していますが、必要があればジャンパピンを外して、メスーオスのケーブルで他のデジタルポートに接続できるようにしています。
とりあえずLM73をつないで温度計にしました。快調に稼働しています。

大岡山の東京工業大学でMake: Tokyo Meeting 04が開催されていたので、顔を出してきました。
面白かったのは、「マッチ棒ロケット」。マッチを2本アルミホイルに包み、周りからアルミホイルを熱することで、燃焼ガスのジェットを作りロケットにするというもの。非常に単純な構造なのですが、再現性が難しくなかなか遠くに飛びませんが、何度か試しているうちに遠くに飛ばすことができました。
あとは、スイッチサイエンスさんでTwitterの名刺を頂き、いくつかパーツを買いました。オライリーさんでは本とタンブラーを買ったら、カレンダーをいただきました。
学研さんのブースではこれまでの大人の科学の一覧があり、春にはArduinoが付録になるようです。
他にも興味深いものがいろいろありましたが、Make: blogでまとめていただけると思いますので。

mtm04.jpg


ウェブページ

Powered by Movable Type 5.13-ja

このアーカイブについて

このページには、過去に書かれたブログ記事のうちマイコンカテゴリに属しているものが含まれています。

前のカテゴリはフィジカルコンピューテイングです。

次のカテゴリはレアものです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。