WAVプレーヤーの製作(その2)

先日、WAVプレーヤー・その1を作ってから、もう早1ヶ月・・・ 全く最近は時間が早い。
それに引き換え、頭と手はノロノロであって全く情けない。

STM32マイコンによる音楽再生の素晴らしさに気を良くし、予定(音の改良)とはチョット外れ、2GByteを超える大容量SDカードを使ってみたくなった。

と言うわけで、microSDカードをSD_IOで実装した(これまでのSDカードはSPI接続)
WAV_PLAYER_7.jpg 
左上に見えるのが、SD_IO接続のmicroSDです。

WAV_PLAYER_6.jpg 
microSDカードへの配線です。
CDラインを除き、全て接続されSD_IOの準備が整いました。

そして接続テストです。

あ・・・そうでした。記載してませんでしたが、STM32初心者の私ですが、開発環境をローコスト、ハイパフォーマンスで使用できることが必須です。

様々に調査した結果、この環境、「マイコン徹底入門」がBestであると結論できました。
ここで公開されている開発環境(eclipse)ならば、大規模ソフトも作れます。
特に、STM32初心者にはお勧めです。
(他の開発ツールでは、実行ファイルの容量が32kByteが上限で、お遊び領域以下です)

私のこのテストは、ここでのサンプルを使用しています。

・・・接続テストの続き・・・

ところが、Buildできません。原因は「RAMメモリー不足」でした。
何と! SD_IOを使うサンプルは、RAM 8kByteの
STM32 Value Line discovery で実行できないことが判りました。

・・・色々と考えて、STM32 STBee(STM32F103VET6 搭載)に交換しました。
STBeeならば
「マイコン徹底入門」でもサポートしているので導入が容易です。
WAV_PLAYER_5.jpg 
上がmicroSD(SD_IO接続)、左がvs1011 DAC、右がI2S接続のLCD、そして中央がSTBeeです。

LCDに見えているファイル名が「omoidewa.mp3」、私が好きな「サーカス」の名曲です。
原曲名は「思い出は嘘つき」です。

(続き:2014/3/16追記)


私が高音質WAVファイルを持っていないこともあるが、聴いた限りではmp3楽曲でもかなりの
高音質に感じられます。

-----
かなり高性能のSTM32であるが、この高性能を引き出すためにはそれなりの知識、技術が必要になるのだが、今の私には基礎の基礎から構築して行くことはとても辛い。

今のSTBeeでは、SDカードのルートにある、*.wav、*.mp3ファイルを検出し、順に再生する機能しかないが、リスト選択して再生する機能や、ボリュームUP/DOWNなどの付加機能も必要だ。

・・・・・ 時間がかかることです ・・・・・


ここで大きく脱線します。

STM32で音楽再生ができる機器・ソフトを手掛けているBlog情報を調べると、Hi-Endはこの
STM32F4-Discovery Motion Player Project」であるようだ。
ここではSTM32F4というハイ・エンド機種を使っています。

やはり先人が築いたリソーセスに頼るのが早道のような気がするが、これをデッド・コピー
してもつまらないので、これを大いに参考にした独自ソフトを作ってみたい。

そこで、(多分今後は)
STM32F4の開発環境が必要になる。が、しかし、
「マイコン徹底入門」ではサポート外であり、
私が環境設定することは(まだ)無理だ。

・・・色々調べてみると、
1.trueSTDIO(32Byte制限あり)のリソーセスをeclipse(フリー)で利用する方法
2.CooCoxのCoIDEというツールでSTMicroのDemo環境を利用する方法

最初は1.を色々と試しましたが、何度やってもうまく行きませんでした。。。。

仕方なく、2.を試してみました。
環境構築の情報は、「チカラの技術」のここで紹介されています。

結果、1.で苦労したようなことも無く、スムースに導入できました。
WAV_PLAYER_8.jpg

手順通りに行えば容易に環境設定できました。ビルド、デバッグも動きました。
これは、緑、赤LEDが交互にチカチカするDemoです。タイマー割り込み機能です。

難を言えば、ST-LINKとの接続にクセがあるようです。

このIDEから書き込みをしても最初はエラーになります。

先の手順でインストールした、ST-LINK Utilityを一度起動、接続後に開放します。
その後はIDEからの書き込みができるようになります。
Debugもそこから可能になります。


・・・・・(STM32F4環境構築メドがついたので)STBeeに戻ります・・・・・

GPIOを使ったスイッチ操作(楽曲コントロール)の勉強をまずやってみましょう。

(続き 2014/3/18)

GPIOによるスイッチ操作のお勉強です。
WAV_PLAYER_9.jpg

スイッチを4個付けました。
ボリュームのアップ・ダウンの2個、startスイッチ、楽曲選択のNEXTスイッチです。

外部から3.3Vを10kΩ経由で印加し、0.1uFコンデンサでチャタリングを回避するスイッチです。
スイッチが押されるとstm32の入力が3.3Vから0Vになる、即ち入力が1から0になる回路です。

予定通りの動作ができました。

・・・これに気を良くし、「内部プルアップ」になるようにソフトウエアを修正しましたが、動作NG。

(続き:2014/3/23)

少し他の事(リチウム・イオン電池容量リベンジ)をやっていたので記事が書けませんでした。
(放電試験結果が出たらアップします)

内部プルアップができました。私が使っているeclipse開発環境のライブラリでは次のように内部プルアップの指定をします。

  /* Configure GPIOX_0: DOWN : input pull_up */
  GPIO_InitStructure.GPIO_Pin = GPIOX_0_PIN;    //Pin番号を指定
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //Pin機能を指定、IPUが入力+プルアップ
  GPIO_Init(GPIOX_PORT, &GPIO_InitStructure);   //Pinを初期化

これをPin毎にやっていたのがNGでした。4個のピンがある場合は

  GPIO_InitStructure.GPIO_Pin = GPIOX_0_PIN | GPIOX_1_PIN | GPIOX_2_PIN | GPIOX_3_PIN;
 //Pin番号をまとめて指定する というのが正解でした。

選曲ができるようになったので、(WAV楽曲が無いので)MP3楽曲を複数を入れて聴いてます。
時間経過でvs1011 DAC回路もエージングが効いてきたのか、かなり滑らかな感じです。

連続再生モードも作ってみると良いかも・・・


テーマ : オーディオ
ジャンル : 趣味・実用

コメントの投稿

非公開コメント

プロフィール

haiga

Author:haiga
私のブログへようこそ!
電気オンチが始めた自作オーディオです
2010/3/17 電子工作をプラスしました。

自作オーディオの楽しみ共有のため、私が作ったパーツ提供をしてます。質問や要望を遠慮なくコメント欄に書き込んでください。

FC2カウンター
その日1回目にアクセスいただいた方の総カウントです
最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード