■ AVRマイコンに ATA ハード・ディスクを接続する ■


 BASCOM-AVRのAVR-DOSには、ATAタイプのハード・ディスクを接続する、ライブラリが用意されています。
 ATmega128のテストボードに、ATA規格40ピンコネクターを用意し、動作テストを行いました。
 
 また、ライブラリの調査中に、「Filesystem Interpreter」と言う、システムモニターが用意されているのを発見しました。
 BASCOMのマニュアルにも全く触れられておらず、ネットにも関連記事が見あたりませんが、AVR-DOSの開発用に作られた物らしく、ディスクやメモリーに対するテストが、ターミナルのコマンドラインから行える便利なプログラムです。

 
ATA ハード・ディスクを接続

 
SDカードを接続
回路の概要
 
1.ATmega128テストボード
 
 ・ATmega128テストボードについては、下記の記事を参照して下さい。
    AVRに外部メモリー(S-RAM)を増設

2.ハード・ディスク・ドライブ
 
 ・ドライブは、古いパソコンから取り外した、40GBのディスクを使用しました。
 ・フォーマットはFAT32で、第1パーティションはウィンドウズの限界値32.768GB、
  第2パーティションは残りを割り当ててあります。 (フォーマットはパソコンで行って下さい)
 ・ドライブセレクトは、マスターに設定します。
 ・ドライブ用電源は、EVERGREEN ATA & IDE - USB 変換ケーブルに付属の、ACアダプターを
  使用しています。

3.シリアル インターフェイス(RS-232C)回路
 
 ・パソコン等のターミナル(エミュレータ)に接続します。
 ・ボーレート = 9600 , パリティ = None , データビット = 8 , ストップビット = 1

 
 
ソフトウェアについて
 
ディスクの制御


 ・ディスク ファイルの操作は、BASCOM-AVRのBASIC命令で簡単に行えます。
  (命令文は、 AVR-DOS 関連の命令 を参照して下さい)


○ ディレクトリを表示するプログラム。
 
 ・このプログラムは、コンパイル容量が3,800バイトなので、BASCOM-AVR試用版でもコンパイル
  できます。
 
 1.BASCOM-AVRには、ハードディスク用ライブラリがまだ入っておりませんので、CF_HD.lbx
   ファイルをダウンロードし、C:\Program Files\MCS Electronics\BASCOM-AVR\LIB\
   フォルダ内に保存して下さい。
        CF_HD.lbx  (BASCOM-AVR 製品版に含まれています)
 
 2.ハード・ディスクのピン設定プログラムを、表示プログラムと同じフォルダに保存して下さい。
   ピン設定プログラム、Config_HardDisk_M128.basを日本語訳した物ですから、ピン設定に
   変更がある場合は修正して下さい。
        Config_HardDisk_M128_JP.bas
 
 3.AVR-DOS設定プログラムを、表示プログラムと同じフォルダに保存して下さい。
   AVR-DOS設定プログラム、CONFIG_AVR-DOS.basを日本語訳した物ですから、設定に
   変更がある場合は修正して下さい。
        CONFIG_AVR-DOS_JP.bas


プログラム  テキスト形式 ソースファイル  ATAHddDir.TXT (3KB)
 BASCOM-AVR用 ソースファイル  ATAHddDir.bas (3KB)
 インテルHEX形式 オブジェクトファイル  ATAHDDDIR.HEX (10KB)

       
 
「Filesystem Interpreter」


 ・「Filesystem Interpreter」は、43KByteもある壮大なプログラムなので、BASCOM-AVR製品版で
  コンパイルします。
 ・製品版をお持ちでない方は、ハードディスク用とSDカード用の、HEXファイルを用意してあります
  ので、ぜひお試し下さい。


