■ AVRに SD/MMCカード・スロットを接続 ■


 AVRに、SDカード または MMCカード用スロットを接続し、大容量のデータを扱えるようにします。
 BASICコンパイラ、「BASCOM-AVR」には、AVR-DOSと言う本格的なDOS (Disk Operating System)が搭載されており、簡単にカードの読み書きが行えます。
 もちろん、AVRで作成したデータと、パソコンのファイルは、互いに使用することができます。


  
 
ディレクトリを表示

回路の概要
 
1.AVRの選定条件
 
 ・フラッシュ・メモリ 4Kバイト以上。
 ・SRAM 4Kバイト。 (DOS使用2,196バイト+スタック384バイト=2,580バイト)
 ・AVRはATmega644Pを選択し、クロックは8MHzの内蔵RC発振器を使用しています。

2.カード用電源とレベル変換
 
 ・SD/MMCカードは、3.3Vで動作するようなので、カードスロット基板に、低ドロップアウトの
  3端子レギュレータを搭載しています。
 ・また、5Vと3.3Vのレベル変換に、入出力共にトレラント機能がある、74LCX244Fを使用しています。
 ・これにより、AVRからは5V電源のみで動作させることができます。

3.カードとのSPI通信
 
 ・BASCOM-AVR付属の、SD/MMCカード用ライブラリ「MMC.LIB」は、ソフトウェアSPI(通常ポート)と
  ハードウェアSPI(専用ポート)の両方に対応していますので、他の接続機器とのバランスにより、
  どちらかを選択できます。

4.シリアル インターフェイス(RS-232C)回路
 
 ・電源電圧が5V単一なので、定番のMAX3232でレベル変換を行っています。
 ・パソコンとの接続は、RS-232C メス-メス クロスケーブルを使用します。

 
 
プログラムについて

ディスクの制御

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


ディレクトリ 表示プログラム
 
 ・掲載した「ディレクトリ 表示プログラム」は、コンパイル容量が3,400バイトなので、BASCOM-AVR
  試用版でもコンパイルできます。
 
 ・下記2つのファイルも、表示プログラムと同じ場所に保存して下さい。
 
SD/MMCカードのピン設定プログラム Config_MMC_644P.bas
AVR-DOSの設定プログラム CONFIG_AVR-DOS_JP.bas

 ・ソフトウェアSPI(通常ポート)とハードウェアSPI(専用ポート)の選択、および、ポートピンの変更は、
  "Config_MMC_644P.bas"を修正して下さい。
 
 ・設定プログラムの詳細は、「AVR-DOSの使用方法」を参照して下さい。

 ・RS-232Cターミナルの設定は、使用するモニターに合わせて、プログラム内 または BASCOMの
  オプション設定で、通信速度などを設定して下さい。


 
回 路 図  GIF版 SdMmcCir.gif (166KB)  PDF版 SdMmcCir.pdf (164KB)

部品配置図  GIF版 SdMmcPcb.gif (76KB)
アートワーク  GIF版 SdMmcAW.gif  (82KB)
   注意! この図面を使用した、いかなる損害にも責任を負いません。 

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



 
 基板 部品面

 
 基板 ハンダ面

 
  基板 側面


AVRマイコン ATmega644Pの、ヒューズ ビット書き換え
 
・AVR ATmega644Pのシステム クロックは、工場出荷時に1/8前置分周器がONに設定されて
 いるので、OFFに書き換えます。
 
・また、JTAGインターフェイスが許可になっているので、無効に書き換えます。

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

    ヒューズ ビット書き換え

 6.[ Fusebit C ] の右欄 [ 0:Division by 8 enabled ] をクリックすると、右側にプルダウン
   メニューが現れますから、 [ 1:Division by 8 disabled ] を選択します。
 
   [ Fusebit High H ] の右欄 [ 0:JTAG enabled[portc.2-portc.5 not usable] ] を
   クリックすると、右側にプルダウンメニューが現れますから、[ 1:JTAG disabled ] を
   選択します。
 







■ マイクロSDカードソケットモジュール MM-TXS02 ■

 サンハヤトから発売されている「マイクロSDカードソケットモジュール MM-TXS02」を、トレーニング・ボードからテストします。
 このカードは、5Vと3.3Vの電圧レベル変換が組み込まれているので、5Vのマイコン回路とSDカードの接続が簡単に行えます。
 SDカードスロットも実装済みなので、細かくて難しい面実装のハンダ付けも不要です。


回路の概要
 
1.AVRマイコン
 
 ・SDカードを制御するAVR-DOSは、AVRのSRAMが2Kバイト以上必要なため、トレーニング・
  ボードのAVRを「ATmega88P」から「ATmega328P」に変更する必要があります。
  SDカードを接続する際には交換して下さい。

2.SDカードとのSPI通信
 
 ・BASCOM-AVR付属の、SD/MMCカード用ライブラリ「MMCSD_HC.LIB」は、ソフトウェアSPI
  (通常ポート)とハードウェアSPI(専用ポート)の両方に対応していますので、他の接続機器との
  バランスにより、どちらかを選択できます。
 ・トレーニング・ボードでは、[拡張端子1]に接続しますので、ソフトウェアSPIを選択します。
 ・掲載のプログラムでは、カード投入検出信号を使用しておりませんが、プログラムによって
  カードの有無を検出することができます。

3.シリアル インターフェイス回路
 
 ・トレーニング・ボードのLCDに簡単な接続状況として、SDカード内のファイル数が表示されます。
 ・秋月電子製「FT232RL USBシリアル 変換モジュール[AE-UM232R]」を接続すると、パソコンの
  ターミナル画面に、SDカード内のファイル・ディレクトリが表示できます。



