雲仙オーディオ・フレームワークでトークスルーできた
『雲仙』オーディオ・フレームワークを使い、入力した音をそのまま出力させることができました。
構成
音楽プレイヤー「FiiO X3」 LINE OUT
↓
UMB-ADAU1361-A(AD変換)
↓
NUCLEO-F746ZG(デジタル信号処理)
今回は入力をそのまま出力へ
↓
UMB-ADAU1361-A(DA変換)
↓
イヤホン
ボード同士はジャンプワイヤーで結線しています。
余談
最初にmbedでサンプルをインポートした際、デモ用にトーンが鳴るプログラムをインポートしてしまいました。
プログラムを見ればすぐわかる話でしたが、PCの充電器が壊れて1週間ほど悶々としてしまいました…
次はなにかしらエフェクトをつけてみたいと思います。
【環境立ち上げ】UMB-ADAU1361-Aの仕様確認
デジタルエフェクター制作の環境作りの一環としてUMB-ADAU1361-Aを購入しました。
UMB-ADAU1361-Aはアクアシグナルさんのオーディオコーデックモジュールです。
アナログデバイセズ製オーディオコーデックIC「ADAU1361」を搭載しています。
dsps.shop-pro.jp
この基板にAD変換とDA変換をやってもらいます。
そもそもNUCLEO-F746ZGとこの基板を購入したのは、『雲仙』オーディオ・フレームワークを使いたかったからです。
私のような組み込み初心者にとっては信号処理部以外の環境立ち上げ自体が大変だと思います。
モチベーションを保つためにもまずは最短ルートで音が出るところまでたどり着きたいので、
すでにあるものに乗っかる形で始めます。
今回はふたつの基板を接続する前にUMB-ADAU1361-Aの仕様を確認していきたいと思います。
まず回路図ですがwebページに公開されています。
http://kaneko-sys.co.jp/datasheet/umb-adau1361/UMB-ADAU1361-A_schematic_V1.pdf
主な構成は
・ADAU1361
・発振器
・フィルタ
・入出力
ですね。
IC以外の外付け部品については特別なものはなさそうなので特筆しません。
このモジュールの機能はADAU1361でほぼ決まっているようなのでADAU1361の中身を見てみたいと思います。
ADAU1361の仕様もアナログデバイセズのwebページに公開されています。
データシートは英語しかありません。
冒頭ページから機能を見てみます。
・差動で入力可能なステレオ入力+AUX
・差動で出力可能なステレオ出力+MONOOUT
・入力レベル自動調整
・AD変換
・DA変換
・デジタルデータ入出力
・PLL内蔵
・I2C/SPI通信
ざっくりこんな感じでしょうか。
システムブロック図を見てみると、21ページの例がモジュールの構成に近いですね(シングルエンドのステレオ入力)。
23ページにADCとDACは24bitのΣ-Δ型と記載があります。
Σ-Δ型ADC, DACについてはアナログデバイセズのアプリケーションノートが詳しいです。
https://www.analog.com/media/jp/technical-documentation/application-notes/AN-283_jp.pdf
入力レベル自動調整は内蔵のPGAにフィードバックをかけて実現しています。
33ページに応答波形の例が載っています。
45ページにレジスタマップが載っています。
ユーザーから見えるレジスタは68個ありますね。
調整機能がいっぱいです。
I2CかSPIのどちらかを使って設定を書き込めます。
ポップノイズ抑制をON/OFFできたりもするんですね。
電源電圧の最大絶対定格が-0.3~+3.65Vなので間違えて5Vかけないように注意が必要です。
ここまで読んでみてイメージがなんとなく湧いてきたので次はSTM32F746と接続して動かしてみたいと思います。
【コスパ】HAKKOの安価な半田ごてを買った
基板の組みたてに半田付けが必要になったので、比較的安価な半田ごてを購入しました。
コスパ良かったので紹介します。
買った半田ごてはこれです。
半田ごて以外に半田と半田吸い取り線、こて台がついて668円。
仕事では買ったものとは違いますがHAKKOの半田ごてを使っています。
HAKKOなら安価でも悪いものではなく最低限使えるだろうと思い購入しました。
結果、特に問題なく使えています。
温度は調節できないので少し高めがいいなと思っていましたが、ちょうどいい感じでした。
ただし、このセットにはこて先クリーナーが付いていません。
無くても使えなくはないですが、作業のし易さ、クオリティを考えると必要だと思います。
こて先クリーナーは買っていませんが買うとしたらこれかな。
個人的にはスポンジタイプよりもワイヤタイプのクリーナーが好きです。
セットに付属のこて台はちょっと危ない感じもしたので、こて台+クリーナーの商品です。
半田ごてセットよりも高いですね…笑
【Lチカ】Nucleo-F746ZGでサンプルプログラムを動かす
デジタルエフェクターを作りたいなーと思いまして、Nucleo-F746ZGを買ってみました。
とりあえずLチカできたので過程を書いていきます。
迷走してる時間も含め、所要時間は2時間程度でした。
組み込み初心者なので間違ったことを書いていたらご指摘いただけると助かります。
環境
windows 10
mbed オンラインコンパイラ (google Chrome)
特別にソフトをインストールする必要はありませんでした。
webブラウザ上ですべて完結します。
ST-Link/V2 ドライバのインストール
ST-LinkはSTMのマイコンのデバッガー/ライターです。
Nucleo-F746ZGにはST-Linkがボード上に実装されていますので、ドライバをインストールすればマイコンにプログラムを書き込むことができます。
PCに繋げばインストールされるのでは?と思い、とりあえず繋いだところ数秒でインストールが完了しました。
正しく準備が整えばドライブとしてボードが認識されます。
また、この時点でユーザーLED2が点灯しています。
オンラインコンパイラの立ち上げと設定
まずmbedの下記のページにアクセスします。
ユーザー登録が必要なので、画面右上のアイコン(2019年2月現在)から登録します。
登録できたら先程のページの同じく画面右上にある「Compiler」をクリックします。
クリックするとブラウザ上で「Mbed Compiler Workspace Management」が立ち上がります。
さっそくLチカのサンプルプログラムを読み込もうと思いインポートボタンを押すと怒られました。
使っているプラットフォームを指定せよとのこと。
まず最初にアクセスしたmbedのページに戻ります。
右側に「Add to your Mbed Compiler」というボタンがありましたので、それをクリックします。
次に「Mbed Compiler Workspace Management」の画面に戻り、右上の「デバイス未選択」をクリックします。
すると次のような画面にボードの情報が追加されていて、右上の「Select Platform」で設定が完了します。
サンプルプログラムのインポート
「Mbed Compiler Workspace Management」の左上「インポート」ボタンをクリックします。
プログラムのタブがアクティブになっている状態で、「blink」と検索します。
一番上に出てきた「Nucleo_blink_led」を選択し、右上の「インポート!」ボタンで完了です。
インポートが完了すると、プログラムワークスペースに内容が表示されます。
main.cppの中身をみるとLED1が0.2秒の点灯と1秒の消灯を繰り返すようです。
サンプルプログラムのコンパイルと書き込み
いよいよLチカです。
「Mbed Compiler Workspace Management」画面上の「コンパイル」ボタンをクリックします。
特に問題なければ、コンパイラ出力欄にSuccess!と表示され、自動で出力ファイルがダウンロードされます。
書き込みはダウンロードされた出力ファイルをボードの名前で認識しているドライブにドラッグ&ドロップするだけです。
数秒通信した後、期待した動作が確認できました!
まとめ
Nucleo-F746ZGでLチカできました。
初心者でも問題なくサンプルプログラムを動作させることができ、簡単で使いやすいと感じました。
まずスタートラインに立てたので、使い倒して行きたいと思います。
おまけ
LEDを順番に点灯
LEDで8ビート