Hardware

 掲載しているソフトウェア等の利用はフリーとしますが、使用した事により何らかの損害等が発生しても責任は持てませんので自己責任で使用して下さい。
 作った人には著作権がありますので、違法とならないようにご利用願います。
 自分で改造等を行って発表したい場合はご相談願います。


「AKI-H8コントローラー」

 秋月電子で販売しているAKI-H8はA/D,D/Aコンバータを始め、78本のI/Oポートや128KBのROMを持っている割にコンパクトで使いやすいのですが、メーカー保証の書き換え回数が100回と少ないため、もっと回数制限なく汎用的に使いまくろうという方針で、AKI-H8コントローラーを作成してみました。

 簡単に言うと、簡易C言語のインタプリタとコンパイラで構成されています。
 プログラムを実行する場合は、パソコンからAKI-H8のメモリーに転送して実行したり、24LC64(24LC256)というシリアルEEPROMにプログラムを書き込んでおき、AKI-H8単体で実行したりできます。モニターソフトと同じような感じもしますが、もうちょっと高級言語に近い形でプログラムが作成できるので扱いは至って容易です。
 AKI-H8は4KバイトのRAMしか積んでいませんが、オーバーレイを使用することにより最大30Kバイトまでのプログラムを作成できます。

 現在はDOS/VとWindows98/Me/2000/Xp上で動作していますがインタフェースはRS232Cなので、他のOSには比較的簡単に移植可能です。

 それではAKI-H8コントローラーを楽しんで下さい。コントローラー本体は汎用ROMライタに含まれています。

Windows98/2000/Xp版Ver1.00の画面です(クリックすると拡大表示されます)


 「コンパイラ動作の簡単な説明」

 やっとコンパイラとして動くようになったので簡単に仕組みや注意点を解説します。

 「仕組み」
 なるべく簡単に実現するために、AKI-H8コントローラーでアセンブラソースを出力して、簡単な最適化を行い、AASMでアセンブルしています。そのため最初だけちょっと時間がかかりますが、次からは前回の結果を利用しますので高速です。
 次に、作成されたhexファイルとsymファイルを読み込んでボードに転送、実行しています。

 「最適化について」
 取り敢えず一番無駄な部分が取れれば良かったので、現状では本当に簡単な最適化しか行っていません。
 まだまだ、改良の余地がありますが、今の所、動作に影響はないのでのんびり改良します。

 「メモリー使用量について」
 コンパイルした場合、どうしてもインタプリタよりメモリーを多く使用します。速度的な問題が無い場合はインタプリタで動作させた方が余裕を持ったメモリーの使い方が可能です。


「汎用ROMライタ(AKI-H8コントローラー応用編1)」

 AKI-H8コントローラーの応用編として汎用ROMライタを作成してみました。

 現在書き込みを確認しているデバイスは以下の通りです。
 シリアルEEPROM、27CXXのEPROMはコンパイラに対応しています。(他のデバイスは未確認)

device

動作

備考

AT90S1200

内部/外部のクロック指定も変更できます
安い外部発振用を購入して内部発振に切り替えて使っています
AT90S4414

 
AT90S8515

デバイスを購入していないので確認できませんが多分問題ないと思います
AT90S8535

 
2402

以前秋月で安く販売していた256byteのシリアルEEPROMです
24LC64

 
24LC256

 
27C256

簡易言語なので簡単に他の容量にも対応可能です
今ではAKI-ROMライタを使う事は無くなりました
27C512

 
PIC16F84

 
PIC16F88

new!(2005/01/30)configはプログラムと共に書込み

 本機はAKI-H8のD/A出力を使用しているため、書き込み電圧が任意に設定できますから、その他のデバイスにも簡単に対応できます(5V〜21Vで約0.06V単位)。

 8ピンデバイスから40ピンデバイスまでを搭載した場合、供給可能な信号とピンは以下の通りです。
基板スペースがあればあと2ビット分までは追加できますが、その他の配置については変換アダプタで対応した方がよいと思います。

