[lang:ja] personal memo: HTTPServer and SD card w. locally available parts (秋葉原で部品調達)

This is a personal memo to remember what I have done.
Writen in
Japanese only, sorry. because this page contains no special things and/or local information.

このページは日本語のみで書かれています.


個人用メモ: 未来の自分のために書いておく.以下は2009年11月27日と12月02日のメモから


2009年11月27日: EthernetコネクタとSDカードアダプタ購入


26日夕方,秋葉原でRJ45コネクタとSDカードアダプタ,MicroSDカードアダプタを購入.

ラジオデパート3Fの門田無線で
RJ45コネクタはサンハヤトのCK-18(610円),コネクタと2.54mmピッチ変換基板つき.
SDカードコネクタも同社の変換基板付きCK-35(940円).
これに加えブレッドボードSAD-11(2070円)とジャンパ線キットのSKS-290(3190円)も同店で購入(両方ともサンハヤト).

他,千石電商で
マイクロSDカード用の同様のコネクタ+基板を見つけたので購入(1050円).
基板には「DAISEN C-MSD」のシルクがある.

27日は買ってきたRJ45コネクタでEthernetの動作を確認する.
mbedのHTTP_server例のページの情報を元に,接続してみる.
http://mbed.org/projects/cookbook/wiki/EMAC

CK-18の基板をそのままブレッドボードに挿すと,隣り合う各ピンがショートしてしまうので,パターンを切って配線.

(しかしブレッドボードなんて触るの,20年ぶりぐらいかもしれない)

必要に応じてプロジェクトにライブラリをインポート.方法は上記URLに記載がある.
ソースをインポートすると,ビルドの度にそのソースがコンパイルされるため時間がかかる.
プリコンパイルしたものがあるのでそちらを使う.
http://mbed.org/projects/cookbook/svn/EMAC/lwip/precomp

動かない.
ハブを介してDHCPからIPをもらい,USBシリアルにそのアドレスを表示するはずなのだが.
HTTPServer()のコールに引数を渡し,固定IPアドレスでも試してみるがダメ.
http://mbed.org/projects/cookbook/api/EMAC/lwip/trunk/HTTPServer/HTTPServer#HTTPServer

一息ついた後,よくよくページを見てみたら,掲載されているコネクタ(SI-60002-F)はトランスやコモンモードチョーク内蔵のものだった.
買ってきたコネクタはどうやら「コネクタだけ」のものなのでどうしようもない.
無理やりではあるが,100Base-Tケーブルの結線を確認し,TD/RDの+/-それぞれに直接TX/RXの+/-をつないでみた.

これで動作は確認できた.
しかし問題点は以下の通り,

  • 「/」に置かれたファイルには問題なくアクセスできるが,サブディレクトリ中のファイルは不可のよう....これはファイルIOの制限によるものかも知れないので別途確認要
  • 大きな画像ファイルの転送がうまくいかない.Index.htm内の<img src>ファイルに大きなサイズ(>20kB以上)のものを使うと途中で転送が止まるなどの問題がある....Ethernet部にトランスを入れたあるべき姿の回路で再実験を行う

2009年12月02日: Ethernetコネクタ(パルストランス入り)


Ethernet用のトランスを調べると,コネクタにそれを内蔵したものがあることがわかった.

ネットの情報では,秋葉原の秋月とマルツパーツ館で入手可能なよう.しかし秋月のページでは在庫なしのサインが出ていたことからマルツへ向かう.1個420円
https://www.marutsu.co.jp/user/shohin.php?p=64736

ココで買ったパルストランス内蔵RJ-45コネクタはYuan Dean Scientific Co.,LTDの46F-1211
http://www.yds.com.tw/driver/drivers/46-47F%20Series%20PDF%20Catalogue.pdf
ちなみにPHYのデータシートはここで確認できる
http://www.national.com/pf/DP/DP83848J.html#Overview

このコネクタの接続は前回のトランスなしコネクタの接続と同じになっている.そのコネクタに付属していた変換基板がそのまま使えないかと思ったが,無理だったので,ユニバーサル基板を切ってブレッドボード用に配線する.

コネクタの向きなどに注意しながら配線,先日と同じコードを起動したら動いた.
大きな画像200KB程度を転送してみても問題は出ない.


2009年12月02日: SDカードアダプタ


MicroSDカードアダプタを試してみる.

MicroSDカード・アダプタ基板には表面(ブレッドボードに挿した時に上になり,確認が可能な側)にピン番号,裏面に信号名が書いてある.

SDカードのライブラリのページを見ながら接続を確認.
http://mbed.org/projects/cookbook/wiki/SDCard

下記のページも参考にした.
http://mycom1.at.webry.info/200811/article_10.html

サンプルコードの通り,次のようにピンを初期化しているため5, 7, 6, 13のピンそれぞれをSDに接続する必要がある.

SDFileSystem sd(p5, p6, p7, p13, "sd");
SDカード側(ピン名 : ピン番号)  --- mbed側ピン番号
DO/DAT  : 7       --- 6
Vss(Gnd): 6       ---
SCK/CLK : 5       --- 7
Vcc     : 4       --- VOUT
Vss     : 3       --- GND
CMD/DI  : 2       --- 5
CS/DAT3 : 1       --- 13

しかしうまく動作しない.下のようなメッセージが出る.

Hello World!
Timeout waiting for card

オシロスコープで信号の様子を確認するとSDカードのpin7以外は正常に動いているよう.
pin7は決まったパターンのパルスしか出てないようでどうにも動かない.
そのうちmbedフォーラムでこのようなコメントを見つけた.
http://mbed.org/forum/topic/202/?page=1#comment-869

手持ちのカードはSanDiskの1GB,そのほかはメーカ不明の2Gしかない.
ためしにその2GBで試すと下のようなメッセージが出る.

Hello World!
This disk tastes funny! I only like 512-byte blockscouldn't open file to read...

mbedのSDのページでは512バイト以外のブロックサイズは動作せず1GBよりも大きいサイズのカードはサポートしないとあったがその通りのよう.


*** 後日,別ブランドの1GB-MicroSDカードを購入して試したところ,問題なく動くことを確認した.


SDカード容量の制限に関して...すでに解決されていたよう.
下のURLのリンクにあるコードで試したら,前に動かなかったSandiskの1GBやトランセンドの2GBも問題なく動作した.(2010 03/20)
http://mbed.org/users/simon/notebook/sdcards/



0 comments

You need to log in to post a comment