※初めての記事投稿ですので、見辛い点などご容赦ください。
NSP2340A 音声再生IC ブレークアウトボードキット
2025年11月に秋月電子通商で発売された、NSP2340AというNuvoton社製ICのモジュール。商品ページのマニュアルには下記のような説明があります。
Nuvoton Technology Corporation の音声再生 IC NSP2340A と、その動作に必要な最低限の部品を専用基板に実装しました。搭載されている NSP2340A には、予めブートローダが書き込み済みとなっており、専用機器不要で、シリアル通信による音声データの書き込みが可能です。音声データの作成や書き込みを行うための純正ソフトウェアは、無償で提供されます(弊社通販サイト商品ページよりダウンロードできます)。 (マニュアルより)
今まで音声再生に使えるモジュールというと、マイクとスピーカーを繋ぐような録音LSIか、DFplayer Miniのようなものしかなく、小型の機械に組み込もうとするとマイコンで頑張るしかなかったと思います。
ですが、今回ストレージと再生処理、さらにアンプの機能を合体させた超便利ICが発売されたので、早速買ってみました。
いざ使ってみると、結構クセの強いICという印象です。というか専用ソフトのクセが強いです。
ネットで調べても、動かした事例はSNSでいくつか見つかりましたが、その過程の情報があまりなさそうだったので、まとめてみようと思います。
必要なもの
- NSP2340Aモジュール
- USBシリアル変換モジュール
秋月の[129505]か[108461]がオススメ - 適当なスピーカー(0.5W以上)
- ブレッドボード
- 適当なマイコン(今回はXIAO-RA4M1を使用)
使い方の流れ
- WindowsのPCで音声を用意し、専用ソフトに読み込ませる
- 専用ソフト内でプロジェクトをビルド
- PCと音声モジュール、シリアル変換を繋ぐ
- ビルドしたデータをICに書き込む
- マイコン等でコマンドを送って音声再生
専用ソフトはWindowsのみの対応なので、Macユーザーには厳しそうです。
始める前に
Windowsのパソコンに、専用ソフトをインストールしておきます。ソフトは秋月の商品ページにある「NSP Playlist Editor」のファイルをダウンロード・解凍して導入します。
また秋月の商品HPにはサンプルプログラムが掲載されているんですが、なぜかこれだと音が鳴りませんでした。自分でビルドしたデータを書き込むと問題なく動作するので、おそらく秋月のサンプルに何かしらの設定ミスやバグがあるかもしれません。
STEP1 音声データの準備
専用ソフトに読み込ませる上で、使用する音声データは下記形式のWAVファイルに変換しておく必要があります。他の設定だと、ソフトで読み込んだときにエラーが出るかもしれません。
- 符号付き16bit
- サンプルレート16kHz
- モノラル
今回は、専用ソフトのフォルダに入っているサンプル音声(Reference Materialフォルダ内にある)と、効果音ラボさんの効果音をいくつか流してみたいと思います。ソフト同梱のサンプル音声はそのまま使えると思いますが、自分で用意した音声は上記のように変換する必要があるので、早速やってみましょう。
音声は有名な音声編集ソフトAudacityで変換してみます。Audacityで音声データを開き、下記設定でエクスポートします。ここではAudacity 3.7.1を使ってます。バージョンによって設定箇所が異なるかもしれません。

STEP2 専用ソフトで音声データを読み込み&ビルド
音声データが用意出来たら、ソフトに読み込ませます。
秋月のサイトからダウンロードし解凍したフォルダには色んなソフトが入っているので、初見だと混乱しますが、結論から言うと必要なのはNSP PlayList EditorとNuISP UARTの二つだけです。
まずはNSP PlayList Editorを起動して音声データを読み込み・変換しましょう。
起動したら、上にあるメニューから「File」>「New Project」を選択して新しいプロジェクトを作成します。チップにはNSP2340Aに該当するものを選択します。
続いて、プロジェクトの設定画面が開きます。
ここで、必ず「Update firmware via UART」を有効にします。これを忘れると、USBシリアル変換モジュールでのデータ書き込みができなくなり、別途7000円ほどする専用ツールでの書き込みが必要になります。
また、必要に応じて制御時の通信形式を選択します。ここではUARTモード、115200bpsを選択して進めます。

これで設定は完了です。
続いて、音声データを読み込んで動作の設定をしていきます。右の白いエリアの上部にSound EditingとDemo Modeという2つのタブがありますが、今回はマイコンからUARTなどで制御できるSound Editingを使います。Demo Modeの方は、通信ではなくピンのオンオフで音声を再生するモードです。

まずは、用意した音声データを画面左側のリストにドラッグ&ドロップしておきます。使用するデータとして登録しておく形です。そしてそのリストから、使いたい音声を右側の白いエリアにドラッグ&ドロップすると、音声が設定されます。ひとまず、4つを個別に追加してみます。

