1 :
774ワット発電中さん :
2005/05/31(火) 22:03:10 ID:vsx7iyuZ そのままSDカードを自作回路で読み書きするスレです。 目指すはPCのファイルの読み書き!
2 :
774ワット発電中さん :2005/05/31(火) 23:34:02 ID:jSq8XwjW
なんか半田付け大変そ。USBでいいだろよ。
USBホストを作るのって簡単?
4 :
774ワット発電中さん :2005/06/01(水) 00:03:04 ID:dg+iKb5Z
アダプタ買った方が安いぞ
5 :
774ワット発電中さん :2005/06/01(水) 00:14:00 ID:1xPFEIJf
7 :
2,5 :2005/06/01(水) 00:15:42 ID:1xPFEIJf
さあ、眼前にはSD山が聳え立ってます。SD山、USB山を制覇しませう。w
8 :
774ワット発電中さん :2005/06/01(水) 00:19:46 ID:Vodd1B8u
むしろ不良在庫?としては古いスマメが… PICでたたきたいよ!
ELM氏のMP3プレイやとか参考になるんじゃないかな
SPIモードであれば、ワンチップでも読み書き可能です。 ただ、セクタサイズのバッファを用意できるかが問題かなぁ。 次にFAT山。こちらは読みはいいけど、書きはめんどくさげ。 SDのソケットは、秋月が安いでつ。
11 :
774ワット発電中さん :2005/06/01(水) 01:24:33 ID:Zn7W/zh6
>セクタサイズのバッファを用意できるかが問題かなぁ。 CMD16でブロックサイズを小さくすれば大丈夫。 内蔵RAM512Byteのchip使ってバッファ128Byteでやったことあるよ。
13 :
774ワット発電中さん :2005/08/19(金) 17:06:07 ID:VNAx3kyz
SDカードを使った製品を作ろうと思ったけど、 ライセンスがいるんだねぇ。年間1000ドルも。 年間数台しか作らない機器だから諦めたよぉ。
>>14 自作のおもちゃならこっそりやればいいけど、
製品は厳しいね。
MMC使ったら?
16 :
774ワット発電中さん :2005/08/20(土) 23:44:31 ID:5NthqzBj
>>15 MMCも考えたけど「なんでSDじゃなくてMMCなの?」って客に聞かれたら、
なんて答えれば良いのか・・・って思ってね。
まさかライセンス料が高くてとは言えないし。
MMCカード用に作ったら、実はSDも使えてしまった場合はどうなるんだろ? コネクタ部分にライセンスがかかってない限り、それでもかまわないような気が。 ただし、大っぴらに(仕様として)「SDが使えます」と言えないのが欠点か。 そこは「SDはMMCの上位互換品ですし」ということで(ry
>>17 『SDはライセンス料を含むことになるので値段が上がりますがいいですか?。』ってキッパリ言ってしまうのはどう?w
もちろんかなり余裕をもった金額を掲示とか。
MMCは無償で規格を公開している。 と思ったらルールが変わって$500になったらしい。 でも、ロイヤリティはただだと。 SDカードは規格も有料、ロイヤリティもいるよね。 (実は仕様書をただで見ることができるけど・・・) 特許でガードしてるから製品化しておおっぴらにやると つつかれるかも。 コネクタは秋月で売ってるぐらいだから、ライセンス不要なんじゃない? ちなみにCFは規格は無償公開。 ロイヤリティも不要じゃないかな。
チョイ質問 SD-CARDをいま読み(FAT16/FAT12/FAT32の一部のみ)書き(FAT16) できてるんだけれども、SD-CARDの容量ってどうやって調べればいいんだろ? CSD読んできて仕様書通りに計算させてみたんだが、全然容量が合わない...... CSDデータのBITズレかなと思ったんだが、これも大丈夫そうだし、 どうやったら正確な容量が計算できるか分かる人いますかい?
23 :
774ワット発電中さん :2005/09/27(火) 19:34:36 ID:EMbZyUTM
質問ですが、よくSDカードやminiで携帯用ってあるけど規格違うの?
>>23 サイズが違うだけ(のはず)、miniSD→SD変換を分解すればおk
あ、mini自体が携帯用ってことなのかな? 携帯にメモリスロットすらついてない旧式だからさっぱりで(汗 なにか特殊な規格かフォーマットがあるのかと思って。
>>25 ハード的にはサイズが違うぐらいで、論理的には変わらんよ。
極端だけど、変換アダプタを基板へ直付けでもOK
なるほどね、小型化しただけですか。 詳細ありがとうございました。
面白そうなんでSDカードのアクセスに挑戦してみよう 先ずは回路組みますか
SDかMMCカード安く売ってるとこってどこ?
つ kakaku.com
Sanや謎のメーカーのは買っちゃだめだよ、安い分すぐ壊れるから。
sanの奴ならデータがあるから最初に使うにはいいんじゃない?
33 :
774ワット発電中さん :2005/10/06(木) 00:10:10 ID:GSq/s8Vw
デジカメのSDがなんか壊れました。 修復プログラム試す前にメモリーリード&ライトを手動でやって 他のカードにコピーを作りたいんだけど、良品のSDカードで やったとしてこのやり方でコピーは作れるもんですかね?
あ、数ビットの不良はあきらめます。
>>29 どっかのサイトでやってたけど、あぷあぷかなんかでMMCの4Mbyteのやつ?が
20枚、2000円ぐらいで売ってたと思う。
>>33 ファイルシステム通さずにブロック単位で読めばOK
しかし「あ、数ビットの不良はあきらめます。」という訳にはいかない。
数百バイト死ぬ。
>>36 それ、組み込みとかに十分使えていい感じだね。
>>37 なるほど、有難うございます。
勿論ファイルシステムは使用しなくて、とりあえずEZ-USB FX2あたりが
多少使っているのでこれでPCにバックアップ転送、逆も同じで考えていました。
それからブロック?単位でダメになるんですね。
まぁ、写真の一部が復活できればよしと考えていますのでそれでも結構です。
死んだ部分がファイルシステム部分だったら 正常なSD側でもファイルとしては見れないと思われ。 断片を自分で解析して結合する必要がある。
>>40 うーん、デジカメでカードが異常ですと表示されているらしいのでファイルシス
テム側の可能性がありそうです。
どこかのWEBページで似たような状況の人がデジカメでフォーマットしなおして
ファイル復旧ソフトで救出できたなんてのもありましたのでまだあきらめるのは
もったいないなぁ・・と。
PCへメモリーのイメージをバックアップできれば上記のフォーマットで失敗して
もあとで何とでも出来そうな気もしましたので・・
さて、とりあえずSDカードのコネクタを手配しないと・・
44 :
774ワット発電中さん :2005/10/06(木) 11:57:25 ID:IiN1eyiG
PCのUSBカードリーダとかで見るとどんな感じになる? デバイス自体認識されなかったら本格的にやばいね。 単にファイルが表示されないとか、新規ディスクとみなされて 「フォーマットしますか?」と出てくるレベルなら、 そこでフォーマットせずにddコマンドとかでダンプしてみるのも良い。
>>44 まだ手元に無いのでなんとも。。
とりあえずリムーバブルドライブとして認識されればDDコマンド使えるみたいですね。
それでイメージ保存でもいいわけか。。。。
どうもです。
46 :
45 :2005/10/07(金) 08:46:27 ID:LqDovw0i
物が届いて実際に見てみたのですがFAT領域が一部破損(物理的にではなく) しているだけでした。R-studioの評価版でイメージファイルが作成できるので あとはバイナリエディタでしこしこ抜き出してなんとか復旧できました。 とりあえずハード作らずに済みました。TNXです!
製品版はもう無いみたいですね。
ttp://canon-sol.jp/product/dr/ R-Studio データレスキュー(FAT版)販売終了のお知らせ
R-Studio データレスキュー(FAT版)の販売は、2005年1月27日を持ちまして終了致しました。
R-Studio データレスキュー PRO、ネットワーク版は引き続き販売しておりますので、是非ご利用ください。
48 :
774ワット発電中さん :2005/10/14(金) 08:00:25 ID:iUtYAXPI
ADC内蔵CPU辺り使ってICレコーダとか自作できそうだな。
免許証と一緒に入れてますが、何か・・・?
掛布の華はどんでんも認めざるをえなかったような 引退のときに雑誌のインタで阪神の低迷について聞かれ 「4番という特殊な打順に掛布さんのような打者ではなくボクが座るようになったのが そもそもダメだった、ボクはそういった打者ではなかった」って答えてた
52 :
774ワット発電中さん :2005/11/11(金) 22:01:11 ID:F4jeGlOd
ヒューマンデータさんの掲示板で「斉藤」とかいう香ばしい奴が出現してるな。w それはともかく、GHIシリーズはちょっと面白そうだ。
HDLの方が香ばしく感じるけど。 HDLの >そのSDカードをどのように使おうと普通は自由だと思われます。 とは、消費者としては正論。 しかしSDカードを使用する機器の製造販売を行っている会社の回答と考えるとどうかと。 正規メンバから見たら美味しいとこだけって思われない?
>>53 つか、SDAメンバでないとSD機器は作れないというのは間違いだから。
SDAメンバのメリットというのはそれとは別のところにあると考えるべき。
55 :
53 :2005/11/12(土) 18:20:03 ID:ceDj8qUv
>>54 それ本当?
CQ出版の「PCカード/メモリカードの徹底研究」にもSDカードにはロイヤリティがあって、
加盟が必要だと書いてあったよ。それを信じていたんだけど。
57 :
53 :2005/11/12(土) 21:25:45 ID:ceDj8qUv
>>56 有り難う!!
あと3ヶ月早く知っていれば・・・
実は私
>>14 なんだけど、年間で数十台レベルの機器にSDカードを
搭載したかったのですがロイヤリティやライセンスが必須と思っていたので、
SDカードの搭載を諦めた事があります。
有り難う!!
SandiskのPDFはたまたま見えてるだけで、 普通にSandiskのサイトから行っても見えないよ。 公式には公開されてないってばよ。 ロイヤリティがいるのは現状もそのままだし、 特許取ってあるから勝手に商売すれば訴えられる罠。 いい加減な事言っちゃダメですよ。 SDAのLicenseのページよく読んでご覧。 勝手に作るなってはっきり書いてあるよ。
あ、書き忘れた。 素人が個人的興味でやる分には、 日本国内なら特許侵害は問われないので、 自作しても商売しなければ問題ないですよ。
62 :
56 :2005/11/13(日) 00:13:44 ID:ZMINPank
最初に念のために書いておくけどあまり論争する気はない。 SanDiskのドキュメントは今年の夏ごろには製品ページからリンクされていたと 記憶している。今見たらリンクは外されているので、確かになにかの方針変更 があった可能性はある。100%白だよ、と主張するつもりもない。ただ、数ヶ月も 前からこのURLは知られていて、しかもファイル自体は消去されていないのも 事実。私はSDAメンバではないので、SDA内のNDAがどうなっているのかは 知る由もないが。 Licenseページについては、私にはそうは読めなかった。セキュアな部分につい ては私も明確にライセンスが必要という認識を持っているが。 特許については、もし「セキュアな部分以外で」なにか関連する特許があったら 教えて欲しい。(「ない」と主張しているわけではなく、知りたいだけ)
63 :
60 :2005/11/13(日) 01:13:12 ID:Anem8K7C
特許の具体的な内容については申し訳有りませんが知りません。
ライセンスを受けているわけではないので。
Licenseのページの下の方のリンク↓↓に契約書があります。
http://www.sdcard.org/licensing/HALA_Released%20September%202003.pdf ホスト装置の製造販売に関する特許は
SDA(の上の松下とか)が保有する、と有ります。
続きを見ると、SD仕様のすべてのホスト装置に関わる
必要不可欠な特許と有るので、
(P.1〜P.2にかけて、訳は少しいい加減です、勘弁)
基本的な部分がおさえられていると考えていいのではないでしょうか。
その中には、情報は非公開とすること、等の記述も有りますので、
SD仕様そのものが非公開と考えた方が良さそうに思います。
最初の2ページ程度しか読んでないですが、
やはり商売にはロイヤリティは必要と感じます。
どうでしょう?
>>63 お答えありがとう。個人的な見解としてはどちらとも取れるなという印象かな。
これ以上の論争はしたくないし、商売の人は自己責任でやってちょうだい。
まぁこのスレ的には
>>61 のとおりなわけで、サンディスクのドキュメントを読んで
アマチュアレベルでもSD使って遊びましょうよ、ってことですな。
断り書きを入れればトラ技の記事にするくらいは問題ないだろうし。
65 :
60 :2005/11/13(日) 01:38:33 ID:Anem8K7C
そうですな。 商売の人がしっかり調べるのは仕事の内と思うので、 自分でよく考えていただいて・・・ 素人工作でSDカードを使って、 是非発表してもらいたいですな。 他の人が何作ってるのか気になるので。 まぁ、そう言う自分も発表してないけどね。 ところで、さっき眺めてて気がついたけど、 ライセンスが必要という考えで行くと メンバー代$1500+ライセンス代$1000が毎年必要みたい。 えらい高いな。 商売の人は大変だね。
MMCで使ってればどちらにせよモーマンタイ
楽に儲けるには、何でもいいから新製品のフラッシュメモリが出たら 即契約結んで、特許固めのオリジナルの仕様つくっちゃえばいい。 メモリースティック、SD、XDのように。 それで、カードリーダーの箱に 「○○カードはライセンス契約した会社だけが生産することができます」 なんて書いておけばいいだろう。 将来いくつの規格が出てくるんだ。 結局ベータ対VHSの教訓は何も生かされてないんだな。
メモリーカードの種類はいろいろあるけど、 チップ自体は2種類くらいでしょ。NORとNANDと。 どれもコントローラで特徴を出してるんだと思うよ。 ちなみにメモリースティックのコントローラはダメダメですた。 MMCとSDは使いやすくて良いですね。
> 結局ベータ対VHSの教訓は何も生かされてないんだな。 教訓を生かした消費者は、SDカードを選んだんじゃないの? PS3も。
4GbyteのSDが発売されました。 今後このサイズを超える空間はどうやってアクセスするんだろう? お金出さないと教えてくれへんのやろか?
セクタアドレスは4Gまでだけど、 1セクタは512バイトだから 今まで通りで別に問題ないんでない?
2テラまでいけるのか そういえば1セクタあたりのバイト数も可変だったような気がしてきた 2テラのSDが出るころには別の規格がありそうだがw
CMD16で可変させても1byte単位でアドレス指定するんだけど
>>73 そういえばそうだった。4G以上はコマンドが増えるんだろうな。
悲しいお知らせ。 SanDiskのSDカード仕様書が完全に見えなくなっちゃいました。 見えてるのがばれちゃった様子だす・・・
保存しといてよかた
とりあえず見たのは保存済み。
うわー保存しとけばよかった。
nyで放流注
ハッシュ
感謝感激雨あられ!
あれ? なんでだろ。
>>75 見てすぐ
>>81 のサイトで探したときは見つからなかったのに・・・
4GbyteのSD買われてしまって無くなっていた。 FAT32に対応していないと使えないだろうな。 使えなかったら中古で半値1万5千円で譲ってちょ。
さて、そろそろ苺からSDカードデバイスが出ないか?
88 :
774ワット発電中さん :2006/01/07(土) 22:07:07 ID:7Vz3dn6s
ヒューマンデータから出たALFAT評価ボード結構良さげ?
FAT操作なんてフリーのライブラリ使えばいいじゃん。
ライブラリ使えるだけのエリアが空いてりゃいいけど・・・
FAT12の区切り方、なんでこんなに面倒なんだよーって思ったら! FATエリアをずらーーっとリトルインディアンに並べて、 下から12bitずつ切り取るだけで良かったのね。
>90 それはマイコンの選定ミスだ。
4Gから32Gまでの規格が提案されたらしいな
SPIモードはサポートされ続けるのだろうか?
95 :
774ワット発電中さん :2006/01/18(水) 22:21:53 ID:9YUtv71L
SDカードからMP3ファイルを再生するのをPICで作りました。 FAT12,16,32までは出来たんだけどNTFSと言うのが気になって 色々、ググって見たんだけど良くわかりません。SDカードがNTFS になる可能性は低いでしょうか?
>>95 可能性は低いし、一般にデジカメなどでもサポートされていない。
NTFSはフォーマット公開されてないんじゃなかったっけ。
97 :
774ワット発電中さん :2006/01/18(水) 22:30:51 ID:9YUtv71L
>>96 早い回答、ありがとうございます。
ファイル部分は、これで完成としておきます。
FAT12/16/32をやさしく解説している日本語サイトはありませんか?
99 :
774ワット発電中さん :2006/01/19(木) 16:28:16 ID:X4jpxUdC
薄汚れたSDプレーヤーをホームセンターのトイレの便器の中で拾いました。 SDカードにAACファイルを取り込むにはどんなソフトが良いのでしょうか? コピーコントロールCDからAACファイルを製作出来る無料ソフトを紹介して下さい。お願いします。 教えてくれた方には吉野家の牛丼特盛をおごります。 ではお願いします。
101 :
774ワット発電中さん :2006/01/22(日) 13:24:25 ID:EzPfewoW
SDカードそのものは主要メーカが作ってる訳だし、 マイコンにSDIが付いてればインタフェース回路も メーカが提供してる訳だし、コネクタもコネクタメーカ が作ってる訳でしょ? そもそも、それらを組み合わせて商品を作ったところで ロイヤリティ払う理由は無いと思うが・・・ どう思う?
104 :
774ワット発電中さん :2006/01/25(水) 13:48:00 ID:9Xsb2iWt
CQ出版 Interface きょう発売の最新号にSD/MMCの記事あった。 いまブームなのか? ナウいぜ! SD/MMC ずいぶん前に買ったTech Iシリーズの付録CD-ROM探してたら 年末の部屋の掃除のときに捨てちまったみたいで無かったよ orz 会社のお仲間にCD借りられてよかった... トラ技・Interface系は、買ったすぐは見ないけど、何年か後で必要になるときが来るね。 冊子は過去5年分保管してるけど、CDも捨てちゃイカンね。
誰か SDIOチャレンジした方いません?
bluetoothとかの事でしょ。 メモリカードみたいに公開されてる規格書が無いんだよねぇ。 自作でやった奴はいないんじゃないかな。
SDIOの共通スペック自体は公開されてるのだが、個々のデバイスメーカーから 資料が出ない限りそれのドライバは書けない。結局、USBデバイスと同じだな。
bluetooth_SDカードってソケット側と無線側の双方 から同時アクセスが出来るのかな?
113 :
774ワット発電中さん :2006/04/26(水) 07:57:03 ID:P0vvs+kv
SDカードって死ぬほど遅いんだな…
MMCモードじゃ駄目なんですか?
MMCモードじゃデータ線の数が少ないから、SDカードモードよりもっと遅いよぉ
a
同じ容量のカードをパラで4枚使えば4倍速だよ
パナソニックのSDFがVerうpしてる
age
sage
124 :
774ワット発電中さん :2006/06/05(月) 19:13:17 ID:X00ie+0x
SDカードをMMCと同ように使っているサイトを見たことがある SDカードの仕様書は一般には公開されていないのね・・・・・
127 :
774ワット発電中さん :2006/06/05(月) 21:52:10 ID:sbXdz2Bu
SDインターフェイスより、FAT処理の方がめんどい(w
>>127 ファイルシステムの中ではもっとも単純なんだがなw
MS-DOS世代ならFATごにょごにょやったことあるやつも少なくないんじゃ
2Gbyte SD 買ってみたが使えなかった。 CSDレジスタを読み出して調べてみると書き込みの単位が 512byte→1024byteに変わっていた。 読み出しはサイズ変更できるけど、書き込みは出来なかった。
1セクタ書き込みのときは、 1024バイト読み出す→必要な部分を差し替える→1024バイト書き込む。 で桶。
>>130 セクタサイズの変更は
昔MOで苦労したことを思い出すなー
133 :
130 :2006/06/06(火) 17:28:43 ID:HYpyCWO1
>>131 PICでFATを扱う時やりました。(ぶろっきんぐ・でぶろっきんぐ)うっCP/Mを思い出す。
FATバッファー=4byte DATAバッファー=512byte
512バイト読み出す→4byte差し替え→512バイト書き込む。
PICでは1024もワークがとれない。orz
>>132 MOで230MBをFAT32とFAT16の実験に使いました。
セクターサイズの関係で640MBは役に立たなかった。
今度は役立ちそう、でも今ではSDの方が安かったりして。orz
134 :
774ワット発電中さん :2006/06/06(火) 19:17:34 ID:l8CBEO6V BE:516940676-#
間違ってageてしまった・・・・
>ブロッキング・デブロッキング なつかすぃ〜な。 CP/Mではストリームアクセスなんか無くて、1レコード128バイト固定だったっけ。
>>136 2.2はそう。3.0はOS側で処理するようになった。
>>137 2.2までだっけか64KB中56KBもユーザに開放されてたのは
>>138 3.0はバンク切り替え実装すれば60KB以上解放できる。ってここ何のスレだw
CP/Mってver3があったんだ。 長いこと「2.2が最新版で、MSX-DOSはそれに機能追加したもの」って信じてた。
>>134 機能の割には結構安いね。
8450円なら、SDカードを扱うことが手段であれば、
趣味の工作に使ってもいいかもと思える値段だな。
この手のSDカード基板は通信がボトルネックになって実用的ではないなぁ。 好きなF/Wに書き換えできるんだろうか? SDカードI/F付きのマイコンボード(H8とかAVRとか)の方が美味しいような。 はやく出してくれ>秋月
>>141 機能の割にはちと高いと思うが…。基板原価\1500と見た。
ところで、それに使っているマイコンって、ATmega162っぽい希ガス。8051かも知れんけど。
プログラム書き換えできれば、ウマー(w
PICだと、SDカードをSPIで動かすサンプルコードが公開されてるんだよね。 USB内蔵PICでカードリーダーを作る為のコードなんだけど、 SDカードI/F部分だけ抜き出そうな感じ。 AVRも同じ様なApp.Noteがあるみたいだから、簡単にできそう。 このスレ的には基板を買ってくるよりもいいんでないか?
漏れ的にみたこのスレならばSDカードを扱うんなら外部ハード入れずに ポートのビットを下げたりリリースしたりして通信するのがいいと思うよ PS/2インターフェイス(KBorMS)よりも全然楽じゃんカヨw>SPI
>>145 オレはそのやり方でやってるが、H8とかだと5V->3.3Vで
LVC125、抵抗、3.3V電源は最低でも必要。
そういう意味の「外部ハード入れず」ではないかも知れんが。
>>147 普通のマイコンは3.3Vだからそのままつなげるよ。
>>148 最近のマイコンって3.3Vなんか......
まぁ、省電力とか考えるとそういう流れなんだろうね。
オレが個人的に使ってるのが秋月H8/3052Fとかだから、
5V->3.3Vは必要だったんよね。
最近サンハヤトR8とか使い始めてるが、これでSDアクセス(というかFATアクセス)
はちとソースがでかくなり過ぎてコンパクト化を考えんといかん。
PICのSDカード使用例だと 5V→3.3V 抵抗の分圧 3.3V→5V 直接接続
PICなら普通に3.3Vで動かせばいいのに。
152 :
774ワット発電中さん :2006/06/24(土) 21:31:21 ID:FgoDg4DL
外出 ただの戯言
なるほど。 SDカード固有の機能(セキュアとか鈍るモードとか)を使わなければライセンス問題なしということか。
156 :
774ワット発電中さん :2006/08/19(土) 23:46:52 ID:ANk+Zx6l
<チラシの裏> SPIモードでアクセスする時にCMD0以外ではCRC有効にしない 限りCRCの7ビットに何入っててもいいはずだと思っていたんだが、 昨日買ってきたUMAXの512MのSDカードはデータリードとかでCRC の値が0x00だとパラメタエラーになっちまう(CMD1,9,10は通る)。 最初タイミングが合わないのかと思ってアレコレ試してたら、引数が 必要なコマンドはCRCが0じゃダメなんだな。とりあえずCRCの値を 0x7f固定にしたら問題なく動くようになった。丸1日潰れたよ(つД`) </チラシの裏>
C-guysのバットマンSDなんだけど、SPIモードに入れないっぽい。 松下とAOpenのSDではSPIモードに入れてるから、プログラムのせいじゃないだろうし。
>>156 >CRCの値が0x00だと
CRC無し状態でもD0は"1"でないとダメだぞ。CRC=0x01
特に最近のカードは...
>>157 SDカードのSPIモードサポートは必須では無くなったのかな?
159 :
156 :2006/08/20(日) 18:50:54 ID:0zVB9CE6
>>158 CRCの値は7ビットのつもりで書いたんだ。コマンドパケットの48ビット目に当たるLSBは 1 にしてる。
正直7ビットCRCはDon't careなハズなのに値によってリジェクトされるのはどういうもんだろうねとは思ってる。
とりあえずCRC以外のところで躓いた以外は今のところ問題は見当たらないだけで、こんな変な挙動する
カードもあるよってことが判ったんでチラシに書いただけ。
まぁ、CRC計算を実装するかしないかは別にしてCRCをマジメに計算して0になるデータがリジェクトされる
ようなことがなけりゃいいんだがw>UMAXのSDカード
もしかして、そのSDカードって偽物じゃね?
>>157 CMD0を入れても0x01が返ってこない?
>>159 それって妖しいSDカードかも。なんでも、MSには偽物が出ているらしいからなぁ。
>>161 どこでこけたのか忘れた。
実験用につくった回路が手元に無いから試せない。
そのうち実験してみる。
SPI モードでも CRC7 を 使っているんだけど、最近 CMD9,CMD10 で CRC7 の 一致しないカードが有る。 調べてみると CMD9,CMD10 の 128bit の後ろに CRC16 がくっ付いていてこれは正規の値だった。 CMD9,CMD10 にも CRC16 ってあったのね。知らなかったにゃん。
CSDとCIDはデータブロックにくるまれて送られてくるからCRC16が憑いてるわな。
166 :
774ワット発電中さん :2006/08/24(木) 22:01:25 ID:XgyHm89G
age
167 :
774ワット発電中さん :2006/08/26(土) 00:21:14 ID:iehDnfEC
SDIO関連詳しいと来ないですか? 宣伝ばっかで疲れたです。
>>165 sandiskのデーターシートだとCIDもCSDもCRC7になってるぞw
とりあえず手持ちのSDカードはCID、CSDには全部CRC7をつけて返してくるんだが
新規格でCRC16かなんかになったのかな
169 :
164 :2006/08/28(月) 12:04:51 ID:bnob5+Bo
>>168 CRC7 を 含んだ 128bit の パケットが CRC16 の チェック対称になってるよ。
CRC7 までで受信を 止めていたんだが、ADATA なんかが CRC7 を 正規に計算していなかった。
170 :
168 :2006/08/28(月) 17:44:44 ID:gF+yVcZc
>>169 ADATAの奴か,128MBのを持ってるんだが
そいつは16オクテットで終わってるんだけど,
CRC16がでてくるのって容量いくらの奴?
調べたいんで教えてくれ
171 :
168 :2006/08/28(月) 18:27:09 ID:gF+yVcZc
連投スマン
>>169 勘違いしてたみたいだ
0xfeの後の16オクテット読んだ後2オクテット拾ったらCRCっぽいのが出てた orz
データブロックにはCRC16が例外なくついてるんだな
CRC16のチェックだけならCRC7のチェックは切ってもいいな
もっともCRC7が適当って話もあるからどっちがちゃんと計算されてるか確かめんといかんかもしれんがw
172 :
164 :2006/08/28(月) 18:36:59 ID:bnob5+Bo
CRC7 が うそで ブロックサイズ 1024byte
ttp://item.rakuten.co.jp/donya/43563/ MMC・SD CMD59 Argument=0x00000001 CRC7=0x83 Response=0x00
MMC・SD CMD58 Argument=0x00000000 CRC7=0xFD Response=0x00
OCR = 0x80FF8000
Card power up status bit (busy). b#1
Vdd 2.7 - 3.6 V
MMC・SD CMD13 Argument=0x00000000 CRC7=0x0D Response=0x00
R2 Status = 0x00
MMC・SD CMD10 Argument=0x00000000 CRC7=0x1B Response=0x00
20100410 1D 41 44 20 20 20 20 20 00 01 00 05 AD 00 56 13
20100420 F1 58
Manufacturer ID 0x1D
OEM/Application ID 0x4144
Product name
Product revision 0x01
Product serial number 0x0005AD00
Manufacturing date 0x56
受信 CRC7 = 0x13 計算 CRC7 = 0x75
MMC・SD CMD09 Argument=0x00000000 CRC7=0xAF Response=0x00
20100410 00 2E 01 32 5F 5A 83 BA B6 DB DF FF 9E 80 00 BB
20100420 FE 54
MMCモードでは裸で送られてくるから、CRC7が唯一のチェック手段だけどね。 SPIモードではCRC16が合ってればいいんじゃないかなぁ。
174 :
164 :2006/08/28(月) 18:48:18 ID:bnob5+Bo
CRC16 のみのチェック方法に変更すますた。
175 :
168 :2006/08/28(月) 18:59:36 ID:gF+yVcZc
>>172 こと164よ
おぉ詳細な情報サンクスコ
俺もSPIモードにしか興味ないからCRC16オンリーにする事にしたy
176 :
774ワット発電中さん :2006/08/28(月) 21:01:59 ID:ACJec8pY BE:73849223-2BP(400)
MMCモードでSDカードを利用が現実的?
>>172 この製品だけ
>製品保証は1年間ですが、相性保証はございません。
>お気を付けください。
クレーム殺到してるのかな。
178 :
164 :2006/08/29(火) 03:39:37 ID:F+T+iRX9
俺は PIC や Blackfin で使うんじゃなくて プレイやん で使いたかっただけなんだぉ Read しかしないんだから、初期化の時に CMD16 を 一回送信すれば良いだけなのに 任天堂のばかやろう と 愚痴を言ってみる
179 :
774ワット発電中さん :2006/08/30(水) 00:45:51 ID:npYO1GCw
最近USBメモリが1G:3000円とかで異常に安いんだが これにアクセスするのは難しいんだろうか? かなりすれ違いですが・・・
USBホストボードとか・・・・
>>179 USBホストチップを使えば簡単(かどうか微妙だけど、英文のドキュメントをちゃんと読めて
ファイルシステムとか作れる程度のプログラミングスキルがあれば大丈夫)。
SDカードと違ってすべての情報が公開されている。
>>179 手間を考えると単にストレージとしてのUSB機器接続が目的ならオススメできない
USBホストチップ使ってセクタR/Wまでなら簡単にできるけど、ファイルアクセスは面倒だな。 使う側にとってみればSDカードよりはUSBメモリの方が手軽ではないかと。
>>179 SDのほうが安い。
てかUSBホストチップつかったらそれだけで一気に高くなるし。
SPIでアクセスできる安価なSDは自作派の味方だと思う。
>>185 ちょっとsandiskのデータシート眺めた範囲ではSPIでのセクタ単位でのコマンドはなさげだねぇ
拡張コマンドのACMD系で追加されてるのかも知れんね
4G越えるカードだと32bitでアドレシングできなくなるから,その辺のカードかねぇ
白状すると,漏れはCMD17でも18でもアドレスは<<9してアクセスする方法以外取ったことない
まぁ貧弱なメモリしかのってないコントローラならバイトアクセスは使いみち有りそうなんだが...
確かにセクタ境界でしかアクセスしたことないなw SDHCもSDHC使えるUSBアダプタも持ってるから、暇があったらプロトコル解析したい
ADATA その後 間違えて 512byte で 書き込んだら何のエラーも無く書けてしまった 不っ思議〜〜?? MMC・SD CMD10 Argument=0x00000000 CRC7=0x1B Response=0x00 20100634 1D 41 44 20 20 20 20 20 00 01 00 05 AD 00 56 13 20100644 F1 58 MMC・SD CMD09 Argument=0x00000000 CRC7=0xAF Response=0x00 20100634 00 2E 01 32 5F 5A 83 BA B6 DB DF FF 9E 80 00 BB 20100644 FE 54 Partial blocks for read allowed Enabled (読み出しサイズ変更) Max. write data block length 1024 byte Partial blocks for write allowed Disabled (書き込みサイズ変更) MMC・SD CMD16 Argument=0x00000200 CRC7=0x15 Response=0x00 FAT 開始 アドレス 0x00010600 Address MMC・SD CMD17 Argument=0x00010600 CRC7=0x7F Response=0x00 512byte 読み出し時間 = 3msec 20100418 F8 FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 MMC・SD CMD24 Argument=0x7757FE00 CRC7=0x9F Response=0x00 201001D8 E5 00 00 00 データー・レスポンス 検出待ち時間 = 11msec 書込 データー・レスポンス = 0x05 データは受け入れられました。 512byte 書き込み時間 = 22msec 20100418 F8 FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 DATA ブロック 最終 アドレス 0x7757FE00 Address MMC・SD CMD17 Argument=0x7757FE00 CRC7=0xA5 Response=0x00 512byte 読み出し時間 = 3msec 20100418 F8 FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
違うメーカー UMAX の 2Gbyte の miniSD カードでも 512byte で 書き込めてしまった。詳細は 下記 MMC・SD CMD10 Argument=0x00000000 CRC7=0x1B Response=0x00 20100634 20 00 00 53 44 30 32 47 11 AB 00 22 26 00 67 99 20100644 5F EF Manufacturer ID 0x20 OEM/Application ID 0x0000 Product name SD02G<DC1> Product revision 0xAB Product serial number 0x00222600 Manufacturing date 0x67 MMC・SD CMD09 Argument=0x00000000 CRC7=0xAF Response=0x00 20100634 00 4F 00 32 5F 5A 83 CC F6 DB FF 8F 8A 80 00 5D 20100644 FF 67 Max. data transfer rate 2.5*10Mbit/s Card command classes Class 0,2,4,5,6,7,8,10 (サポート命令群) Max. read data block length 1024 byte Partial blocks for read allowed Enabled (読み出しサイズ変更) Write block misalignment Disabled (物理ブロック境界またぎ書き込み) Read block misalignment Disabled (物理ブロック境界またぎ読み出し) DSR implemented Disabled (駆動方法変更) Device size 0xF33 Device size multiplier 512 Max. write data block length 1024 byte Partial blocks for write allowed Disabled (書き込みサイズ変更) カード容量 (10進数) 2040528896 byte カード容量 (16進数) 0x79A00000 MMC・SD CMD16 Argument=0x00000200 CRC7=0x15 Response=0x00 FAT 開始 アドレス 0x0001F000 Address MMC・SD CMD17 Argument=0x0001F000 CRC7=0xE1 Response=0x00 512byte 読み出し時間 = 2msec 20100418 F8 FF FF FF FF FF 04 00 05 00 06 00 07 00 08 00 MMC・SD CMD24 Argument=0x799FFE00 CRC7=0x29 Response=0x00 201001D8 E5 00 00 00 データー・レスポンス 検出待ち時間 = 11msec 書込 データー・レスポンス = 0x05 データは受け入れられました。 512byte 書き込み時間 = 22msec 20100418 F8 FF FF FF FF FF 04 00 05 00 06 00 07 00 08 00 DATA ブロック 最終 アドレス 0x799FFE00 Address MMC・SD CMD17 Argument=0x799FFE00 CRC7=0x13 Response=0x00 512byte 読み出し時間 = 2msec 20100418 F8 FF FF FF FF FF 04 00 05 00 06 00 07 00 08 00
191 :
774ワット発電中さん :2006/11/27(月) 13:24:38 ID:yks9DVAD
保守上げ
192 :
774ワット発電中さん :2006/12/01(金) 03:53:55 ID:aYnKiyvk
SDのコマンドって、アドレスの指定が32ビットだけど、 これじゃ4GBまでしか読み書きできないよねえ。 8GBのSDカードってどうやって対応してるんだろう。
と思ったらSDHCという上位規格がすでに決まってたんですね。
SDHCって32GBまでしか対応してないのか。 これじゃすぐ足りなくなる気が。
SDメモリの読み込みをやろうとしているのですが、 指定したアドレスを読み込んでくれません。 CMD17を送って、アドレス00010000を読み込もうとすると、 なぜかアドレス0000B200が読み込まれます。 01000000を指定すると、00FFB200から読み込まれます。 つまり指定したアドレスから4E00を引いた場所を読んできてしまうわけです。 なぜこのような現象が起きるのか、分かるかたいましたら教えてください。
MBRの長さでしょ。
>>195 4E00より下のアドレスだとどうなる?
0000B200が読み込まれたっていうのはなぜ分かったの?
PCで書いたそれらしいデータが来たのかな
200 :
195 :2006/12/14(木) 21:48:15 ID:TXWcKgmG
アドレスの確認方法ですが、
>>199 さんのおっしゃるとおり、PCでアドレスを書き込みました。
C言語でSDメモリのイメージを作り、ddというソフトで書き込みました。
PCの方が位相が進んでる?
dd って seek = 0 を付けないとあれじゃなかった?
203 :
のうし :2006/12/20(水) 12:57:07 ID:4XHjv869
それらのこと来月のトラ技の特集でやるのか? 漏れはICカードのハッキングにチト興味あるけど‥ 参考になるかな、いろんなカードにそれ付いてていつも気になってて。
204 :
774ワット発電中さん :2006/12/20(水) 13:26:47 ID:PgkoLRk8
個人的にはFATとかの詳しい解説がほしいな。 できればNTFSフォーマットについて詳しく解説してほしい。
205 :
774ワット発電中さん :2006/12/20(水) 13:29:52 ID:jsQUC7e+
206 :
774ワット発電中さん :2006/12/20(水) 23:58:32 ID:w7paqBga
アクセス速度は問題ないのだろうか
9600bps ならOKでした
9600bpsで512MBだとどのくらいかかるんだろう
1時間10分くらい?
1バイト約1mSとして...1時間ちょいでは無理ジャマイカ?
あ、なんか間違ってたね、スマソ。1日近くかそれ以上だね。 そういえば、シリアルポートからGDROMの吸出しに1日かかってたんだっけ。
XPで1GのSDをFAT16でフォーマットしてみたんだけど、 セクター0にMBRじゃなくていきなりBPBが書かれてるみたいなんだけど、 これってなんでだろう?? ネットで資料みる限りだとセクター0にはBPBが書かれるはずなのに・・・
いわゆる「フロッピーフォーマット」か「ハードディスクフォーマット」かの違い どちらも読めるようにしておくのが吉
MBRが壊れた状態でフォーマットかけると、いきなりBPBから始まるみたい。 元に戻すにはフォーマットツールを使うしかないかな。
>>215-216 そういうことだったのか。ありがとん
やっぱどっちも読めるようにしといた方がいいのねん
>>214 >XPで1GのSDをFAT16でフォーマットしてみたんだけど、
>セクター0にMBRじゃなくていきなりBPBが書かれてるみたいなんだけど、
>これってなんでだろう??
>
>ネットで資料みる限りだとセクター0にはBPBが書かれるはずなのに・・・
ん?何が問題?
>>218 > セクター0にはBPBが書かれ・・
セクター0にはMBRが書かれ・・の間違いですた、スマソ
>>215 >いわゆる「フロッピーフォーマット」か「ハードディスクフォーマット」かの違い
何で区別するのが確実なんでしょ。
ダンプして見る限りだったらなんとなくわかるんだけど、いろんなSDで
確実に区別できる方法って無いものかな。
55AA
55AA? セクタ0の末尾の話? それじゃ区別できないぞ。
SDはハードディスクフォーマットだけなんだが。 フロッピーフォーマットは異常だから対応しなくていい。
だけなんだが …って。
セクタ0のオフセット0x36から3バイトが"FAT"だったらフロッピーフォーマット、 そうでなければハードディスクフォーマットと解釈するのが良かろう。
>225 それだとFAT32を識別できないよ。
確かにそうだけど、FAT32でフロッピーフォーマットってあり得るのかなぁ
SDHCで初めてFAT32に対応した、みたいな話もあるから、逆にSDHCでないSDは
FAT32でないと仮定しても良い気はするんだよな。以前作った組み込みモノでは
そもそもFAT32に対応してなかったから
>>225 の方法で問題なかったわけ。
230 :
774ワット発電中さん :2007/01/31(水) 23:33:09 ID:Yv6s5raa
Degi-Keyとか電即脳にあるんじゃね?
>>230 ヒロセのDM2AならDigi-Keyで売ってるね。1個買いで単価374円。
送料が掛かるので、他のもの買うときついでに注文するのが良かろう。
234 :
774ワット発電中さん :2007/02/01(木) 05:49:18 ID:Bl6DR1I8
SDホストコントローラで、もらいらのお薦め物、あるかい?今は、利己ーをつかっているが、誠子ーもすてがたいかなと。
俺はラジオデパート1階のコネクタ屋さんで買った
236 :
774ワット発電中さん :2007/02/02(金) 18:26:36 ID:9/vTK32E
SDカードのファームウェアをread/writeするにはどうすればいいのでしょう? A-DATAのSpeedy SD 2GBです。 ファームウェアにバグがあるので書き換えたいです。 書き換え機能はサポートしています。
ファームウェアって配布されてんの?
一体どういうバグがあるのかと
>>236 In System Programming 機能を使いたいということだね?
残念ながらファームのwrite機能はあるけどread機能はないよ。
よってメーカーがファームのアップデータを公開していない現状では
独自にファームを改造して書き込むことは元ネタがないため不可能。
>>239 A-DATAのカードにはロットにもよりますが、記録したファイルが読み出し不能
になるバグ・一部機器で正常に認識されないバグの存在が確認されています。
中国の掲示板を読んでみるとひどいことになってます。
ファームウェア配布されてないんじゃどうしようもねーな。 お前がファームウェア書ける鬼才なら別だが。 A-DATAのはバグじゃなくて仕様じゃねーの?
いくらファーム書き換えて修繕しても、そんなの怖くて使う気しないでしょうがw
アダタ=地雷 でしょ?昔から。 Sanとか東芝とか使えば……
245 :
236 :2007/02/04(日) 07:10:38 ID:vLarVg9D
皆様ありがとうござます。 やはり書ファームウェアのき換えは無理ですか。。。 実験用に大量に購入したもの全部が全部調子悪いんですよ。 241さんのとおりで読み出し不能ファイルが発生します。 2ギガで1枚1000円だったので文句は言えないのですが。。
もうやってるかもしれんが、メーカか代理店に相談するのが一般的では? ファームの書き換えが可能というのはメーカが公言してるの?
> 2ギガで1枚1000円 その時点で疑わないか、普通。 って、もう1Gで千円台なのな…
248 :
774ワット発電中さん :2007/02/05(月) 00:12:58 ID:Xou+KnpS
HDDは1Gで百円以下だからなぁ
251 :
774ワット発電中さん :2007/02/07(水) 19:49:22 ID:EEuJrTsD
age
上のほうでフロッピーフォーマットがどうのって言ってる人がいるけど、 そもそもPC側で読み取るときにちゃんと物理ドライブ単位で読み込んでるのか?? 論理ドライブ(C:とかD:とか)単位だと、セクタ番号がオフセットされてるから セクタ0がBPBになって当然なんだが…。 SDは基本的にすべてハードディスクフォーマットだぞ。
>SDは基本的にすべてハードディスクフォーマットだぞ。 基本的に、ですよね。 MBRがおかしくなったSDをWindows 2000でフォーマットしたら フロッピーディスクフォーマットになることがありますよ。 XPだとどうなるかわかりませんが。 >そもそもPC側で読み取るときにちゃんと物理ドライブ単位で読み込んでるのか?? マイコンに接続したSDでセクタ0のダンプをしてますので、 そういう間違いはしてません。
KingStone というメーカーの SD カードがデジカメに入れると 「このカードは使用出来ません」 というメッセージが出たので、 PC で見てみると普通に読める。 フォーマットすると直るかなと思ってフォーマットしてみるも最後に 「このメディアには書き込み出来ません」 みたいなメッセージが出てフォーマット不能、プロテクトノッチも lock にはなって無いのですが。 スレ違いだと思いますが、 SD に詳しい方が多いので考えられる原因が有りましたらアドバイス御願いします。
デジカメが対応していない容量のSDカード使ってないか?
sdcard.orgで配布しているフォーマットツールでもだめ?
>>255 返答有難う御座います。
友達が知り合いからプリントを頼まれて、プリンタがおかしくてプリント出来なくて自分にプリントを御願いして来た
という経緯でした。 で、自分がプリントした後にプリント&メディアを返したら
「メディアが使用出来無い」
というメッセージが出て使えなく成った! 弁償しろ!! とか
「別のカードはちゃんと使えるからお前が壊したんだろう」
みたいな事を言われて。。。 で、もしかするとプロテクトノッチみたいな物理的な書込み禁止スイッチの他にソフ
トウエア的(どっかのビットを立てるとか)に書込み禁止にするフラグがあるのかと思いまして。
友達の頼みでやりましたが、友達は「俺は知らん、当人同士やってくれ」って感じでして・・・
書き込み禁止フラグみたいのが、プロテクトノッチのような物理的な仕組みではなくソフトウエア的に bug ったのかな
とお思いまして・・
連続すいません。
>>256 >sdcard.orgで
明日試してみます、有難う御座います。
259 :
774ワット発電中さん :2007/03/05(月) 14:14:16 ID:9P6skHoU
>>257 SDは突然壊れることもあるよ、メーカーどこ?
あとフォーマット間違ってない?
260 :
774ワット発電中さん :2007/03/05(月) 14:16:48 ID:9P6skHoU
SDは落とすとすぐ壊れるからな。 こないだ落としたのを拾おうとして椅子をバックさせたら…
落としたくらいでは滅多に壊れないが、落とした後に椅子で踏めばたいてい壊れるよな
SDは落とすとすぐ壊れるからな。 こないだ落としたのを拾おうとして机を動かしたら…
女は落とすとすぐ壊れるからな。 こないだ落としたのを調教しようとして股を動かしたら…
湯呑みは落とすとすぐ壊れるからな。 こないだ落としたのを拾おうとしてちゃぶ台を傾けたら…
ガラスのコップも落とすとすぐ壊れるからな ほら、おそろいの苺の・・・
sdhcにトライした香具師はいるかい?
今日、同じMiniSDを何枚か買ってきたら、CIDの内容が全部同じだった orz
シリアル番号まで全部同じだったのか?
シリアル番号?あんなもの飾りですよ
SH2に実装できるコントローラーでいいのないかなぁー!
SCIで制御できる。
H8でならSCIで同期にしてやって LSBファーストでやってやれば DMAもできるだがナ
いい加減SDHCの仕様は公開されないのかね?
自由に使えるレベルの仕様が(SDのときのように)公開(漏洩)されないかな、ということでしょ
それって、ずいぶん前から出ていた気がする…
SDHCの見分け方、使い方が 記載されているけれど... 試せるカードが無い
280 :
774ワット発電中さん :2007/04/17(火) 23:42:23 ID:bTH6z4Jo
今ではどちらが入手困難か微妙なとこだけどなw
>>282 俺もFDCで読むのかと思った。w
SDコネクタが手に入りにくい時代ならともかくって感じだな。
>284 5インチのはともかく、3.5インチFDDはWindowsXPやVistaの 付け合わせとしてメジャーかと。 FlashPathって、XPに対応しているのだな。 MMCやSD対応のFDSD-ADPもXP対応ドライバがあった。 さすがに、今更、Vista対応ドライバは出ないだろうなー。
>>284 それを使ったことがありますが、転送速度は非常に遅かったですよ。
フロッピードライブの転送速度に依存するから仕方がないのですが。
>287 50KB/s程だから、115kbpsでも10KB/s程度のRS232Cよりはだいぶマシ、って代物だからねぇ。 128MのSDカードをFPSD-ADPで読むには、40分ぐらいかかる計算になるな。 もっとも、FlashPathが発売された頃には、128MBのMMCなんて想像できなかったけど。 USBが流行り出すのは1998年ぐらいで、それまでは、 遅い232Cか、速いけど高くつくSCSI、まれにIEEE1284パラレルポート、だったな。
その時代にしてみればUSB1.1は十分高速だったんだな
290 :
774ワット発電中さん :2007/04/23(月) 21:06:51 ID:hf97PvFQ
SPIの転送レートってどれくらいなのでしょうか?
291 :
774ワット発電中さん :2007/04/29(日) 21:13:03 ID:fgMl6mc0
最近のSDは凄いな。
様々な環境で利用できる信頼性を備えたMICRODIA SDメモリカード
エントリーモデルからハイエンドモデルまで、全6種類発売!
MICRODIA SDメモリカードは、高温多湿もしくは低温乾燥した地域や季節、
雨天撮影や水中撮影など様々な環境で利用することができます。
SDスロットを採用した最新のデジタルカメラから、厳密な性能を要求されるハイエンド機器まで、幅広く対応し確実に性能を発揮いたします。
JIS保護等級8級相当の水中型の防水性能と防塵性能を備え、雨天撮影や水中撮影などでも安心して利用することができます。
また砂やホコリに強く、室内でも野外でも安心して利用することができます。
乾燥した地域や季節でも、安心して利用できるように静電気ショックによる静電破壊を防ぐ±15kV(気中放電)のESDを実施しています。
動作環境温度は−40℃〜85℃、動作環境湿度は 5%〜95%、厳しい環境下でも正確に動作いたします。
さらに衝撃に強く(耐振動:15G、耐衝撃:1000G)、1.5m落下テストもクリアしています。読書消去サイクルは10万回、
抜き差しサイクルは1万回以上、MTBF(平均故障間隔)は1,000,000時間という優れた製品寿命を誇ります。
http://www.links.co.jp/html/press2/microdia_sd.html
>291 ずらずら文句を並べて、凄そうに見せているけど、 >データの信頼性を高めるブロックマネージメント機能! >エラーを訂正ECC(Error Correction Code)機能! とかって、SDカードなら当たり前のことだよなー。 そんなことまでわざわざ書いて水増ししなくても、 水没しても大丈夫とかだけで十分に売りになるだろうに。 自作機器の記録装置に使ったら、機器が死亡しても媒体は生きてそうだ。 しかし、静電気には耐えても、うっかり12Vをかけたりすると死ぬのかな?
このスレもうすぐ2年なんだねえ。 2年で300前後、かつ落ちないってのもすごいもんがあるな
>>291 は、話題を振ってくれただけだと理解してるけど、
SDカードって普通はモールドされてるから、ほぼ防水仕様でしょ。
TECICやADATAなどのアジアカードと変わらんじゃんこれ。
いままで屋外データ記録などで、さまざまな銘柄を
さんざんぬらしたけど、一度も壊れたことないよ。
最後一文書き忘れ。 この業界って本当に、あほくさい誇大広告が多すぎるね。
ADTECの512MBminiSDカードは薄さのためか、裏が基板露出してる
H8/3069F基板にSDカードI/Fをつけたくて、ググって参考回路を調べてます。 シリアル通信チャネルを使ってSPIモードで制御する、という前提ですが、 3.3V --> 5V, 5V --> 3.3V のレベル変換の回路が分からず、止まっています。 5V --> 3.3V は、入力トレラント対応品でVcc=3.3Vを与えて 74xx125とか論理レベルが合うように通してやればよさそう、 というところまで進みました。 3.3V --> 5V の方は、方々で開示されている回路を見ると、 直結している例、5V->3.3Vと同じようにLVC125を通している例、など まちまちでどうしたらよいのか分からない状況です。 いまのところ、VHC07でVcc=3.3V、出力側pull-up 5Vで レベルシフトさせてやればいいのでは?、と考えていますが それではダメでしょうか? 組み込みソフトで10年以上メシ食ってますが、ハード設計の経験がなく、 ググって調べた情報を元に見よう見まねで検討しているので、 トンチンカンなことを書いているかもしれませんが、 お知恵を拝借できればと思います。 よろしくお願いします。
>>297 3.3V系の H 出力を、きちんと H として解釈してくれるような入力ならば変換不要。
つまりTTLレベルの入力ならば、たいていの場合変換不要。
>>297 3069FだとSCIモジュールでSPI通信が出来たっけ?
3069FのSCIはLSB先に固定だから、送受信時にビットの並べ替えが必要だな。 ま、256バイト程度のテーブルなら大したことないけど。 つか、ハード設計の経験がないのによくファーム書けたな(w
>>297 3069はCMOSレベル入力なん?
そうだとするとレベル変換が必要だね。
07でも理屈はOKだけど、遅いから転送速度上げられないよ。
ACT125とかの方が吉。
302 :
774ワット発電中さん :2007/04/30(月) 11:43:51 ID:CWFhAXSB
>>297 信号の振幅の大小だけを考えていてはダメだよ。
異電圧信号のI/Fは、次の2つを検討する必要がある。
1. 出力側の電圧が、入力側の許容電圧値内にあるか。(基本)
素子が壊れないように考慮する項目な。
電源電圧が5Vの素子の場合、入力として取り得る電圧範囲は0〜5V。
1Vでも3Vでも4Vでも受け入れられる = 壊れない
2. 受け側がちゃんとHとLを認識できるか
あんたの試行には、この部分が入ってないんだ。
H8/3069がHあるいはLと感じる電圧はいくつだ?
これはデータシートの「電気的仕様」を見て調べるワケだ。
Hと感じる電圧=2.4V位「以上」
Lと感じる電圧=0.8V位「以下」
になっていないか?
上記2点を総合すると、どういう事がわかるかと言うと、
「H8/3069がH/Lを感じる電圧は、0.8以下←→2.4V以上あれば良し。
でも、最大は5Vまで受け入れられるよ」ということだ。
あなたが使用したい「0←→3.3V」はこのこの範囲にはいっていないか?
入ってるでしょ。だったら、そのままつないでOK、ということなんだ。
また、0←→5Vの信号でも大丈夫何ら問題ない。
>>298 は、ズバリそういうことを言っているんだな。
>>301 の「3069はCMOSレベル入力なん?」も、
ワザとそういうことを言っているんだ。
要は、データシートを良く読もうということね。
303 :
774ワット発電中さん :2007/04/30(月) 11:53:36 ID:CWFhAXSB
追加 5V出力→3.3V入力はどうしたらよいか 電源電圧3.3Vの素子は、 ・3.3Vまでの信号しか許容できない ・H/Lを感じる電圧は、0〜3.3Vの間にある ということは、5Vを3.3Vに落とせば良い、くらいの想像は付くかな? レベル変換ICを使う、入力トレラントな素子を使うなど、ICによって 変換してもらうのもありだが、単に抵抗で分圧するのはダメなのか? 0−5V素子出力−−−R1−+−−−0-3.3V入力素子 | R2 | 0−5V素子GND−−−−−+−−−0-3.3V入力素子GND R1=2.2K、R2=3.3Kでどう? 簡単でしょ?
使いどころ次第じゃないの? スタティックにON/OFFだけだったらいいけど、 高速スイッチングには向かないだろう。 おいらはLVC245とかLVTH245, LVTH162245とか
こうだろ 0−5V素子出力−−−R1−+−−−0-3.3V入力素子 | R2 | 0−5V素子GND−−−−−+−−−0-3.3V入力素子GND
スマソ 0−5V素子出力−−−R1−+−−−0-3.3V入力素子 | R2 | 0−5V素子GND−−−−−+−−−0-3.3V入力素子GND
307 :
774ワット発電中さん :2007/04/30(月) 13:15:55 ID:CWFhAXSB
>>306 おみゃーさん、何がちがうの?
よーわからんがや。
R1にパラにCを入れて、3.3V側に付く入力容量をキャンセルしてやると速くなる。
309 :
774ワット発電中さん :2007/04/30(月) 13:59:51 ID:CWFhAXSB
スピードアップコンデンサね。
つぅか,よくわからんなら 秋月でVHC244でも買って つければいいんじゃね? 3069のSCIでMSBfirstのSPIもどきはできるけど, 同期クロックが出るときに立下りで出るから, SD/MMCカードのモノによってはうまく動かんから注意だ
そか、クロックは正極性パルスでないとダメなんだね。 ならインバータを噛まして…あ、こんどは位相がズレるな。ダメじゃん(w
速いCPUを選んでソフトSPIしちゃうのが柔軟でよろしい
速いCPUならフルスペックのSPI付いてないか? つか、マトモなSPIの付いてるPICとかAVRを使った方がいいカモ。
315 :
774ワット発電中さん :2007/05/02(水) 13:07:14 ID:ITYN3W7e
>>312 ゲート1個分の遅れがあっても、クロックならいいんじゃないの
データ側はダメだけど。
312はSPIのモードのことを言ってるのだろう。
どっかで、HDDのかわりにフラッシュかSDかなにか積んだPC出すとか、言ってなかったっけ? つーか、8GB*8とかをHDD代わりに使ってる人とかいないの?
>>318 そんなこと無いよ。
交換機や工作機にはシリコンディスクって使われているし。
(ま、SDより高信頼度のフラッシュチップ使ってるがな)
>>318 全速で全領域を書き換えるようなアプリケーションでもないかぎり大丈夫
製品化されてる?
SDを何連装かしてIDE(ATA)でつなぐアダプタみたいなのは 聞いたことがある。
326 :
774ワット発電中さん :2007/06/06(水) 23:38:27 ID:LFxfX+94
お/ ま/ ん / こ /女/ / /学 /院 /
自作ハードのSDHC対応例は既にたくさんある。
余っている容量の少ない 例えば64MBとかのSDを10枚くらいまとめて 1枚のSDとして認識するカードリーダー ないの〜?
4枚まとめてIDEにするやつでRAIDを組む。
週に4枚ずつ買い換える財力があればね
買うときに5年保証つければいいじゃん
333 :
774ワット発電中さん :2007/06/23(土) 22:32:26 ID:B6C6rDpZ
>>329 仮にあっても、今日日の世の中じゃ、
そのカードリーダーの値段で2GのSDカードを1枚買えると思う。
ころがっていた8MBのやつは、「フロッピー代わりだから返さなくて良い」と言って渡してやった。 相手は喜んでいたが、こっちは不要品の整理のつもりだった。
フロッピーの約5倍だからなw
すみません。 512MバイトのSDにSPIモードで512バイトのセクタ書き込みしたら、何10m秒っていう感じで 時間がかかります。高速SDと書かれていたものなのに。SPIだとこんなものなのでしょうか。
そんなもんです。はい
1セクタというより、一回何十ミリ秒って感じだね。 スピードを稼ぎたかったら、マルチセクタライトを使って消去ブロック単位で書け。
340 :
774ワット発電中さん :2007/06/30(土) 00:03:04 ID:ij/rMXER
容量大きいほうが、書き込みは遅い
MLSだとかなり遅いね。
MLC
343 :
774ワット発電中さん :2007/07/05(木) 12:56:23 ID:XnnMJOQr
ここは SD カードのスレだけど、形が似てるんで…。 MMCPlus カードって端子が少ない MMC と同様に読書きできないのでしょうか? 雑誌(インターフェース)とか見ながら SPI モードで実験してるんですが、設定 コマンドを送信してもカードが返事をしなかったりするんです…。ダミークロッ クの使い方が悪いとかでしょうか?
>>343 SPIのクロックいくつくらいでやってる?
落としてもだめか?
345 :
343 :2007/07/05(木) 14:48:13 ID:XnnMJOQr
>>344 さん、早速ありがとうごさいます。
クロックは 400kHz 以下なら OK の筈ですよね。
CPU のクロックが 20MHz で 128 分周設定なので 156.25kHz です。
CPU の都合でこれ以下の周波数にはできないんですよ。
128MのMMCmobile (MMC+でハーフサイズ) なら普通に使えてるけど。 4G以上のMMCはどうなってるのか分からん。
347 :
774ワット発電中さん :2007/07/05(木) 23:05:48 ID:KImk2M+q
あなたたちはSDカードに何記録してるのですか。
348 :
774ワット発電中さん :2007/07/06(金) 00:28:51 ID:04y4Wmbh
データを記録してる
>>349 SDカードはフラッシュだから電子で記録してるんじゃね?
>>351 多値記録メモリもあるぞ○芝とかそっちじゃね?
もう4値セルのものがあってもよさそうだけど。
しかし、多値セルも1セル複数ビットで結局1と0な罠
MMCplus全端子を引き出せるソケットもしくはコネクタ基板紹介きぼん サンハヤトのはSDのみだよね? つか淀に売ってネーシMMCplusのメディア
356 :
774ワット発電中さん :2007/07/08(日) 08:37:13 ID:eEPoCUEH
S○NYの携帯の不良のおかげで ただで配りまくってるみたいだね
xDの仕様って公開されてないんだっけ? 中身は生のNAND Flashのように見えるが…
生NANDで4つくらいバージョンがあるんだっけ
360 :
電電仕様 :2007/07/09(月) 23:03:16 ID:7hhnW8L5
>>360 試したわけじゃないけど、サンハヤトのアダプタ基板使うか、アクロバティックな半田付け
しない限り無理じゃねーかな。
コネクタのピッチくらい自分で調べろってとこだな
366 :
774ワット発電中さん :2007/08/23(木) 01:05:59 ID:ZMksFhy6
367 :
774ワット発電中さん :2007/08/24(金) 00:41:33 ID:hXnBKnza
>>366 アダルトサイトに飛ばされました!
要注意
>>367 アダルト広告を自分でクリックしたんじゃないの?
369 :
774ワット発電中さん :2007/08/24(金) 09:42:55 ID:d+4L/GVJ
371 :
774ワット発電中さん :2007/09/16(日) 15:22:36 ID:RiZDljTj
ヒロセのDM1Aコネクタに東芝のminiSDアダプタ、ライトプロテクトで挿入すると、WP、カード検出のcommonとグランドが短絡する という話。 やられたよ・・・
ケースに金属部のあるSDアダプタは動作保証外。
ライトプロテクトしてないと、検出用のツメにテンションがかかって、 金属部分が微妙に浮くからショートしない、というオチだったよ。
374 :
おっさん :2007/09/20(木) 08:52:31 ID:2pYLn71C
船長! TRANSCEND の80倍速ミニ、マイクロSDは速いですっ。 これなら512MB品でも安心、512バイトのwritef()でサンディスクの 32MBSDが26ms、TRANSCEND は12msでブッチギリ。 ハギワラシスコムの uSD 256MB がな、なんと、308ms。 ちなみに SH2 7144-50MHz + 512MB SRAM SCI2-6MHz で駆動してFAT16を構築。 計測は、データー、DIRのファイルレングスの書き換え時間、FATテーブル書 き換えが無い場合。
…データブロック転送後のビジー時間で計ってよ。
まだ、ビジーが解除されないようですね。
Error!! time out
古い話を掘り返してみる。
>>10 >SPIモードであれば、ワンチップでも読み書き可能です。
>ただ、セクタサイズのバッファを用意できるかが問題かなぁ。
>>11 >CMD16でブロックサイズを小さくすれば大丈夫。
>内蔵RAM512Byteのchip使ってバッファ128Byteでやったことあるよ。
SanDiskのSDCard Product Manual v1.9には
The default block length is as specified in the CSD (512 bytes).
A set block length of less than 512 bytes will cause a write error.
The only valid write set block length is 512 bytes.
と書いてあって、ブロックサイズ変更時は読み込みのみ可能で書き込みはできないことに
なってるんだが、SanDisk以外のSDCardなら書き込みも可能なんだろうか。
読み込み時のブロックサイズなんか、わざわざ小さく変えなくても全然困らないから、
>>11 の意図は書き込み時のブロックサイズが小さくできるという意味だと思いたいんだが。
実験して結果を晒すべし
380 :
774ワット発電中さん :2008/01/07(月) 18:34:17 ID:UzdMRtU7
>>380 情報dクス。
やはり書き込みは512バイト単位になるんだね。
382 :
774ワット発電中さん :2008/01/12(土) 12:05:08 ID:DsGcXUeF
SDカードを使ってみたいと思い秋月のアダプタをマイコンに接続しましたがうまく応答してくれません。 オシロでマイコンのGNDとSDCの電源を見てみたら3.3vを中心に0.5v位の振幅で50Mhzで波立っていました。 これはいわゆる電源の発振というものでしょうか? 対策はどうしたらいいのでしょうか? ちなみにSDCと電源は10cm位はなれてます。 SDCから少し離れたところ(5cm位)に47uFの電解コンデンサ、電源ピンに0.1uFのパスコンはちゃんと付けてます。 よろしくおねがいします。
383 :
382 :2008/01/12(土) 12:13:02 ID:DsGcXUeF
すいません。電源はマイコン基板のレギュレータからとってます。
その質問はSDカードのスレに相応しいと思いますか?
SDカードを使ってみたいと思い、秋月の近所でSDカードを買ってきましたが、帰りに食べたラーメンがとても不味かったです。 スープをちょっとすすってみましたが、ぬるくてしかもしょっぱいのです。 対策はどうしたらいいでしょうか? ちなみに、紅しょうがは最初から入れてます。 よろしくおねがいします。
どうせCQ7144でも使ってるんだろ… 紅ショウガもたくさん載せりゃあいいってもんじゃないんだがな
>>382 発振してたらマイコンも動かんと思うが、当然行ったであろうその確認した結果を
なんで書かないんだろう。
>>384 まぁいいじゃないか。SDカード使ってるし、流れがそっちへいくかもしれないし。
>>385 対策は明快でしょ。
「おい、オヤジ。不味いから金返せ。」
それにしても安くなったもんだ。チラシ特価品だと、1000円/1GBぐらい。
Windowsにかまけだしたころには、HDDが10000円/1GBで「安!」と思ったもんだ。
ネギが足りないんだよ。 そうそう、MicroSDは基板に直半田が基本な。
いまではアマゾンで東芝の2GBクラス4が1680円、恐ろしい時代になったもんだ。
>SDCから少し離れたところ(5cm位)に47uFの電解コンデンサ、電源ピンに0.1uFのパスコンはちゃんと付けてます。 >よろしくおねがいします。 遠すぎだよ。 SDCコネクタのVCC直下につけなよ。 あと、電源電圧の波形観測をするなら、オシロのプローブとGNDポイントも SDCコネクタ直下だよ。 それでも0.5Vp-pのリプルが出ているなら、SDCへの電源に直列にインダクタ をいれてL/Cフィルタかませな。
>電源ピンに0.1uF なら十分近いと思うぞ まあ、四の五の言わず電源回路を作り直すこった。
黙れ糞野郎が
不具合→512MのSDではアクセスできる領域に1Gではアクセスできなかった(SPI) 原因→スタートデータブロックトークンを十分待っていなかった 解決策→0xFF送信ループを長くした 最近犯したミスです。 アクセスするアドレスが深い分だけ、準備に時間がかかるようです。 いわれてみると当たり前って感じがしますね。。(=_=; よければ参考にしてください。。
規定のアクセスタイムを守らないからそうなる。 トラブって初めて知ることって結構多いよな。
Read待ち時間はTypicalで100mSec、 Time-outは10倍の1Secとなっていますね。 うーん、相当長いですね
397 :
396 :2008/01/14(月) 21:58:51 ID:5dtqgTOb
すいません、間違いました。 Time-Outが100mSecでした TypicalはTAAC+NSACです
制御みたいなのには使えないねぇ…。 ゲームとか音楽ならmsぐらいどうでもいいけど…。 …P/ECE思い出すわw 知恵はないがPICかSXシリーズで擬似システム組みてぇ…w 当時よりも早くなるんだろうなぁ、多分…。
399 :
774ワット発電中さん :2008/06/01(日) 21:01:58 ID:yVlraL/8
8ピンDIPなSDカードきぼんぬ。
401 :
774ワット発電中さん :2008/06/02(月) 00:29:46 ID:/FQXvFcz
是非、SDカードをいじったことのある方々からのご助言がいただきたいことがあります。 私はここで話題にされる『SDカードを利用する』という話とは逆(?)である、 『SDカードの機器を利用する』ということを行いたいと考え、調べています。 具体的には、デジカメにあたかもSDカードにアクセスしているように見せかけて、 撮影と同時に保存されいく動画をPC側で取得したいです。 パソコン側にSDカードのエミュレータを用意して(これは大変かもしれませんが)、 それを横から別のプロセスが盗み見るということが必要だろうと考えています。 しかし、どのようなインターフェースを作ると仮想SDカードを実現できるのかが、 知識不足により思い付くことが出来ていません。 他の機器を使ったほうが遥かに簡単であることは明白ですが、 サイズ、値段、諸性能などの理由により、可能であればデジカメを使いたいと考え、 SDカードに流れてくるデータを抜き出す方法はないものかと考えています。 長文失礼致しました。ご意見をいただければ幸いです。
>>401 電気的に実物のSDカード接続、その状態でピンの信号をFPGAで横取りして記録。
それをPCのソフトウェアで解析というような手順が良いかな。
そんな面倒やるより Eye-Fi とか使うのはどう?
403 :
401 :2008/06/02(月) 01:38:18 ID:/FQXvFcz
>>402 ご意見ありがとうございます。
SDカード部分はエミュレートではなく実体があったほうが確かに楽ですね。
FPGAを使って…というのを色々と想定してみたのですが、結局はPCに送る部分が別途必要なので、
ここはEZUSBを使ってクロック立下りごとの全ピン情報を送るのが出来るのでは…と考えました。
EZUSBを使う、SDカードの規格を把握、MotionJPEGの規格を把握、必要なことは山積していますが。
Eye-Fiは画像しか送れないのと、無線なので動画を送るほど早くないのが問題でして。。。orz
実物を使うことを考えていなかったので、自分の力の範囲で可能な気分になりました!
ありがとうございます。
もし、『コレのほうが簡単』ってのがありましたら、もちろん是非ともアイディアを頂きたいです。
>>401 既に自動転送の無線LAN内蔵のSDメモリ売ってたような。
すまん、既出だった
自分で考えもせずにどこの誰でもわからぬ奴に言われたとおりやって 動いたとして、何が面白いのかねぇ〜
ヒントもらって突破口になるくらいなら良いが 丸写しは遺憾罠
しかもマルチだし
>>400 DIPはともかく、8pinSOPで高速SPI(クロック20MHzオーバーとか)対応な大容量フラッシュなら色々と存在する…
でも、ここ最近、一気にSPIフラッシュは一般的になってきたねぇ…。
IntelチップセットでBIOSインターフェイスにSPIが採用されてから
8pinDIPで4Mbit(512kbytes)なフラッシュが珍しく無くなった…。
空の1GBのSDに155MBの1つのファイルをコピーするのに、87秒くらいかかってます。 (ddコマンド(windows)で16MBのSDのイメージを作るのにも、10秒くらいかかってます。) データの通信は最大10MB/sのはずですが、この速度が殆ど出ないのは、 マルチプルブロックでダーっと書いていて間にビジーの時間があると考えるんじゃなく、 かなりの頻度でコマンドとレスポンスのやり取りも必要だからと考えるべきですか? だいぶ底辺な質問かもしれないが、FATのファイル作成・読み込みをあまり理解していないもので、 なんでこんなもんなのかなぁという疑問…。
PCのスペックが足りないだけでは
アダプタのスペックも足りてないオチとか
SDカードに高速にアクセスしたいんですが、SPIモードではなくて4ビットパラレルでアクセスするときの 仕様は公開されていないんでしょうか。(SDアソシエーションに入らないとダメなんでしょうか)
>>414 , 415
情報ありがとう。
さっそく Xilinx + MicroBlaze でチャレンジしてみます。
>>416 あと、具体的なコマンド発行順序などは Linux のソースコードも参考になる。
あまり資料の無い SDHC カードもサポートしている。
保守 age
ネイティブモードの自作記事は無いですか?
SDIFを持ってるマイコン(LPCとかSHとか)なら普通に使えるよ。 アプリケーションノートを見ながらやったらすんなりいった。
松下製 MN5772, 5773, 5774コントローラ のデータシートは手に入らないですか?
松下製 MN5772, 5773, 5774コントローラ のデータシートは手に入らないですか?
大事なことなので2回言いました。
SPIでもACMD41で初期化するのはダメっぽい。
>>425 16MBのでもokだったけど。
ただ、コマンドの前に必ずダミー(0xff)を入れる必要があった。
ネット上に流れる情報からすると、SPIならライセンス不要というのが多いけど、 どれも伝言ゲームで信憑性は皆無だな。 SDAのシンプル版資料でも、「これに書かれていることをインプリメントするときは ライセンスが必要になる」と言っているだけで、その動作モード別の扱いは無い。 だから、SPIでもSDを意識した制御(ACMD41で初期化するとか)の場合はグレーってことだな。 SDAが「SPIならよし」と明文化していない以上、将来「SPIもダメだよ〜ん」となったら一網打尽だ。 まぁ、ダメとしても黙ってりゃ分からないけど(w ウチの製品なんか堂々と4bitモード使っているし(wwwwww
はっきり確認したわけじゃないが、SPIはSDじゃなくてMMCの規格のはず。 つまりMMC互換モード。少なくてもSDAが金を請求できる立場ではないはず。
ライセンスの要求はSPI云々でなくSDカードの利用そのものに対して 主張されていて、これは正当なことなんですけどね。 なので、SPIでMMCコマンドだけ使い、SD対応を謳わない分には白。 SPIにもSD独自コマンドが規定されていて、それを使わないとSDHCは 使えませんけど。 逆に言えば、対応カードは「MMCまたは互換品」とか言ってSD対応を 謳っていなければ、コッソリSPIでSD用コマンドを使おうとSDモードで 4ビット転送しようと白ということになります。
432 :
774ワット発電中さん :2009/01/08(木) 18:44:56 ID:7vdizdf0
Windows98やMeのときはFAT32で32GBとかの制限なかったのにな 2000,Xp,Vistaじゃ大容量のFAT32がフォーマットできなくなっちまった。 NTFSのほうが信頼性高いとか言われても、DOSから読めたほうが 便利なのに。 HDD死にかけだとWindowsからアクセス→フリーズ→再起動だけど DOSからだとアクセス→強制停止→再度アクセス 今でも1ファイル4GBまでの制限我慢できるところではFAT32使ってる 1TBのHDDもFAT32ダシ。Fat32Formatterとかいうフリーな FAT32フォーマット ソフトもあるし
2TBってことは、32bitLBAのままで論理フォーマットだけ変わったってこと?
>>433 単にSDHCカードの転送手順で転送できる物理アドレスに伴う制限だった筈
>>32 G
古いWindowsCE3辺りのでの上限でもある>32G
SDHCではない、只のSDカードでは2Gが上限。
ただし、予約ビットだかなんだかを使うと4Gまで逝ける…が、SDHCの4Gとは互換性が無くなる。
そして、その手法で拡張したSD4Gが存在していて、SDHC4Gに混ざって売られている(wwwwww
>>435 予約ビットを使った分けじゃない。
クラスタサイズを大きくしただけ。
いわゆるFAT16X。
fat64
太りすぎ
体脂肪率64%ってか? よく生きてるな。
FAT16Xってクラスタじゃなくてパーテーションの種類じゃね?
PSoC使うと何も考えずに使えてしまう
PSoCが主流になるかどうかはしらないが、未来の開発スタイルはあれだよな。 図的に構成を設計して、コンポーネントのAPI叩いて完成。
自分で回路を作って、SPIモードでの通信すべくプログラムを書いています。 はじめにCMD0を入れると0x01が返ってくるのですが、その後にCMD1を入れても 0x00が返ってきません>< 原因がわからぬぇ〜。。。
ダミークロックを流してないとか まー、せめてソースくらい出さないとこういう質問の回答は無理でしょ
445 :
443 :2009/01/17(土) 01:12:50 ID:CHENx5Lh
>444 ダミークロックは出してますよ^^ SDカードによって、ちゃんとできるものもあるんですよ。 これって、ソースの問題なんですかね?
>SDカードによって、ちゃんとできるものもあるんですよ。 そういうことは最初に書いておけ >これって、ソースの問題なんですかね? んなこと、知るかよ こっちはCMD0で応答があってCMD1で応答がないって情報しかないんだ お前が天才プログラマなのか、天才回路設計者なのか、日本一のハンダ付け職人なのか 生まれて初めてプログラミングや回路設計をやった坊やなのかも分からないんだよ ただ、情報を小出しにしてそんなの当たり前でしょ?的な書込みをしていることから察すると 天才プログラマより何も知らない坊やに近い気がするな カードによって動いたり動かなかったりだと ・回路がクソ ・パターンがクソ ・ハンダ付けがクソ ・選んだ部品がクソ ・クロック高杉 ・用意したSDカードが軒並み不良品だった とかがあるかもね
>>445 俺の経験ではダミークロックがなくても読めるSDカードもあったな。
CMD0の後にCMD1を入れたということであれば、0x00が返らないのが普通でしょ。
0x00が返るまでCMD1を繰り返さなくてはならないはず。
1.質問している
2.おちょくっている
3.ただ聞いて欲しいだけ
3じゃないのかなぁ。
>>447 さん
SDカードによってはほんとその辺色々ありますね。
SDカードによってはCMD1をサポートしないのもある。
俺もSPIモードに移行できないSDが手元に一枚だけある
CMD9でカードの対応速度を調べるまでは、最低限のクロック100KHzまでしか保障されない。 まあ、どのカードリーダーでも読み書き出来るかを調べる方が先だろう。
トラ技なんかの記事を参考に作ってうまく動かなくて、バグとかもなさそうだったら 元の規格書をあたるべきだね 記事を書いてる人が勘違いしてるとか、自分の場合はこうだったってだけなのに これが正解だと言わんばかりに書てあるとかよくあるからね
何にしても一次資料を辿るのは大切だね。 特に参照元を明記していない記事はかなり怪しい。
でも、既に規格書はアソシエーションのメンバでないと手に入らないんだよね。 前はMMCの規格書から適当にあたりを付けたけど、MMCも今は駄目だし。
MMCの規格はJEDECのサイトでダウンロードできるようだ。
SDカードの規格書はどういうわけかweb上にころがってる このスレの上の方を見てみると分かる
> SDカードの規格書はどういうわけかweb上にころがってる という紹介を受けてダウンロードしたその翌日には消えてた
MMCはJEDEC会員じゃないとダメみたいだった。 SDなら今も普通にDLできるぞ。 tp://www.sdcard.org/developers/tech/sdcard/pls/
>459 メアドと名前の登録だけでIDとれたよ。 Free Standards のダウンはできた。 >460 元々仕様書が有料だっただけだから、もう自由でしょう。 カードを製造するのは別にして。
仕様書は有料だったけど、製品の仕様として無料で公開されていたりしたしなぁ
SPIモードで512byte読み込んだ時に 最後の 55 AAは返信してくれるのですが その直前のデータが00で返ってきてしまいます。 「.... 00 00 55 AA」と返ってくる。 直接SDの内容を読むと 「.... CB D8 55 AA」となっており 読み込めない原因が分かりません。だれか教えてー!
>>464 SDカードをスキャンしても
「55 AA」は1ヶ所しか出てきません。
ちなみに読み込むときは
「01010001 00000000 00000000 00000000 00000000 00000001」
で読み込んでいるのですが。。。
55 AAって、パーティションテーブルと論理ディスクの先頭と最低2箇所あるんじゃなかったっけ?
467 :
463 :2009/06/21(日) 21:30:10 ID:pU78H/kM
できました。 読み込んでいたのがMBRだったみたいです。 PCで読み込んだときのソフトがBPBを読み込んでいたので勘違いしていました。
468 :
774ワット発電中さん :2009/06/27(土) 20:21:51 ID:FnQcHFAk
http://www.robotsfx.com/robot/robohow/RoboHow91/RoboHow91.html ここを参考にやってるんですが、うまくいかないので誰か教えてください。
microSDから送信されたレスポンスバイトなどは、送信受信でバイトごとのタイミングはズレないのでしょうか?
つまりmicroSDが'ABCD EFGH'というビット列のレスポンスを返したとすると、
[1]1111 ABCD [2]EFGH 1111というふうに、バイトをまたがって受信されることがあるのでしょうか?
このページではまるで送信された1バイトは受信側でズレることがないかのような図が書かれておりまして、
うまく同期が取れているものとずっと思っていたのですが、どうなのでしょう?よろしくお願いします。
まずはそこで訊けよ(w
470 :
774ワット発電中さん :2009/06/27(土) 20:40:10 ID:7jGaEQfK
基本的に金土日はスルーカ検定日だと思ってる
そんな冷たいこと言わないで教えてほしいです。(ノД`)
考えてみれば、いっせーのせで自分のシフトレジスタの内容と、 相手のシフトレジスタの内容を入れ替えてるんですから、ずれるはずはないですよね。 失礼しました。
>>468 えーと・・・
ずれません、としか答えようがないです
ずれるとしたら、ずれるようにコードが書かかれてるしかないかと
CLKにノイズ乗った場合などbitズレる可能性はあるけど CS信号のタイミングでズレは解消されるんじゃね?
だめだ、あり得ないレスポンスコードが帰ってくるorz
SPIの設定がSPI Mode0になってないんじゃね? CKP=0,CKE=1になってるのを確認。 あとは、デジタルオシロで入出力タイミングを当たってみる。 または、SPIを使わないで汎用ポート直叩きも試してみる。
それでモード0なの?
>>477 モード3でも動作するけど...
何を送信した時のレスポンスなの?
コマンド0?
480 :
774ワット発電中さん :2009/06/28(日) 10:59:16 ID:Z+iQ2JQY
>>479 はい、初期化までは完了しました。
CMD0では0x01、CMD1,CMD55,CMD41は正常に0x00を受け取りました。
読み込み時にCMD17を送信して、レスポンスに0x00を受け取りました。
しかしその後、0xFEを待つために待っていると何故か0x80がやってきます・・・
訂正。 送っている初期化はCMD0,ACMD41(CMD55とCMD41),CMD16です。 あと、MMCの場合CMD1を何度も送ってレスポンスを確かめることになってますが、 SDCの場合、CMD55,CMD41も繰り返し送り、CMD41のレスポンスを調べる形でよいのでしょうか?
483 :
774ワット発電中さん :2009/06/28(日) 12:12:54 ID:CHFcOnDt
ちなみに、0x80が開始コードだったとして、その後ひたすら読み続けると何が帰ってくるかを調べてみました。 0000: 80 0010:00 00 00 00 00 00 03 FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0020:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0030:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0040:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0050:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0060:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0070:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0080:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 0090:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 00A0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 00B0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 00C0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 80 ・・・・・・・・・・・・・・・・ 00D0:00 00 00 00 00 00 03 FF FF 01 FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 00E0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 00F0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ・・・・・・・・・・・・・・・・ 何かに失敗してる・・
>>480 はい、CSをHIGHにしたときにダミークロックを送信しています。
SDOのTRISを入力にして、出力はしないようにしています。
LOWにしたときも念のため、1バイトクロックを送っています。
>>487 失礼しました、引数ですね。
0x00030000を読み込むことを目的に、
0000:51 00 03 00 00 01
を送っています。↑このコードは、コマンド送信直前のメモリをPICのEEPROMに焼いて、
それを読み取ったものですので、これを送っていることには間違いありません。
>>484 LOWにしたあと1バイトクロック送っちゃダメじゃないか?
ちょっと躓くとすぐにあきらめて,模範解答だけ先に得ようとするんだなぁ〜
連投ゴメン レスポンスを貰う時も
え?0xffを書いてるんじゃないの ・・って思ったら >SDOのTRISを入力にして、出力はしないようにしています。 これか・・
495 :
774ワット発電中さん :2009/06/28(日) 21:49:19 ID:CHFcOnDt
>>492 >>493 >>494 レスありがとうございます。
受信時やダミーバルス送信時も0xFFを送るようにしてみましたが、
そしたら今度は初期化(CMD00)で失敗し、
FFの列に続き、初めて返ってくるコードが0x01ではなく0xC0になってしまいました(泣)
>>492 こんな資料があるのですね、よく読みたいと思います・・・。
SPIのモードXXっていう数字はアテにならんから、ちゃんとタイミングチャートと データシート見て、一致するモードを選ぶようにね。
>受信時やダミーバルス送信時も0xFFを送るようにしてみましたが、 >そしたら今度は初期化(CMD00)で失敗し、 だとしたら,送受信の処理が間違ってる。たまたまCMD00なんかが うまくいってるようにみえてただけって可能性ありじゃね?
>>495 493です。
>FFの列に続き、初めて返ってくるコードが0x01ではなく0xC0になってしまいました(泣)
その0xc0は受信の何バイト目?D7が1の間はレスポンスを受信しつづけて最初にD7が
0になった時の値を見れば0x01になってない?
カードによるけれど80クロック?ぐらいは時間がかかるよ。PDFに応答時間maxが書いてある。
499 :
774ワット発電中さん :2009/06/29(月) 10:38:45 ID:CXtyDZC2
>>490 ソース読みました。
ところで、今も、このソースのままなのか、わかりませんが、
TRISCbits.TRISC7 = 1; // SDO 送信禁止
のように、受信のときや、ダミークロックで送信禁止とありますが、
1に設定すと、入力ポートになって、ピンの電圧が不安定になるのでは?
SPIでは入出力ピンが固定されているので、シリアルアウトピンは
出力のままでいいとおもうんだけど。
ところで、SDカードのDI、DOピンは10kかそれ以上で
プルアップされてるの?
↑前半 -------------------------------------------------------------------- 後半↓
501 :
774ワット発電中さん :2009/06/29(月) 23:04:29 ID:LGT/BxvE
>>497 >>498 >>499 こんばんは、レスありがとうございます。
プルアップの件、1Kでやっていたので10Kでやってみたところ、
CMD0で返ってくるレスポンスが0xC0から0x00になりました(泣)
それからいろいろ奮闘してますが未だにうまくいきません。未だに初期化さえ出来ません。
プログラムも最低限に、回路も最低限にしてみたのですがダメなのです・・・。
昨日まで74HC541を信号線に入れて、5V→3.3V変換していたのでそれを使わず、
全体を3.3V動作にしてみたのですが、結果は同じでした。(PICは正常に動作しています)
DO・DIはTRISで抑制しないようにしてます。ダミークロックはいつでも0xFFを送ってます。
電圧は3.3Vで安定しているはずです。ホスト側はPIC18F2550(20MHz)です。
PICマイコンは複数使ってやっていますし、SDカードはPCでセクター単位で読みとれるので、
いずれも壊れていることは無いと思います。ロジアナは持ってません、誰かください(泣)
回路図・プログラムを挙げます。誰か助けて下さい(ノД`)(ノД`)
http://toukatugiken.dip.jp/main2.txt http://toukatugiken.dip.jp/1.bmp
>>501 捨てアド晒してもらえたら
すっげー汚いソースだけど
以前テストで作った基本部分のソースあげるよ
>>501 ロジアナないならMPLAB SIMでPICから正しく信号でてるか見てみたら?
あとSDはちょっとしか触ったことないからわからんが、SPI非対応のSDも手持ちで1枚だけあった。
>>502 >>503 ご親切にありがとうございます。
明日、クロックや信号を直に生成してポートから送ることを試してみたいと思います。
ちなみにMPLAB SIMでは、通信完了を待つ
while(PIR1bits.SSPIF == 0);で割り込みが来ずに、
無限ループになってしまいます。割り込みは全て有効にしてるはずなんだが・・・。
もしかしたらこの辺の設定がおかしい?続きはまた明日報告します。
505 :
502 :2009/06/30(火) 01:27:48 ID:eu/kVUW9
>>504 昔のソースからエッセンスだけ抜き取った
素人なのでセオリーに則しているかは知らないけど動作は確認してる
CSだけ書き換えて試してくれ
#define SPI_INTERRUPT_FLAG PIR1bits.SSPIF
#define SPI_CS LATCbits.LATC0
void mySPIInit(void)
{
OpenSPI(SPI_FOSC_4, MODE_00, SMPEND);
}
void mySPIWrite(unsigned char data)
{
unsigned char tmp;
tmp = SPIBUF;
SPI_INTERRUPT_FLAG = 0;
SPIBUF = data; // write byte to SSP1BUF register
while( !SPI_INTERRUPT_FLAG ); // wait until bus cycle complete
tmp = SPIBUF; // Clear the SPIBUF
}
unsigned char mySPIRead(void)
{
unsigned char tmp;
tmp = SPIBUF;
SPI_INTERRUPT_FLAG = 0;
SPIBUF = 0xFF;
while(!SPI_INTERRUPT_FLAG);
return SPIBUF;
}
void MMCReset(void) //SPIモードへの移行
{
unsigned char ret;
SPI_CS = HIGH;
for(ret=0;ret<10;ret++)mySPIWrite(0xff);//ダミーの80クロック
SPI_CS = LOW;
mySPIWrite(0x40);
mySPIWrite(0x00);
mySPIWrite(0x00);
mySPIWrite(0x00);
mySPIWrite(0x00);
mySPIWrite(0x95);
while((ret=mySPIRead())!=0x01);
do{
SPI_CS = HIGH;
mySPIWrite(0xff);
SPI_CS = LOW;
ret=MMCcommand(1,0);
}while(ret != 0x00);
SPI_CS = HIGH;
}
そこまで甘やかさなくても良いんじゃねぇの?
507 :
natu :2009/06/30(火) 09:53:02 ID:d1hCoZqr
>>504 ADCON1でポートをデジタルI/Oにするか、MMC_SELECTをLATB2で
アクセスすれば動作しませんか?
508 :
774ワット発電中さん :2009/06/30(火) 10:26:05 ID:QKZyXf13
>>504 フラグ監視で待つんだから割り込みは有効にしちゃ駄目だよ
割り込み有効にしたらありもしない割り込みベクタに飛んで戻ってこなくなるんじゃないか
毎晩お世話になっております。
>>501 >>504 などでうまく行かない者です。
いろいろありがとうございます。レスいただいたことは全て試していますが、
未だ状況はかわりません。
いまのところ原因はPICの設定にあるとにらんでいます。
というのも、ついさっき解ったことに、SDカードを一切接続せず、
DINをVccに接続してもSSPBUFには0x00が受信されていることがわかりました。
訂正: DINはDOUTの間違いです、DOUTに何もつながず、 プルアップ抵抗を介してVccをつながれております。
プルアップなのに0x00だと?
Port初期化で ADCON1かANSEL設定忘れてない? それから 出力bit操作は PORTBbits.RBx じゃなく LATBbits.LATBx にすると吉
テスター当ててみたら
516 :
774ワット発電中さん :2009/07/02(木) 10:11:53 ID:ScfpYnpw
>>510 , 511
SDカードを接続する以前の問題じゃねえの。
SDカード接続せず、DINとDOを接続して、
自己ループで送信データが受信できるか試したほうが・・・
517 :
774ワット発電中さん :2009/07/02(木) 23:11:53 ID:LhbNQ8lL
こんばんは、SDカード読み書きがうまく行かず、連日お世話になっている者です。
SPI通信さえ行えないと騒いでいた件は、単なるプログラムミスでした。
>>501 のソースで デバッグ用に入れた WriteEEPROM(0,response,1); は
正しくは &response で、デバッグ上の単純ミスでしたorz
再びSDカードを接続してみたところ、はじめはまた意味不明なコードが返ってくることがあったのですが、
配線を動かしているうちにいつの間にかデータ読み書きがうまくできるようになりました!!嬉しいです。
うまく行かなかったのはどうもノイズや電圧の揺らぎが影響していた可能性が大きいです。
いずれにせよみなさんのおかげです、本当にありがとうございます!!
しかし、まだ問題があります。(続く)
>>// レスポンスをPICのEEPROMに書き込み。 >>// (この関数は長い間使っているため信頼性は高いです) >> >>WriteEEPROM(0,response,1);
>>517 に続き、残る問題なのですが、
0x00100000に読み書きしたつもりが、なぜか0x000E0E00を読み書きします。
どんなアドレスに書いたとしても0x1F200(269セクタ)前にズレてしまいます。
セクタ読み込みツールは複数のソフトで確認していますが、
どれでも読み込み結果は同じでした。これはSDカードの仕様の何か!?
0x00000000に書き込み、さらにそれを読み込んだところ、正常に処理が行え、 さらにSDカードのフォーマットを求められるようになりました。 つまり領域はあるということですね。 あまりくわしいことは解らないのですが、 ツールでは論理ドライブ名を指定して読み込むので、 物理ドライブとしてのセクターを頭から読んでいないようです。 249セクタはMBRなんだと思います。なんとなく解決しました。
521 :
774ワット発電中さん :2009/07/02(木) 23:55:14 ID:mq27eYiS
ググれよ ここ質問スレじゃないし
俺様のデバッグに付き合えって態度だもんな
何だかんだ言って、みんな楽しんでるくせに(はぁと
気色悪い
526 :
774ワット発電中さん :2009/07/04(土) 06:27:50 ID:yj4xCHRd
CMD16のブロックサイズは、実際どれぐらいまで小さくできるでしょうか? 1〜32バイトぐらいになりますか? これはSDカードに依存するんでしょうか?
>>520 Disk Probe とか \\.\PHYSICALDRIVE とかで
調べてみれば?
>>526 仕様ではカード依存。
Partial Writeがサポートされていれば1バイトでもOKらしい。
ありがとうございました 16バイト単位ぐらいで読み書きできればマイコンストレージにちょうどいいので 実験してみます
マイコンストレージならそんなに容量要らないと思うから各ブロックの頭数バイトずつだけ使ってあとはダミーデータで埋めておくのも手だな。
読み出しはともかく、書き込みは512が下限なのがほとんど。
なるほど 512バイト単位で先頭nバイトだけ使って、 以降は読み(書き)捨てるという方式も考慮すべきですね ちょっともったいないですが2Gのカードで512バイト中、 32バイトしか使わないとしても、 2000000000 / 512 * 32 = 125000000で約120MB使えるから十分ですね
SunDisk MicroSD2GでCMD16で32バイトにして試してみました。 読み込みは上手くいきましたが、書き込みはどうやっても成功しませんでした。 素直に512固定で組んだ方が良さそうです。残念。
「Partial WriteがサポートされていればOK」だから、CSDレジスタのWRITE_BL_PARTIALが 1かどうかだけ調べればいいよ。
>>533 をCMD9でCSD読んでみました(128bit=16byte)
00 26 00 32 5f 5a 83 ae fe fb cf ff 92 80 40 df
後ろから見ていき、
df 11011111=> 1101111 1 (CRC7 1b)
40 01000000 => 0 1 0 0 00 00 (FileFormatGrp copy PermWriteProt TempWriteProt FileFormat RSV2)
80 10000000 => 10 0 00000 (WRITE_BL_LEN_L WRITE_BL_PARTIAL RSV5)
92 10010010 => 1 00 100 10 (WP_GRP_ENA RSV2 R2W_FACTOR WRITE_BL_LEN_H)
この解釈で合ってますでしょうか?
このデータからすると
WRITE_BL_LENが 1001(=9)ではなく1010(=10)なので、1024Byteということかな?
WRITE_BL_PARTIALは0でした。
同様に6バイト目5a(0101 1010) 83(1 0 0 0 00 11)から 、 READ_BL_LEN は 1010(=10) 1024Byte、 READ_BL_PARTIALは1でした。 読み込みだけが成功するのに納得できました。
SDHCは、アドレスの指定法がx512のパラグラフになった、 という以外は以前のSDとそれ程変わりないと考えて良いでしょうか?
538 :
774ワット発電中さん :2009/07/11(土) 12:14:14 ID:M3BdOjVb
SDHCでは、CMD0 ---> CMD1 では初期化できないので CMD0 CMD8 CMD58 ACMD41 .... で初期化してるなら セクタ指定以外は同じ SPIモードでの話しだけど。
ATmega88のSPIで、SDの読み書きをやってみたんですが、 水晶20MHzだと、SPR1=0 SPR0=0 SPI2X=0 のfosc/4で 5Mbps(610KB/sec)が限界でした。 SDとのSPIはこの辺りが限界と考えるべきしょうか? それとも高クロックのMCUではもっといくのでしょうか。
540 :
774ワット発電中さん :2009/08/16(日) 16:22:25 ID:7N1LcDfv
答えは君の書き込みの中にある
>>540 この件ですが、SI,CLK,CSに送る3.3Vを抵抗分圧で作ってましたが、
抵抗値が高すぎるのが原因だったみたいです。
低く抑えたらmega88でのSPI最大クロックの10MHzで通信できました。
どれだけ書き込むかわからないので、先にeraseコマンド送って 消しておいてから、マルチブロックライトしようとしてますが、この作戦で 書き込み待ち(10msくらいが限界)を避けられますか?
やってみれば?
そうそう
SDカードを自作するスレ と勝手に読み間違えて危うく突っ込みそうになった俺 orz
〜えっさ、ほっさ、えっさ、ほっさ、おれたちゃ兄弟、どこきる兄弟♪
カメラからの映像を、 SDカードに記録してくれるICって無いかな?
SDカードのバージョン(ver.1or2)とファイルシステム(FAT16or32)の確認方法を教えてもらえませんか
ありがとうございます
読み出しサイズを512から128にするのはうまく行ったけど、 64にしようとしたらうまくいかない そんなことってある?
552の原因が判った ブロックサイズを変えると、その境界をまたいで読み出しができなかった 512バイト単位の物理ブロックの境界なら判るけど、 論理的な読み出し単位の境界で、なんでそんな制約が?