Bluetooth LE Audioの基板開発をして、デバッグしてみた。

本サイトはアフィリエイト広告を利用しています。
Bluetooth LE

Bluetooth LE Audioの基板開発をして、デバッグしました。

SOCはnRF5340、PMICはnPM1300、Audio_ICはCS47L63を使用しています。

実際に基板作成して、一からデバッグした内容を紹介します。

 

スポンサーリンク

Bluetooth LE Audioの基板開発をして、デバッグしてみた。

Bluetooth LE Audioの基板開発をして、デバッグしました。

SOCはnRF5340、PMICはnPM1300、Audio_ICはCS47L63を使用しています。

 

実際に基板作成して、一からデバッグした内容を紹介します。

 

回路図・アートワーク・BOM

開発した基板に関しては、KiCadで設計しています。

下記記事で実際のパターン・PCB設計の手法について、詳細を記載しています。

Pad on ViaをKiCadで設計して、PCBWayで基板作成してみた

Pad on ViaをKiCadで設計して、PCBWayで基板作成してみた
6層+Pad on Viaの基板作成をしました。KiCadで回路図・アートワークを作成をしています。実際にパッドオンビアの基板発注した内容を紹介します。Pad on ViaをKiCadで設計して、PCBWayで基板作成してみた6層+Pad ...

 

実際のKiCadのデータに関しては、下記GitHubに保存しています。

筆者がパターン専門の設計者でなく、また趣味で作ったものですが、動作確認は出来ています。

Sonic-Sprint/pcb at main · iotengineer22/Sonic-Sprint
This repository present solution for the Sonic Sprint - iotengineer22/Sonic-Sprint

 

電圧チェック

基板が納入してから、最初に電圧チェックを行いました。

 

デモ動画でも電圧確認の内容を紹介しています。

 

PMIC(nPM1300)による電源管理

このカスタムnRF5340ボードでは、電源管理にnPM1300 PMICを使用しています。

このPMICは、Type-C(5V)またはバッテリー(3.7V)から必要な1.8Vと1.2Vを生成し、SOC(nRF5340)とオーディオIC(CS47L63)に電力を供給します。

 

Type-C電源からの電圧シーケンス

まず、Type-Cからの電圧シーケンスをオシロスコープで確認しました。

  • CH1: Type-C(5V)
  • CH2: 1.8V出力
  • CH3: 1.2V出力

 

Li-ionバッテリーからの電圧シーケンス

次に、市販のLi-ionバッテリー(3.7V)を使用した電圧シーケンスも確認しました。

  • CH2: 1.8V出力
  • CH3: 1.2V出力
  • CH4: バッテリー(3.7V)

 

 

過電圧保護(Overvoltage Protection)

重要な注意点があります。PMIC(nPM1300)には過電圧保護機能があることです。

過電圧保護閾値(VBUSovp)はTypで5.5Vです。

一部のType-Cアダプターや電源は5.5V付近の電圧を出力する場合があるためご注意ください。

 

 

nRF5340カスタムボードへの書き込み手順

今回使用したNordicのnRF5340に関してのプログラム書き込み方法についてです。

 

実際に書き込んだデモ・テスト動画は下記となっています。

 

nRF54L15-DK経由での書き込み

下記公式の評価ボードの手順をしたがって、書き込んでいます。

詳細は下記ページをご覧ください。

Zoomin_Logo

 

但し公式の評価ボードのようにUSBでの書き込みはカスタムボードでは対応できていません。

そのため、同じNordicの評価ボードであるnRF54L15-DKを利用しています。

あと1.27㎜ピッチの10ピンケーブルも使っています。同類の内容を下記記事でも紹介しています。

nRF54L15-DKを使ってSWD (Serial Wire Debug)の書き込み

nRF54L15-DKを使ってSWD (Serial Wire Debug)の書き込み
NordicのnRFシリーズのSWD経由の書き込みは、J-Linkを使わずに可能です。評価ボードのSWDの出力ピンを使って書き込みます。カスタムのnRF54L15ボードへのプログラムの書き込み方法を紹介します。nRF54L15-DKを使って...

 

プロジェクトを作成して、公式は用意してくれているスクリプトファイル(.py)を利用しました。

あくまで一例ですが、下記形で対応しています。

ビルド後にターミナルをnRF Connectに変更しています。

 

下記はBroadcastのプログラムを書き込んだ例です。

 

フラッシュ後、カスタムボードのLED点灯状態の変化しています。

プログラムが正常に書き込まれたことを確認できます。

 

 

ボードファイル(デバイスツリー)の対応

今回のボードファイル(デバイスツリー)は公式ボードのnRF5340 Audio DKをベースにしています。

 

エラー処理

nRF5340 Audio-DKとカスタムnRF5430ボードには大きな違いがあります。

元のボードファイルをそのまま使用すると多数のエラーが発生します。

主な原因は、I2C電力センサーに関連するエラーでした。

 

これらのエラーに対処するため、不要な設定を無効化(マスク)しました。

まだ処理できていない箇所があったかもしれませんが、動作は出来ましたので良しとしました。

\src\utils\nrf5340_audio_dk.c

nrf5340_audio_dk_nrf5340_cpuapp_common.dtsi

 

\boards\nrf5340_audio_dk_nrf5340_cpuapp.conf

 

 

サーボモーター制御(PWM)

カスタムボードには、サーボモーター(SG-90など)接続用のピンヘッダーがあります。

このヘッダーは、必要な5V電源とサーボ制御用のPWM出力の両方供給しています。

SG-90などのケーブルを直接挿入することが可能です。

 

SG-90サーボモーターを使用したテストで、以下の結果を確認しました。

  • PWMパルス範囲: 600μs〜2400μs
  • 動作確認: SG-90サーボモーターが正常に動作
  • スピーカー取り付け時: スピーカーを取り付けた状態でも角度制御が可能

下記がデモ動画です。

 

単体での動作と、汎用的なSG-90のマウントユニットに接続してのテストも行っています。

問題なく、サーボモータでの角度調整が出来ました。

 

BLE(Bluetooth LE)Audio

カスタムnRF5340ボードでのBLE Audio機能を確認しました

2言語(英語+ドイツ語)アナウンスのBLE Audio経由での出力を行うUnicastテストです。

 

構成としては3枚でテストしています。

  • サーバー: Unicast Server(音声送信側)
  • クライアント: Unicast Client(Right/Left)(音声受信側)
  • 音声データ: 英語とドイツ語の2言語アナウンス

 

デモ動画は下記です。

 

Bluetooth LE経由でしっかりオーディオが配信できています。

 

まとめ

Bluetooth LE Audioの基板開発をして、デバッグしました。

SOCはnRF5340、PMICはnPM1300、Audio_ICはCS47L63を使用しています。

実際に基板作成して、一からデバッグした内容を紹介しました。

コメント