名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

PICでSDカード再生

1.はじめに
おしゃべりおもちゃが故障したとき、その壊れたICをPICで換装するために、 電子オルゴール+音声再生のファームウェア を開発してきた。
しかし、廉価なPICはメモリが少なく、格納できる音声はかなり短いものに限られてしまう。
例えば、現時点で最もコストパフォーマンスの良い16F1705(2016年8月秋月価格@110円)はプログラムメモリが8kワードしかなく、オルゴールエンジンと演奏データを入れると残りは6kワード程度になる。8ビットPCMでサンプリングレートを6kspsに落としても格納できる音声データは2秒間でしかない。
それより長い音声再生を望む場合は、シリアルEEPROMを外付けして対応することになる。廉価なシリアルEEPROMのCAT24M01(2016年秋月価格@150円)は512kビットあり、8kspsで8秒間の音声データを格納できる。
更に長い音声データを扱うにはSDカードを使う方法がある。256MBの容量があれば8ビット8kspsで8時間超えの音声が格納できる。

単にSDカードから音声を再生するだけなら市場に出回っているボードを使えば済むのだが、おもちゃ修理に応用する場合はおもちゃの動きに合わせて音声再生ボードを制御する必要があり、そのためのマイコンが必要になる。マイコンを使うのなら、そのマイコンに音声再生をやらせて安上がりにしよう、というのが今回の狙いだ。

ということで、今回はSDカードを使った音声再生のファームウェアを公開する。

2.処理方式
①音声データはWAV形式ファイルでSDに格納しておく。SDカードはFATファイルシステムを使うのだが、ファームウェアにはFATファイルシステムを持ち込まない。
その理由は、FATファイルシステムはプログラムのコードが嵩張るのとCPU負荷も大きいため、廉価なPICには荷が重過ぎるからだ。PICとしてはSDカードをSPI接続のシリアルEEPROMとして利用したい。
同じ理由でMP3形式もサポートしない。音声はベアなPCMデータで格納する。

②SDカードへの音声データの書き込みは特別なツールを用意するのではなく、FATファイルシステムを使ってPCで行いたい。
そのため、SDカードをFATフォーマットした後、WAV形式ファイルを順次整然と収容することで、各ファイルを連続クラスタに格納する。
ファームウェアにはファイルのSDカード上のアドレスと長さを伝えることで、SDカードを物理層だけでアクセスする。
SDカード上のアドレスと長さはディスクダンプツールを使って人系で情報を取得し、ファームウェア内にハードコードする。

③ファームウェアの処理内容は極めて単純で、SDカードアクセスの初期設定、PWM出力の初期設定を行った後、SDカードからPCMデータを順次読み出して、その値でPWMデューティ値を設定するだけである。

④ターゲットデバイスにはPWMモジュールが必須だが、SPIは必須ではない。SPIはソフトウェアで実現しても16MHzのCPUクロックでは200kbps程度の性能は出るので8kspsの音声再生には十分対応できる。
ポート数は、SDインタフェース用にSPIの3本とSD選択信号1本の合わせて4本、PWM出力に1本が最低限必要で、後はアプリケーションで使うポート数が加わる。
今回のファームウェアでは8ピンの12F1501を採用した。SPIモジュールは内蔵していないのでソフトウェアで実現する。

⑤電子オルゴール+音声再生のファームウェアにもSDカードをサポートさせるための布石として、12F1822にも移植した。

⑥8ピンデバイスでは応用し難いので、14ピンデバイスの16F1503、16F1822、16F1705にも移植した。

3.回路図
PIC12F1501と電源のパスコン、それとSDカードのみのシンプルな構成だ。
信号線のSDOとSDIはクロス接続する。

PICでSDカード再生回路図

PICでSDカード再生回路図2


4.評価ボード
評価ボードと言ってもブレッドボードに組んだものだ。
PICでSDカード再生画像1

中核は12F1501だ、というより部品はこれだけ。
PICでSDカード再生画像2

SDカードの接続部分。
PICでSDカード再生画像3

SDカード本体はminiSDで、これを買ったときにSDに変換するアダプタが付いていた。これをソケット替わりに利用する。
PICでSDカード再生画像4
PICでSDカード再生画像5

SDカードアダプタにヘッダピンを繋ぐ。SDカードの端子は9Pあるが、両端はSPIモードでは使わないので、両端を除いた残り7Pを配線する。
PICでSDカード再生画像6
PICでSDカード再生画像7

5.費用
製作費用はSDカードを除いて、12F1501(70円)と電源パスコン10uF(5円)の合計75円だ。
評価ボードとして作る場合は、ICソケットやSDカードソケット、基板またはブレッドボード等が必要だが、おもちゃ修理に供するにはSDカードは直付け、すべて空中配線で既存基板にくっ付ければよいので、正味75円でできる。問題はSDカードの調達で、ヤフオクでも数百円しているので、100円台のジャンク品が見付から無ければこの修理方法は採用できないだろう。

6.再生音のサンプル
再生音はこれ

7.ファームウェア
開発したファームウェアと設計資料・資材は ここから ダウンロードできる。ディレクトリ 「SD」 配下にMPLABXのプロジェクトが格納されている。

8.SDカード上のアドレス等の取得方法
ダウンロードファイルの 「PICでSD再生.xls」 のシート名「SDアドレス取得」を参照。
スポンサーサイト
  1. 2016/08/12(金) 00:07:21|
  2. 製作記事
  3. | コメント:0
<<ラジコンRASTAR社の修理(超再生・デコーダ不良) | ホーム | ミミクリーペットの修理(ボイスレコーダー・チェンジャー換装)新バージョン>>

コメント

コメントの投稿


管理者にだけ表示を許可する

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

本ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

最新記事

最新コメント

月別アーカイブ

カテゴリ

おもちゃ病院 (7)
技術情報 (9)
修理事例 (141)
製作記事 (74)
ドクター研修会 (2)
PIC開発 (9)
未分類 (8)

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR