
■ 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つのファイルも、表示プログラムと同じ場所に保存して下さい。
・ソフトウェアSPI(通常ポート)とハードウェアSPI(専用ポート)の選択、および、ポートピンの変更は、
"Config_MMC_644P.bas"を修正して下さい。
・設定プログラムの詳細は、「AVR-DOSの使用方法」を参照して下さい。
・RS-232Cターミナルの設定は、使用するモニターに合わせて、プログラム内 または BASCOMの
オプション設定で、通信速度などを設定して下さい。
|
|
注意! この図面を使用した、いかなる損害にも責任を負いません。
|
|
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カード内のファイル・ディレクトリが表示できます。
|

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

ファイル・ディレクトリの表示
(ターミナル画面) |
AVRマイコン ATmega328Pの、ヒューズ ビット書き換え |
◎BASCOM-AVRでコンパイルして、「AVRISPmkII」の書き込みウィンドウを使用する場合は、
ヒューズ ビットが自動で変更されますから、書き換え操作は不要です。
・それ以外の場合は、下記の設定に変更して下さい。
CKDIV8 = 1 , SUT = 11 , CKSEL = 0111 , BODLEVEL = 1.8V
|
プログラム |
・下記のテストプログラムとDOS設定プログラムを、同じフォルダーにダウンロードして下さい。
・「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レベル変換」基板で、ターミナルに接続する
ことも可能です。
|
 |
ブレッドボード上でテスト回路を配線。
AE-UM232RをAVR回路の装置内に組み込む場合は、
[USB POWER]を使用しない接続にして下さい。
この製作では、AVRのヒューズ ビットを工場出荷状態のまま使用しますので、変更の必要はありません。
|
プログラム |
・下記のテストプログラムと関連プログラムを、同じフォルダーにダウンロードして下さい。
・「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進)で表示します。 |
|