マイコンからSDカードへの書き込みについて

こんにちは。softmです

以前,タイマーの使い方を教えていただいたものですが,そちらの問題は

解決いたしましたので,新たに質問をさせていただきます。

これまではシリアル通信でデータをパソコンに送信していました。

それを,パソコンではなくSDカードに保存したい(可能であればCSVファイルで)のですが,やり方が全く分かりません。

ちなみにマイクロSDカードスロットDIP化キット(秋月電子:K-05488)を使用して書き込みを行うつもりです。

どなたかわかる方ご教授願います。

使用しているマイコンはRX65N,開発環境はCS+です。

  • まず回路設計で

    パソコンではなくSDカードに保存したい(可能であればCSVファイルで)

    SPIで

    マイクロSDカードスロットDIP化キット(秋月電子:K-05488)

    に接続します

    どのポートを使用するか決めます

    プルアップ抵抗等忘れないようにします

    ドライバーソフトを導入します

    SPIのSDインターフェースドライバーソフトと

    FATシステムのインターフェースドライバー

    ライブラリーで提供されているものや

    ソースレベルでオープンソースとして提供されているもの

    で有料や無料のものがありますどれを使用するか決めてください

    一応導入済みとなればそれをテストすることが必要です

    テスト済みとなれば

    パソコンではなくSDカードに保存

    が実現できるようになります

    RX65N,開発環境はCS+

    のOSかBIOSでもあれば簡単なのですが、たぶん無いと思いますので

    どこかからドライバーソフトを探してきて

    ゴリゴリやる必要があると思います

    自分もそのようにしてやっています、出来ますよ

    一生懸命SDやらFATやら勉強してください。

  • IKUZOさん,返信ありがとうございます。

    頑張って勉強してみます。

    その先でわからないことが出てきたらまた質問させていただきます。

  • こんにちは。NoMaYです。

    >> RX65N,開発環境はCS+
    > のOSかBIOSでもあれば簡単なのですが、たぶん無いと思いますので

    RXマイコンですと、RXスマートコンフィグレータが生成したコードが、それ相当ですね。RX65NならLCD表示コードも生成出来たと思いますし、USBホスト機能でキーボード入力も出来る筈ですね。(もっとも、SCIでの入出力コードの方がコトが簡単ですけれど。) FAT機能もありますね。RX65Nの話では無いですけれども、RX72Nなら、出来合いのSDカードコネクタ付きハードウェアとしてRX72N Envision Kitがありますね。

    思うにFITを選択して生成したコードのAPIなんて、とてもBIOS的だと私は思います。あとは動的なプログラムロード機能があればDOSっぽいものですね。でも、他方、RTOSコードも生成出来ますので、マルチタスクBIOSみたいなもの、なんていう言い回しも許容範囲内かも知れません。(更にそこに動的なプログラムロード機能を足せばマルチタスクDOSなんて言い回しも当たらずとも遠からずなところかも知れません。)

    RXマイコンにはINT命令がありますので、かつてのMS-DOS/PC-DOSのint XXhもどきインターフェースといったものも作成出来るかも知れないです。(今、私の本棚を見たら、ピーターノートン著のPROGRAMMER'S GUIDE TO THE IBM PC & PS2なんていう大昔の本が残ってました。IBM PC & PS2のBIOS APIとDOS APIの解説書です。)

    [追記]

    そういえば、太古の昔、16bitプロセッサのi8088の4.77MHzとかでIBM PCは動いていたようです。

    IT管理者のためのPCエンサイクロペディア
    -基礎から学ぶPCアーキテクチャ入門-
    第7回 PCのエンジン「プロセッサ」の歴史(1)~i8088からIntel386までの道のり
    1. IBM PCシリーズに採用された86系16bitプロセッサたち
    元麻布春男
    2002/08/17
    www.atmarkit.co.jp/fsys/pcencyclopedia/007procs_hist01/procs_hist01.html
     

  • こんにちは,NoMaYさん。

    返信ありがとうございます。

    すみません,後半私の知識が乏しく,理解が追い付きませんでしたが,

    スマートコンフィグレータを使用すれば,SDカードを制御できるということですか?

  • softmさん、こんにちは。NoMaYです。

    出来る筈ですよ。すみません、現在、情報を検索中です。

    ルネサス検索: SDカード
    www.renesas.com/jp/ja/search?keywords=SDカード

    RXファミリ用 FATファイルシステム [M3S-TFAT-Tiny]
    www.renesas.com/jp/ja/software-tool/fat-file-system-m3s-tfat-tiny-rx-family
     

  • softmさん、こんにちは。NoMaYです。

    RXファミリ用 FATファイルシステムのページのドキュメント一覧の以下のドキュメントが取っ掛かりではないかな、と思いました。でも、8年前のドキュメントですので、かなり不安はありますけど。あと、SDカードは相性があるとか無いとか、あったような無かったような、そんな記憶があります。(あいまいで、ごめんなさい。) 他の皆様、私が勘違いしていたら、指摘して下さい。

    RXファミリ オープンソースFATファイルシステム M3S-TFAT-TinyへのSPIモードMMC/SDメモリカード・ドライバ・ソフトウェアの組み込み例
    www.renesas.com/jp/ja/document/apn/820326?language=ja

    RXファミリ SPIモードマルチメディアカードドライバ: 導入ガイド
    www.renesas.com/jp/ja/document/apn/rx-family-spi-mode-multimediacard-driver-introduction-guide?language=ja

     

  • softmさん、こんにちは。NoMaYです。

    先ほどのドキュメントは、ポイントを外してしまったような気がします。こちらかなぁ、と思い直しました。

    RXファミリ オープンソース FATファイルシステムM3S-TFAT-Tinyモジュール
    www.renesas.com/jp/ja/document/apn/open-source-fat-file-system-m3s-tfat-tiny-module-firmware-integration-technology?language=ja

    RXファミリ M3S-TFAT-Tiny メモリドライバインタフェースモジュール
    www.renesas.com/jp/ja/document/apn/m3s-tfat-tiny-memory-driver-interface-module-firmware-integration-technology?language=ja
     

  • こんにちは,NoMaYさん。

    返信ありがとうございます。

    たくさん調べてくださってありがとうございます。

    自分なりにも調べてみたのですが,スマートコンフィグレータで

    SPI動作モードというものがございました。

    https://www.renesas.com/us/ja/document/mat/smart-configurator-users-manual-rx-api-reference?language=ja

    これはSDカードの制御と関係あるのでしょうか?

  • softmさん、こんにちは。NoMaYです。

    いえ、今回の場合(SDカードの場合)、RXスマートコンフィグレータが生成するソースコードのもうひとつのカテゴリであるFITというフレームワークでひとつの連邦国家(という表現は良くないかも知れませんけれど)を形成していまして、その一員を使いますので、FITというフレームワークを使った方が良いです。(他方、今までsoftmさんが使われていたのはCGという連邦国家です。)

  • こんにちは,NoMaYさん。

    返信ありがとうございます。

    なるほど,理解しました。

    まずは,そのFITモジュールをCS+に組み込んでみます。

  • softmさん、こんにちは。NoMaYです。

    SDカードという呼称の他に、SDメモリカードという呼称も使われているようですね。

    ルネサス検索: SDメモリカード
    www.renesas.com/us/ja/search?keywords=SDメモリカード

    それはそれとして、何かの協会に申請しなくても自由に使えるのはSDカードのSPIモードというモードでしたっけ?SDカードのSPIモードのサンプルプログラムって、見付かりましたか?無いですよね、、、

    [追記]

    すみません、8年前のドキュメントがSPIモードでしたね。ごめんなさい。

  • NoMaYさん、こんにちは。Sugachanceです。

    昔調べた時の私の理解では、
    SPIモードだろうと、SDカードを製品に使う時点で
    SDアソシエーションへの入会が必要だった気がするのですが・・・
    (SDの表記無しでカードスロットの設置だけだったらセーフだったかなぁ・・・)

    SDカードではないマルチメディアカード(MMC)にSPIで書き込むのはノンライセンスでいけた
    とかだったような。

    経験ある方の解説があるとうれしいです(他力本願)


    ちなみにライセンス付き(?)の書き込みアダプタみたいなものを出してたところもあったはずです。

  • Sugachanceさん、こんにちは。NoMaYです。

    > SDカードではない マルチメディアカード(MMC)にSPIで書き込むのはノンライセンスでいけた とかだったような。

    あっ、きっと、それです。ありがとうございました。

    > 経験ある方の解説があるとうれしいです(他力本願)

    たしか、昔、スレッドが立っていたのですよ。今、見付けられるかな、、、

  • Sugachanceさん、NoMaYさん

    SDをSPIモードでアクセスするのは、2GBまでの制限があると思います。

    (MMC互換と言えばライセンス不要と思います)

    最近の大容量カードでなく、小さい容量のカードを使うことをお勧めします

    個人的には保存だけならEEPROM、データを抽出するときはシリアルを使う、

    などにすれば、処理が楽だと思います。

    SDへの書き込みはArduino、ラズパイ、ドライバレベルからポーティング

    するのではなく、ライブラリが揃っていない環境だと私も厳しいです。

    以上、よろしくお願いします

  • 鈴木さん、こんにちは。NoMaYです。

    > MMC互換と言えばライセンス不要と思います

    アドバイスありがとうございます。そういうことなので、知っている人は当然知っている(知らない人は全く知らない)ということかな、ということであったわけでしたので、MMC、というキーワードでも検索しないといけなかったのですね。

    ルネサス検索: MMC
    www.renesas.com/us/ja/search?keywords=MMC

    RXファミリ用マルチメディアカード/e・MMCドライバ
    www.renesas.com/us/ja/software-tool/multimediacard-emmc-driver-rx-family

    [追記]

    すみません、この後で気付いたのですが、今は、MMCというキーワードを知らなくても、SD Simplified Specificationというのを知っていれば事足りるようですね、、、

    [追記その2]

    そうでもないのかな、、、SD Simplified Specificationというものの使用許諾条件がどういうものかによるのかな、、、