VPP

VCC

GND

                 

VPP

VCC

GND

   

1

---

40

32

28

24

20

18

8

 

 

   

2

---

39

31

27

23

19

17

7

     
     

3

---

38

30

26

22

18

16

6

     

 

4

---

37

29

25

21

17

15

5

     
   

5

---

36

28

24

20

16

14

   

 
     

6

---

35

27

23

19

15

13

       
     

7

---

34

26

22

18

14

12

 

   
     

8

---

33

25

21

17

13

11

       

   

9

---

32

24

20

16

12

10

 

 
 

10

---

31

23

19

15

11

       

   

11

---

30

22

18

14

         

   

12

---

29

21

17

13

           
     

13

---

28

20

16

             
   

14

---

27

19

15

             
     

15

---

26

18

               
   

16

---

25

17

               
     

17

---

24

                 
     

18

---

23

                 
     

19

---

22

                 
   

20

---

21

                 

 「既知の問題点」

 全体(65K)   配置(41K)   配線(48K)


 「Version1.50の改良点」

 「Version1.51の改良点」


AKI-H8コントローラーの配布コーナー

Windows版はVersion1.20からWindows98とWindows2000に対応しました。
Version1.30からはAASMを使ったコンパイラ動作に対応しました。
Version1.40からはインタプリタ版がオーバーレイ動作に対応しました。
Version1.50からはコンパイラ版もオーバーレイ動作に対応しました。
DOS/V版ではHP200LXにも対応しているはずですが、当方では動作確認できなくなりました。
HP200LXとAASMを組み合わせると極めて小さな開発環境が揃います。

注意

今回(Version1.50)はハードウェアも変更しています。
添付の説明を読んで改造後、AKI-H8のソフトウェアも入れ換えてご利用願います。

ダウンロード

ソースファイルを再コンパイルする場合は以下のソフトウェアが必要です。
AKI-H8ボード側:秋月のアセンブラとCコンパイラ
パソコン側(Windows版):C++Builder5以上とエックスさん作「CommX106.lzh」
CommX106.lzhはniftyのFDELPHIにフリーウェアコンポーネントとして登録されています。
当ホームページでは転載していませんのでご了承願います。
パソコン側(DOS/V版):Borland C++ 5.0と同等なコンパイラ
DOS/V版のRS232C通信にはISHIJIMAさんのフリーソフトを使用しております。
なお、エックスさんおよびISHIJIMAさんにはこの場をかりてお礼申し上げます。


 「注意事項」


 「外部拡張コネクタ&ISPアダプタの製作」 2000/07/31

 「空いている時はICチェッカーに使おう

 「空いている時はアセンブラの勉強をしよう

 「開発経緯」


 「今後やりたいこと」

 とりあえず以上のような事を考えていますが、実現時期は定かではありません。
 それと私が持っていないデバイス用の簡易言語が作成されると嬉しいです。


「複数Ch電圧計(AKI-H8コントローラー応用編2)」

 スタンドアロンで動作するソフトの検証用に簡単な電圧計を作ってみました。簡易言語の使い方を参考にして下さい。
 
ee_prog()関数が使えるので、ROMライターが無くても24LC64か24LC256に簡易言語を書き込んでスタンドアロン動作させる事ができます。

「作り方」

 ハードウェアは回路図の通りに作って下さい。AN0とAN1の電圧を表示します。
 ソフトウェアの書き込みには以下の2通りの方法があります。

 (1)AKI-H8コントローラーと汎用ROMライターで書き込む方法

 (2)ターゲットボード上で書き込む方法

「スタンドアロンソフト作成上の注意点」

 必ずmain()関数を作成して下さい、main()から実行されます。
 また、簡易言語のAUTORUN等の記述は 実行されません。必要ならmain()関数から呼び出して下さい。

ダウンロード

「既知の問題点」

 データロガーに使おうと思っていたee_write()関数がまだ正常に動作していません。
 現在のバージョンでは動作するようになりました。