○ 以下に、「Filesystem Interpreter」の、製品版用コンパイル方法を記載します。
 
 1.BASCOM-AVRには、ハードディスク用ライブラリがまだ入っておりませんので、CF_HD.lbx
   ファイルをダウンロードし、C:\Program Files\MCS Electronics\BASCOM-AVR\LIB\
   フォルダ内に保存して下さい。
        CF_HD.lbx  (BASCOM-AVR 製品版に含まれています)

 2.下記のメインプログラムを新規のフォルダに保存して下さい。
   (フォルダ名は、ドライブ名以降、サブフォルダもすべて英数字のフォルダにして下さい)
        Test_DOS_Drive_JP.bas
   プログラム内で、ドライブの種類により、設定ファイルを選択して下さい。
   ('$include文の先頭の"'"を修正します)

 3.ハード・ディスクを使用する場合は、下記のファイルをメインプログラムと同じフォルダに
   保存して下さい。
   ピン設定プログラム、Config_HardDisk_M128.basを日本語訳した物ですから、ピン設定に
   変更がある場合は修正して下さい。
        Config_HardDisk_M128_JP.bas

 4.SDカードを使用する場合は、下記のファイルをメインプログラムと同じフォルダに
   保存して下さい。
   ピン設定プログラム、Config_MMC.basを日本語訳した物ですから、ピン設定に変更がある
   場合は修正して下さい。
        Config_MMC_JP.bas

 5.下記のCONFIG_AVR-DOS_JP.basファイルを、メインプログラムと同じフォルダに
   保存して下さい。
   DOS設定プログラム、CONFIG_AVR-DOS.basを日本語訳した物ですから、設定に変更が
   ある場合は修正して下さい。
        CONFIG_AVR-DOS_JP.bas

 6.下記のFS_InterpreterED.basファイルを、メインプログラムと同じフォルダに保存して下さい。
        FS_InterpreterED.bas

 7.メインプログラム「Test_DOS_Drive_JP.bas」のみを、コンパイルして下さい。

 
○ ファイル・システム・インタープリタ コマンド・マニュアル (PDF版)
 
        FS_InterpreterCMD.pdf

 
○ テスト用、HEXファイル。 (上記の「Test_DOS_Drive_JP.bas」をコンパイルしたものです)
 
 ハード・ディスク用   TEST_DOS_DRIVE_HDD.HEX 
 SDカード用  TEST_DOS_DRIVE_SD.HEX


 
回 路 図  GIF版 Am128Tcir.gif (271KB)  PDF版 Am128Tcir.pdf (217KB)

部品配置図  GIF版 Am128Tpcb.gif (190KB)
   注意! この図面を使用した、いかなる損害にも責任を負いません。 


 
AVR・RAM 実装状態

 
メイン基板 部品面

 
メイン基板 ハンダ面


AVRマイコン ATmega128の、ヒューズ ビット書き換え
 
・ATmega128は、工場出荷時に、ヒューズ ビットが下記の様になっていますので、変更が必要です。
 
 ○ クロック=内蔵RC発振器
 ○ JTAGインターフェイスが許可。
 ○ 発振器出力振幅(小)
 ○ ATmega103互換動作モード。

下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ ビットの書き換えを行います。

    ヒューズ ビット書き換え

   [ Fusebit98DCBA ] の右欄 [ 100001:Int. RC Osc. 1 MHz; Start-up time:
   6 CK + 64 ms; [CKSEL=0001 SUT=10]; default value
] をクリックすると、
   右側にプルダウンメニューが現れますから、
   [ 111111:Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms;
   [CKSEL=1111 SUT=11]
] を選択します。
 
   [ Fusebit High F ] の右欄 [ 0:Enable JTAG ] をクリックすると、右側にプルダウン
   メニューが現れますから、[ 1:Disable JTAG ] を選択します。
 
   [ Fusebit High H ] の右欄 [ 1:osc 1 ] をクリックすると、右側にプルダウンメニューが
   現れますから、[ 0:osc 0 ] を選択します。
 
   [ Fusebit Extended P ] の右欄 [ 0:ATMEGA103 compatibility mode set ] を
   クリックすると、右側にプルダウンメニューが現れますから、
    [ 1:ATMEGA128 mode ] を選択します。


「Filesystem Interpreter」の使用方法
 
 ・各種のコマンドが利用できますので、上記のコマンド・マニュアルを参照して下さい。
 ・コマンドの一例と、動作をご紹介します。



 ・起動すると、ドライブの状態を調べて、ファイルシステム情報を
  表示します。
 ・[AVR-DOS: Ready for commands] のメッセージの後、現在の
  アドレスポインタ4桁とコマンド・プロンプ ト [>] が表示され、
  コマンドを受け付けます。

 ・左画面では、[fs 1] パーティション変更コマンドを入力しています。


 ・[dir] ディレクトリを表示します。

 ・[fs 2] パーティションを2に変更します。

 ・第2パーティションのディレクトリを表示しています。


 ・[sd 0] ディスクのセクター番号0を、ダンプ表示します。
 ・[md $1000,256] SRAMの$1000番地から256バイトを、
  ダンプ表示します。

 ・[ed 0,256] EEPROMの$0番地から256バイトを、ダンプ
  表示します。



○パーツの参考資料
 ・基板  「秋月電子通商」 片面ガラスエポキシ・ユニバーサル基板 Bタイプ (95x72mm)
 ・QFP IC変換基板  「サンハヤト」  QFP-83
 ・SOP IC変換基板  「サンハヤト」  ICB-010


   電子工作の部屋 Top へ 前のページへ戻る