回 路 図  PDF版 AtbMM-TXS02_Cir.pdf (251KB) 



 
ブレッドボード上でテスト回路を配線

 
ファイル・ディレクトリの表示
(ターミナル画面)


AVRマイコン ATmega328Pの、ヒューズ ビット書き換え
 
◎BASCOM-AVRでコンパイルして、「AVRISPmkII」の書き込みウィンドウを使用する場合は、
  ヒューズ ビットが自動で変更されますから、書き換え操作は不要です。


・それ以外の場合は、下記の設定に変更して下さい。
 CKDIV8 = 1 , SUT = 11 , CKSEL = 0111 , BODLEVEL = 1.8V



プログラム
 
・下記のテストプログラムとDOS設定プログラムを、同じフォルダーにダウンロードして下さい。
 
プログラム  テストプログラム  AtbSDcardTest.bas
 SDカード設定プログラム  Config_MMCSD_HC_ATB.bas
 AVR-DOS設定プログラム  CONFIG_AVR-DOS_JP_Mega328P.bas

・「AtbSDcardTest.bas」のみをBASCOM-AVRで開いてコンパイルして下さい。
・シリアル通信のパラメータは、下記の値で固定です。 (プログラム内で変更可能)
   9,600ボー、パリティー無し、データ・ビット 8、ストップビット 1
・「USBシリアル 変換モジュール」は、無くても動作します。
 
・SDカードを入れてリセットボタンを押すと、SDカード内のファイル・ディレクトリが表示されます。
 
・その他の機能は、AVR-DOS 関連の命令を参照して、プログラムに追加して下さい。
・オリジナルの回路に変更する場合は、AVR-DOS (Disk Operating System) の使用方法を参照して、
 SDカード設定プログラムとAVR-DOS設定プログラムを修正して下さい。







File-System Interpreter

 上記のトレーニング・ボードを使用した簡易テストでは、ファイルのディレクトリしか表示することができませんでしたが、AVR-DOSにはディスクの内容をさらに詳細にテストできる「File-System Interpreter」というプログラムが用意されています。
 MS-DOSのコマンドを、AVRマイコン上のAVR-DOSで実現するプログラムです。
 「マイクロSDカードソケットモジュール MM-TXS02」を使用して、このプログラムを動作させます。


回路の概要
 
1.AVRとクロック
 
 ・AVR-DOSを本格的に運用するためには、AVRのSRAMが4Kバイト以上必要なため、
  ATmega644PA-PU(ATmega644P-20PU)を使用します。
 ・動作クロックは、内蔵RC発振器を1MHzで使用しています。

2.SDカードとのSPI通信
 
 ・BASCOM-AVR付属の、SD/MMCカード用ライブラリ「MMCSD_HC.LIB」は、ソフトウェアSPI
  (通常ポート)とハードウェアSPI(専用ポート)の両方に対応していますので、他の接続機器との
  バランスにより、どちらかを選択できます。
 ・ISP端子と共用ができて、SDカードへのアクセスも高速にするために、ハードウェアSPIを選択
  しました。
 ・掲載のプログラムでは、カード投入検出信号を使用しておりませんが、プログラムによって
  カードの有無を検出することができます。

3.シリアル インターフェイス回路
 
 ・秋月電子製「FT232RL USBシリアル 変換モジュール[AE-UM232R]」を接続して、パソコンの
  ターミナル画面で、「File-System Interpreter」の入出力操作を行います。
 ・別途、「RS232CインターフェースIC」や「RS232Cレベル変換」基板で、ターミナルに接続する
  ことも可能です。



回 路 図  PDF版 MM-TXS02_644pCir.pdf (270KB) 


ブレッドボード上でテスト回路を配線。

AE-UM232RをAVR回路の装置内に組み込む場合は、
[USB POWER]を使用しない接続にして下さい。
回 路 図  AE-UM232R_Int.gif 

この製作では、AVRのヒューズ ビットを工場出荷状態のまま使用しますので、変更の必要はありません。


プログラム
 
・下記のテストプログラムと関連プログラムを、同じフォルダーにダウンロードして下さい。
 
プログラム  テストプログラム
 (BASCOM-AVR(製品版)が必要です)
 SDcard_644P_FS_Interpreter.bas
 SDカード設定プログラム  Config_MMCSD_HC_644P.bas
 AVR-DOS設定プログラム  CONFIG_AVR-DOS_JP.bas
 File-System Interpreter 修正版  FS_InterpreterED.bas

・「SDcard_644P_FS_Interpreter.bas」のみをBASCOM-AVRで開いてコンパイルして下さい。
・シリアル通信のパラメータは、下記の値で固定です。 (プログラム内で変更可能)
   9,600ボー、パリティー無し、データ・ビット 8、ストップビット 1
 
・SDカードを入れて電源を入れると、「File-System Interpreter」が起動します。
・パソコン上で「Tera Term」などのターミナルソフトを起動すれば、「File-System Interpreter」の
 コマンド入力待ちになります。
 
・「File-System Interpreter」 コマンド・マニュアル  FS_InterpreterCMD.pdf

「File-System Interpreter」の起動画面。

ディスクの詳細情報とAVR-DOSの設定内容が
表示され、コマンド入力待ちになります。
<DIR> コマンド。

ディスクのディレクトリを表示します。
<TYPE> コマンド。

テキストファイルの内容を表示します。
<TYPE> コマンド。

テキストファイルの内容を表示します。

(日本語のファイル)
<DUMP> コマンド。

ファイルの内容をバイナリー(16進)で表示します。


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