2010年6月19日土曜日

SH-2A SDカード(SPIモード)を試す。


CQ出版 Interface誌 2010/7号でFATファイルシステムの実装記事があり、同誌Webサイトでソースコード等が公開されました。記事を斜読しながら、SDカードの読み込みを試しました。


(モノクロLCD表示 左半分は表示不全)








概要
  [SDカード][SPIモード]==(SPI)==[付属SH-2A基板][モノクロLCD表示]

 ソースファイル
  (mmc.c/cc932.c)(ff.c)(main.c)
    mmc.c   SDカード制御(SPIモードコマンド送信、SPI設定)
    cc932.c  Unicode/SJIS変換
    ff.c    FATファイルシステム
    main.c   プログラムメイン
    他

 改造点
  ・SCIF(UART)による出力を液晶表示に(機能検証が出来る程度)
  ・SPIチャネルをCh0からCh1に(SPI1使用)
  ・MMC_CD/MMC_WPのポートアサインを変更 (PC6、PC7)使用


1.SDカード・ドータボードの作成
 ・シリアルフラッシュROM(M25P40)
   ブート用 SPI0接続・・・このため、SDカードはSPI1接続に変更
 ・SDカードコネクタ
   I誌 記事を参考に配線 付属SH-2A基板 CN3のピンアサインは以下の通り。

  [SDカード]   [付属SH-2A基板 CN3]    
   9       (100KΩ)--- 3.3V
   1 CD/DAT3   22 SSL10(CS) PG18(GPOIOのHi/Low出力でCS信号を代替)
   2 CMD     21 MOSI1(DI)         ---(100KΩ)--- 3.3V
   3 Vss      GND
   4 Vcc      3.3V              ---(0.1uF)--- GND
   5 CLK     23 RSPCK1(SCK)
   6 Vss      GND
   7 DAT0     33 MISO1(DO)        ---(100KΩ)--- 3.3V   
   8 DAT1    (100KΩ)--- 3.3V
   CD       28 PC7             ---(100KΩ)--- 3.3V
   WP       27 PC6             ---(100KΩ)--- 3.3V
   ※SDカード 1ピンのプルアップ(100KΩ---3.3V)は無し。
  最初、SDカード 1ピン(CS)信号はSPIのSSL信号を使うものだと思っていました。ソースコードにCS_HIGH/CL_LOWの操作があるのを、SH7262のSPI機能で賄えないかと思い色々調べるのですが不明、結局、ソースコードどおりにGPIOのHi/Low出力で行いました。

2.ソースの改造
 1)mmc.c
   ・使用する、SPIチャネル0をチャネル1に  (RSPI0=>RSPI1)
   ・CS、CD、WP のポートアサインを変更
 2)cc932.c  そのまま使用
 3)ff.c    そのまま使用
 4)main.c
   main()のfor(;;)ループ内のSDカード操作機能を切り出し、ディレクトリのファイルリスト表示、選択ファイルのテキスト表示を行う。
  ・di ディスク初期化(SPI、GPIOの初期設定) ディスクのフォーマットは行わないようです。
     disk_initialize()
  ・fi 論理ドライブ初期化 f_mount()
  ・fl ディレクトリ情報取得 f_opnedir(), f_readdir()
  ・fo ファイルOpen f_open()
  ・fr ファイルRead f_read()
  ・fc ファイルClose f_close()
  
 ※セクションの設定の試行錯誤に合せ #pragma section文の追加・削除を行っています。
 ※dhisk_initialize()の前にf_chdrive(0)を実行(メモ)


3.不具合対応(試行錯誤)
 1)モノクロLCD表示不全
  現象 モノクロLCD(SG12864)の左半分の表示が不能、プログラムの表示領域のデータも不全
  対処 FATファイルシステム(SDカード関連含め)、LCD表示を 個別のセクションに配置
  結果 プログラムの表示領域のデータは正常に設定されるようになるが、依然表示は不全

以前、V850 で SDカードの読み書きに挑戦したのですが、挫折、今回、ある程度の動作が確認できたことで、なんとか、SDカードの利用に目処がついたと思っています。後は、もう少し、公開されたソースを解析し、安定動作を実現したいと思います。

0 件のコメント:

コメントを投稿