この場合、書き込み後に再生コマンドで1番を指定するとNuvoton Technology Corporationが、2番を指定するとNSP2340A_Titleが再生されるという設定です。
また、他に2か所設定できる場所があります。
- 音声を登録した左側のリストに
Sound Qualityという項目があります。Level0側が低音質、Level5側が高音質になる、と思います(要確認)。なおICに記録できる音声の時間はこの音質設定によって変わります(最長420秒)。 - 右側のリスト上部に
POR Indexという項目があります。ここで起動時の音を設定することができます。デフォルトはNoneですが、右リスト内に追加したデータを指定することで、起動時にその音声が1回自動再生されます。画像では未設定ですが、今回は1番を指定してみます。
以上で音声の設定は完了です。最後にビルドしていきます。
画面上部のメニューから「Project」>「Build Project」を選択(またはF5を押下)します。
数秒待つと、データのビルドが完了します。
STEP3 接続
データが用意できたら、書き込むための準備をしていきます。
秋月のキットに搭載されているICには、UARTでデータ書き込みできるブートプログラムが予め搭載されています。ですので、専用ツールなどは使わず、汎用のシリアル変換器を介して書き込むことができます。
秋月で販売されているモジュール、[129505]や[108461]は、電源とUARTの計4本のピン配置が全く同じなので、ブレッドボードなどでそのまま配線できます。

写真ではシリアル変換として秋月の[129505]を使用しています。
NSP2340Aモジュール、シリアル変換、そしてUSBケーブルを介してPCを接続しておきます。
STEP4 書込み
接続ができたら、音声データを書き込んでいきましょう。
書き込みソフトのNuISP UARTを立ち上げ、先ほどビルドしたデータを読み込みます。
まずは、ソフトとモジュールを通信できる状態にします。
画面左上、Connection Interfaceのうち、上の欄でUARTを選択し、下の欄でシリアルモジュールが接続されているUSBポートを選びます。その後、右側にあるConnectボタンを押し、モジュール側もリセットボタンを押すと、Connectedの表示になり、同期した状態になります。
続いて音声データ等を指定します。読み込むファイルは2つあります。一つが音声データ、そしてもう一つがコンフィグデータです。
ここで指定するデータが一体どれなのか非常にややこしいですが、先ほどNSP PlayList Editorで作成したプロジェクトファイルのうち、「ProjectBuild」 > 「Cpulf」 > 「VP_CpuIf_NSP2340.bin」「VP_CpuIf_NSP2340_CONFIG.bin」の二つが該当するファイルかと思われます。
ソフト内のLoad FileのFlashボタンで「VP_CpuIf_NSP2340.bin」を、その下のConfig BitsのSettingボタンで「VP_CpuIf_NSP2340_CONFIG.bin」を指定しましょう。
全て設定出来たら、右下のStartボタンで書き込みを開始します。書き込み完了には3分から5分くらいかかります。設定や環境によって変わるかもしれません。
STEP5 マイコンで再生
ここまで来たらモジュールのセットアップは完了です。
実際にマイコンで制御してみましょう。
テスト回路ですが、回路と言ってもブレッドボード上で5V、GND、TXD、RXDの4本を接続しただけです。また写真では省いていますが、モジュールの6-7番ピンにスピーカーも接続しておきましょう。
今回はXIAO RA4M1を使用していますが、XIAOシリーズのほか、Arduino Uno、Raspberry Pi Picoなど、UART通信ができればどんなマイコンでも問題ありません。
先ほど4つの音声を書き込んだので、ループして流すテストプログラムを書いてみました。他のボードでもそのまま使えるかもしれません。
#define UART Serial1
void setup() {
Serial.begin(115200);
UART.begin(115200);//専用ソフトのプロジェクト設定で指定したボーレート
Serial.println("Hello World!");
Serial.println("NSP2340A Test");
}
void loop() {
static uint8_t count = 1;
Serial.print("Playing : Index ");
Serial.println(count);
UART.write((uint8_t)0x7F);//再生コマンド
UART.write((uint8_t)0x00);//音声番号(上位)
UART.write((uint8_t)count);//音声番号(下位)
UART.write((uint8_t) ~(0x7F + count));//チェックサム
count++;
if(count > 4) count = 1;//1から4をループして再生
delay(5000);
}
ここでは再生コマンドのみ使っていますが、ソフトのファイルの中にドキュメントがあり、使用可能なコマンドや通信形式を確認することができます。以下に代表的なものをまとめておきます。
- 0x10 : Read ID
- 0x11 : Read Status
- 0x74 : Repeat Play
- 0x78 : Pause
- 0x79 : Resume
- 0x7B : Stop Repeat
- 0x7C : Repeat
- 0x7F : Play
- 0x80 : Stop
- 0x81 : Reset
- 0x82 : Power Down
※NSP_UART MCU Interface_EN.pdfより一部抜粋
上記プログラムでは活用していませんが、基本的にコマンドを送るとNSP2340A側から返答があるので、適宜確認すると良いかもしれません。
また、今回扱った秋月のモジュールでは、UART書き込み用のブートローダーの都合上、起動後1秒程度は書き込みソフトとの通信待機時間になり、その間はソフトからのコマンドしか受け付けず、通常の音声再生やコマンド制御はできないようです。もし起動後すぐ音声を鳴らすなどの動作が必要な場合は、UART書き込みではなく少しお高めの専用ツールを使った書き込みに切り替える必要があると思われます。
以上、基本的な使い方はまとめたつもりですが、多分足りてない情報もあると思うので、思いついたら適宜追加します。


