BM62/BM64のUI Toolを使う

MicrochpのBluetoothAudioモジュールの専用ソフトを使ってセッティングします。
DSP Tool, UI Tool, MPET Tool, EEPROM Toolは4つで1組となっています。

UI Tool はソフトウェアパッケージ内のTool > UI Tool 内に入っているexeファイルです。
外部アンプなどとの連動に使うIndピンや充電ソフトウエアのセッティングなど、BM62/64を使って基板を作るなら一度は目を通しておきたいツールです。


UI Toolを開く

UI Toolを起動すると Welcome to use Microchip Bluetooth UI Setting Tool! というダイアログが出てバージョン&デバイス画面が開きます。

Loadを押してデフォルトのファイルから1つ開きます。
BM62ならBM62EVB、BM64ならBM64EVBとついているファイルを開けば良いです。今回はBM62_EVB_StandAloneを開きました。

その後、IC Packageの設定を行います。BM62の場合はIS2062(アプリケーションノート情報)かBM62(評価ボード情報)、BM64の場合はIS2064CLS1(アプリケーションノート情報)かBM64CLS1(評価ボード情報)に設定します。

できたらEditを押して設定画面に入ります。


設定画面の説明

設定画面では『サポートするBluetoothプロファイル』『使用するボタン』『有効にする機能とピン』の設定ができます。
後の詳細設定画面ではMain Featureと呼ばれています。

Supported Profile

サポートするBluetoothプロファイルを選択できます。
https://ja.wikipedia.org/wiki/Bluetooth%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7
シリアルポートは使わないからSPPは無効にしておくとか、オーディオには使うけど通話には使わないからHFPを無効にするといったことができます。
一部のプロファイルを無効にしたからといって音質が向上したりはしません。

Button

有効にするボタンにチェックを入れます。普通のポータブルBluetoothオーディオなら全部有効で良いです。

Function Enable and GPIO Assignment

『関数の有効化とGPIOの割り当て』と訳せます。BM62/BM64は外部の回路と通信するためのピンをいくつか持っていて、その割り当てを設定します。

例えば、外部アンプを搭載して、モジュールのON/OFFに連動させてスイッチを入れるようにしたければ、Indication1にチェックを入れて、P0_4かP1_5を割り当てると電源がONの時だけ選択したピンがHIGH(またはLOW)となります。
他には、AUX Line Inにチェックを入れてP3_0を割り当てれば、Bluetooth再生中でもLineInにプラグを挿すとLineInに自動で切り替わるような挙動ができます。

Slide Switch

電源のON/OFFをスライドスイッチに連動させるときにチェックを入れます。
電源投入の方法はMFBを長押しするボタン、スライドスイッチ、電源ラインに電力がある限りずっとONになるDirectry、外部MCUからUARTコマンドを送る方法の4種類があります。

NFC Detect

NFCという方法でBluetoothペアリングをしたい場合にチェックを入れます。
評価基板によればNFCには別にアンテナが必要らしい…

Indication

BM62のON/OFFやBluetoothの接続情報を外部に出力するピンを有効にします。

Buzzer

ブザーを使用する場合にチェックを入れます。ブザーを使用するとペアリングした時などに音で外部に知らせてくれます。イヤホンに対しても音が出力されるので不要といえば不要。

CHG/AUX-IN Ind(LED3)

CHGモード、AUX-INモードで動作していることをLEDで知らせることができます。

AUX Line In

AUX入力時にGND電位に落とすと自動的にAUXに切り替わる…という動作ができるようになるピンを作製します。

UART Command

UART操作と、UARTコマンド操作中がわかるLEDの位置を指定します。RXを有効にするとMCUからUARTによる操作ができます。
これをEnableにしておかないと長時間の使用で突然制御不能になることがあります。Txだけでいいので必ずEnableにしておきましょう。

設定したらNextを押しましょう。


絶対に設定しておきたいタブ

各項目を説明するとすごく長いため、先に目を通しておきたいタブを紹介します。

設定で重要なのはMain Featureと呼ばれる最初のウィンドウとSys. Setup2、Button Setup、PMU Settingの3つのタブです。

Sys. Setup2

Sys. Setup2タブではデバイスの名前と、特徴(マイク付き、マルチリンク、外部アンプ搭載)を入力します。最低限確認しておくべき3+1項目を示します。

Name Flag Segmentでデバイスに名前を付ける

ペアリングする時に 表示される名前です。初期設定のままだとどんな設定がなされたデバイスなのかわかりませんから、番号を付けておくなりして区別しましょう。

Class Deviceでデバイスの機能を示す

以前も質問があって当時の知識で答えたのですが、BM62/BM64側にマイクを付けず、マイクだけはスマートホン内蔵の物を使いたいという場合はClass DeviceをSpeakerにすればマイクがないということをスマホに伝えることができるようです。この場合、すべての音声再生がBMモジュール経由で、マイク録音のみはスマホの内臓マイクから行われます。

Link Applicationに注意

普通のオーディオアンプとして使いたいときはSingle Linkで使います。Multi Linkですと余計なデバイスとペアリングしてシステム音などがミックスされて出てきてしまうことがあります。

リダイヤルに悩まされるときはButton Setup

MFBを電源ボタンに使っていると、電源を切ろうとした時に最後に通話した相手に電話をかけてしまうことがあります。これを防ぎたい時はFunction Mapping TableのBtn0 Long PressをNoneに変えましょう。

バッテリ内蔵ならPMU Settingは必ず見る

バッテリーはリチウムイオン(ポリマー)バッテリーを前提として設計されています。リチウムイオンバッテリは間違った使い方をすると危険な物ですから、充電設定には必ず目を通しましょう。ここも設定すべき3項目を示します。

Battery Detection

バッテリー電圧低下の警告です。バッテリー保護のためにEnableがおすすめです。普通にリスニングの邪魔なので鳴り始めたまま音楽を聴く、通話をすることはないと思いますから、警告電圧はデフォルトより低めにすると良さそうです。ちなみに、公称値では3.2V以上必要ですが2.8Vでも動きます。

Charging Detect Enable

充電機能の有効化です。内部充電機能を使うならEnable、外部に充電ICなどを設けるならDisableに設定しましょう。

Charging Current

最重要。一部の電池を除き、必ず電池容量未満に設定します。例えば100mAhの電池に101mAの設定するのは危険です。100mA未満の設定にしてください。

余談ですが、最大充電電流が350mAで連続充電時間が255分なので、2000mAhとか非常に大きな電池だとうまく充電できません。適度な大きさのものを使うか、専用充電ICを使ってください。モジュールの能力では1500mAhぐらいが上限になります。


お急ぎの方はここまで。以降は各タブをわかっている限り解説した辞書となっております。

Sys.Setup1

ここでは主にMain Featureで設定した内容の詳細設定の半分ぐらいを行います。一番最初のPower Switch Settingだけは確認しておきましょう。

Power Switch Setting

どのような方法で電源を投入するか選択できます。
デフォルトではMFBボタンの長押しで起動するか、電源ラインに電力が投入されている限り動き続けるDirectryです。
Main FeatureでSlide SwitchまたはUART Rxを選択している場合はそれらになる、またはそれらを選択することができます。

Buzzer Setting

Main FeatureでBuzzerを有効にしていた場合に設定できます。

Buzzer Output Type

ブザーのタイプを選びます。秋月電子で扱っているものはPulseタイプが多いようです。
このへん。 http://akizukidenshi.com/catalog/g/gP-09704/

Buzzer Default ON/OFF

普通はOffです。ブザーのデータシートを見て、負理論で動くような使い方をするならONにしましょう。

Uart Setting

CPU Idle Mode

モジュールのON/OFFにかかわらずUARTを送受信できる状態にするかを選びます。
Disableの場合は手動で電源を入れるか、Power On by “Power On” CommandをEnableにしてPower Onコマンドを送ってからでないと通信できません。

CLIP Name or Number

電話がかかってきた時の情報をMCUに渡す時、番号優先にするか名前優先にするかを選ぶことができます。

Power On by “Power On” Command

UART Rxを有効にしているときだけ設定できます。
有効にすることで外部MCUから電源を入れることができます。

NFC Setting

NFCに関する設定ができます。
Main FeatureでON/OFFのセッティングができるので、こちらでは待ち時間のみの設定となります。

Link Quality Setting

Bluetoothの通信状態を検出します。

User MMI Data Setting

組み込みアプリの定義済みユーザーデータを有効にします。


Sys.Setup2

ここではBluetoothペアリングに関する設定と外部に状態を出力するIndicationピン、その他細かな設定を行うことができます。
Bluetoothの部分は基本的にはそのままでOKで、Indicationも使う場合だけいじれば良いです。

Name Flag Segment

ペアリングするときに表示されるデバイスの名前を入力します。オリジナリティをアピールできるポイントです。

Security

Simple PairingをDisableにするとペアリング時にPINCodeの入力を要求できるようになります。

Misc Option

ペアリングに関係する様々なオプションです。

Enable Pairing as Standby Mode

電源OFFの時にペアリングモードにするかを選択します。

Enter Pairing Mode When Power On

電源をONにしたとき、強制的にペアリングモードに入ります。
Disabelの時は設定次第ですが前回ペアリングしたデバイスに接続します。

Suspend Stream When SCO Establish

マルチリンクモードで有効な設定です。
AB2機のスマートホンに接続していて、Aのスマートホンで音楽を流しているとき、Bのスマートホンに電話がかかってきた場合、Aの音楽を一時停止します。

Circular Volume Control

ボリュームをサーキュラーコントロールにします。
試してませんが、たぶん音量最大の時にさらに音量を上げると、ミュート→最小となるんだと思います。

Class Device

Headset か Speakerから選びます。
接続した相手からどのように認識されるかということで、
Headsetだとマイクの接続をされ、Speakerにしておけば通話時もマイクはスマホ本体のものが使用されます。たぶん。

Phone NR and EC Function

ペアリングした電話にノイズリダクションとエコーキャンセルをさせるかどうかを選択します。
DSP Toolでノイズリダクションとエコーキャンセルを設定しているので、基本的には『Disable』を設定します。

Report Battery Status to Smart Phone

BM62/BM64に接続されているバッテリー電圧をスマートホンに表示できるようにします。

Link Application

シングルリンク:スマホなどと1対1で接続します。
マルチリンク:複数のスマホなどBluetooth対応機器と接続し、それぞれで鳴っている音をミックスして出力します。

Always Answer incoming Call

これをEnableにするとかかってきた電話に自動で出るようになります。

Auto Answer Incoming Call

HFリンクでリンクバックしていて着信した場合、着信に自動応答する。

Hung Up a Call When Switch Off

スライドスイッチをOffにしたとき、電話も切ります。

Shut Down Power Off State

スイッチOffの時にシャットダウンします。MFBによるスイッチを行うときは必ずEnableにしておかないと変な挙動になります。

Wide Band Speech Enable

コーデックネゴシエーションの使用を選択します。

Disconnect BR/EDR Link WhenEnter Pairing

ペアリングが完了した場合BR/EDRでの接続を解除します。
デフォルトはDisableです

Keep BLE in Power off state

モジュールがPower offになった時にBLEの接続を維持するか選択します。
多分スマホアプリと連携するときに使える項目で、スイッチをMFBで行うときは上手く使えないのだと思います。

SPP and BLE Coexsits

SPPとBLEの共存を有効にするために使用されるオプション

Disable Link Back When Remote No Link Key

電話からリンクキーが削除されたときにポップアップを無効にし、BM6Xデバイスの電源を入れ直します
最新版のDSPK2.1.1では4時間ぐらいで接続が切れてしまい操作不能になる不具合がありますが、これをEnableにしておけば接続が切れると同時に電源も切れるので操作不能になることを防げます。

AVRCP Version Option

AVRCPプロファイルのバージョンの設定です。最新にしておけば間違いないです。

Indication

Indicate Pin 1 Polarity でHigh ActiveにするかLow Activeにするか選びます。
その後、どの状態でピンをアクティブにするかの設定をしましょう。
例えば、High Activeに設定してExtanal Amplifer IndicationをEnableにし、設定したピン(P0_4かP1_5)をADP150などイネーブルピン付き電源ICに入力することで、電源OFF時に消費電力を抑えた外部アンプを制作することができます。

Factory Default Setting

電源Off、設定値×80msボタンを押し続けると出荷状態にリセットするらしいです。
出荷状態というのが何を指しているのかは不明です…。

Mono Device Audio Gateway Information

この機能を有効にして下のAGアドレスを入力すると、システムはオーディオゲートウェイに接続します。

Sys.Setpu3

ここは電源をONにしたときの自動リンクバック(ペアリングの復帰)、ボタンの押し時間などを指定します。
基本的にいじらなくていいです。

Connection Setting

電源をONにした時、自動でペアリングを復帰する設定をします。
自動復帰をOffにする場合はPower On Link Back SettingをDisableにします。
デフォルトでは最大8個のデバイスのうち、範囲内に存在するデバイスとペアリングします。
マルチリンク設定の場合、範囲内全てのデバイスの音がミックスされます。
設定によって、前回最後に接続していたデバイスのみにリンクバックすることもできます。

Button Press Duration

どれだけボタンを押し続けるとどのような動作をするかという設定をします。
基本的にはそのままでOKです。

Warning Time

バッテリー電圧低下などの警告アラームの設定です。これも特に変更する必要はありません。

Power Save

オートパワーオフに関する設定です。
Auto Power Offを有効にすると以下の状態でパワーオフします。
Bluetooth接続が有効ではないとき。
Auto Power Off Timerがタイムアウトした時。
キー操作がされなかったとき。
全てのプラグが挿されなかった時。
Line Inが無信号状態の時

LED Setup

実装されている2種類のLEDに流す電流と、発光パターンを設定することができます。流す電流を16段階で設定しましょう。
発光パターンはBluetoothで一般的な発光パターンらしいのであまり気にしなくて良いかと思います。
赤青の丸いマークのところを押すと、発光パターンを確認できます。

Tone Setup

モジュールを操作した時に鳴る様々な操作音を設定できます。
外部からwav形式の音声を登録することもできます。
オリジナル痛アンプの制作にどうぞ。

Add Voice Prompt Tone / Multi Tone

Voice Prompt Toneにはwav形式のオーディオプロファイルを読み込めます。オーディオファイルの条件は、
・16bitサンプリングレート8kHz
・48kB以下(たぶん)
です。42kBのファイルは読み込めて、52kBのファイルを読み込んだらフリーズしたので48kBが上限なのではないかな、と考えています。

Multi-Toneにはmid形式のファイルを読み込むことができ、電子音で再生されます。

Current EEPROM Sizeについてですが、 内蔵EEPROMのサイズが128kB なので、これを超えないようにしましょう。 システムファイルと合わせて128kBに収まるように、目安としては120,000 byte以下になるようにします。

Tone Setting

各場面での効果音を設定します。
オリジナルの効果音を設定した場合は一番下に出てきます。

Button Setup

BM62/BM64は最大6個のボタンを有効にすることができ、プルアップ等は不要で対応するピンとGNDもしくはモジュール本体から出る3.3Vピンとの間にスイッチを取り付けるだけで動作します。
ピン・アサインには一応デフォルトのボタン機能が書いてありますが、ここで設定し直すことでMFB以外のボタンに自由に機能を割り当てることができます。

Button Option

BM62/BM64はボタンを長押しした時、さらに一定時間押し続けられていた場合、再び長押しに割り当てた機能を実行できます。この機能をLong Press Repeatといって、どれだけ押し続ければ再び機能が実行されるかを設定できます。
また、Long Press Repeatは一部のボタンだけ有効にするということが可能であり、有効にするボタンも選択しましょう。

最後のHS Button Mapping は有効にするボタンの設定です。Main Featureで設定した通りになっているはずなので、特に変更の必要はありません。

Combine Key Setting

実はBM62/BM64はボタンに同時押しやダブルクリックを割り当てることができます。同時押しとダブルクリックは合計4つまで、Special Functionとして設定できます。

Profile Setting

ここはMain Featureで設定した通りになっていますので、そのままにします。

Function Mapping Table

通話状態に応じて各ボタンの機能を割り当てます。
オーディオアンプとして使う場合は一番上のブロックを設定しましょう。
デフォルトだとMCU長押しでリダイヤルするので、電源を切ろうとすると電話をかけてしまいます。

それ以外は気が向いたら書きます。

PMU Setup

電源管理に関する項目です。デフォルトではリチウムイオン電池を充電してくれないので、少し調整する必要があります。

Battery Detection

バッテリーの保護機能です。過放電を防ぐためEnableしておくのがおすすめです。
ただし、バッテリ警告音が鳴るとうるさくて音楽は聞けたものではないので、Warning Levelはなるべく下げたほうが良いと思います。
Shut Down Levelはバッテリ電圧が低下した時強制的にシャットダウンする電圧レベルです。Warning Level -0.1Vとか適当な値にします。
一応リチウムイオン電池の電圧は規格の上では2.8V~4.2Vらしいので余裕を持った値にしましょう。

Charging Setting

充電の設定です。繋いで設定すれば充電してくれるとはいえ、リチウムイオンバッテリは扱いを間違えると危険なものですのでよく読んで安全な設定をしてください。

Charging Detect Enable

バッテリーチャージャー機能を有効にします。これがEnableになっていないと充電してくれません。

Advance Charger Enable

満充電になった後30分間追加で充電します。電池持ちは良くなりますが、当然定格外の使用ですので、バッテリーの寿命は縮みます。
Advance Charge対応のリチウムバッテリなるものが存在するらしいので、そういうものを使う以外はDisableで良いでしょう。

Re-Charging As Charge Complete

一度満充電された後バッテリ電圧が下がってきたら再び充電します。Disableの場合、USBプラグを挿し直すまで再充電されません。基本Enableでいいと思います。

Charging Current

定電流充電するときの充電電流です。リチウムイオン電池は多くが1C充電なので、電池の容量以下の電流を指定します。また、充電時間が255分以下になるようにしなければならないので、電池容量の1/4以上電池容量以下の値を指定することになります。

Constant Voltage Charging OK Current

定電圧充電モードになった後電流がどの程度まで少なくなったら充電を停止するかというパラメータです。特別に理由がなければ初期値の13%でOK。

Constant Current Protect Time

定電流モードでの充電を連続して行う最大の時間を示しています。短すぎると最後まで充電してくれないので、電池容量÷Charging Current より少し多いぐらいを単位”分”で入力すると良いでしょう。

Constant Voltage Protect Time
Reviving Charging Protect Time

それぞれ定電圧モードでの充電時間と再充電モードでの最大充電時間です。適宜調整してください。

Disallow SHS Active As Chrging

これをEnableにすると充電中はシステムを起動できなくなります。実装している回路によりけり、Disableにして使用することも可能です。

Ambient Temprature Chrging Detection

温度センサを有効にするかどうかの項目です。Enableにすると温度センサが有効になり、リチウムイオン電池の動作温度外で充電しなくなるので安全です。
絶対に動作温度外の環境に置かない試作機であればDisableも選択肢に入ります。

High Temp. Stop Charging
Low Temp. Stop Charging

それぞれ、動作する最大温度と最低温度です。45℃~10℃になっています。

CODEC Setup

オーディオコーデックに関する設定です。オーディオモジュールではありますが、設定が必要な内容はあまり多くありません。

Speaker Output

Single End出力にするとLRがミックスされてモノラルになるみたいです。
通常のヘッドホンアンプとして使用する限りはCapless Speaker Outputで良いです。Single End Speaker OutputとSingle End External Ampの違いは不明…

Filter Type For Stereo Audio Quality

デジタルフィルタの種類を選ぶことができます。初期設定ではFilter2です。音声通話も考慮しているからでしょうか。あるいは、コモン端子のインピーダンスが高くても自然に聴こえるようにしてくれているのかもしれません。
Filter 1 クリア
Filter 2 ウォームボイス
Filter 3 17kHzまで拡張したFilter2
Filter 4 15kHzまで拡張したFilter2

Enable LR Sound Cannel Swap

LRの入れ替えです。コネクタのピン位置の都合などでLRを入れ替えたい時はSwapに設定しましょう。

Enable LR Sound Mix

LRの音声をミックスしてモノラルにします。前述のSpeaker Outputとどう違うのかはよくわかりませんが、Capless Speaker Outputの時はDisableとし、Single End出力の時はEnableにしておけば間違いないのではないでしょうか。

DSP CODEC Always On Enable

Bluetoothから受け取る音声信号が一定時間無信号の時に内コーデック(DAC)をスリープして消費電力を抑える設定を解除します。コーデックのが起動/終了するときにはプチッとノイズが乗りますが、大抵のスマートホンが搭載している機能なのでDisableで大丈夫だと思います。

Close CODEC Time

DSP CODEC Always On EnableをDisableにしているときだけ有効です。音楽再生が終わって無音信号が始まってからどれだけ時間が経ったらコーデックをスリープするか設定します。

SDM Order

内蔵ΔΣDACのオーバーサンプリング次数のようです。3rd固定です。
-40dBのノイズシェービングが有効になっているそうですので、高域側に移動したノイズを除去するために外部ローパスフィルタを取り付けたほうが良さそうです。

Extanal CODEC

BM64(チップがIS2064)の場合のみ選択可能で、コーデック(DAC)に内蔵の物を使うか外部に設計するか選べます。内部DAC設定でもI2Sは出るのか?などは不明です。

Audio SRC

BM64はクロック周波数を選択する機能を持たないので、サンプリング周波数は統一してやる必要があります。これをEnableにするとサンプリングレート44.1kHzのデータを48kHzにして出力します。

Voice SRC

8kHzまたは16kHzの音声を48kHzにコンバートして出力します。外部DACで8kHzや16kHz対応というのはなかなか聞かないので、使い道はありそうです。

Voice Stereo
Tone Stereo

Voice SRCが有効の時のみ設定でき、LR両方のチャンネルに音声や効果音を出力します。ここでいう音声や効果音はシステム音声のことを指しているように思います。使ったことないので確かではありませんが。

I2S Shutdown

コーデックを設定して状態をリセットした後、i2sはシャットダウンします。

Line-In Setting

AUX入力に関係する設定です。ここを設定することでAUX入力の使い勝手が良くなりますので、AUX端子を備える基板を設計したときはいじっておきましょう。

Stereo Line in Loop Back

Main Feature でAUX-InをチェックしていればEnableになります。
電源を入れた時、AUXに信号が入力されていればAUX入力の音声が再生されます。

Line In Prioruty

アナログ入力とBluetoothどちらを優先して認識するかを選択できます。

Line In Mute/Unmute

EnableにするとAUXモードで動作している時Play/Pauseボタンでミュートできます。
AUX入力はアナログ信号を出力に渡しているだけなので、当然ながら曲が一時停止するわけではありません。

Line In Silence Detect

AUXモードでの無信号検出を有効にします。
きちんと確かめたわけではありませんが、DSP Toolで決めた振幅より入力信号が小さい場合、一定時間経つとコーデックがスリープする機能だと思われます。

Line-in Path

AUX入力を再サンプルしてアンプから出力するDigital Pathかアナログで出力に渡すAnalog Pathか選べるらしいです。アナログモードの時に本当に直結されるのかは不明ですが、AUXに入力されるラインのインピーダンスに関係なく再生できるDigital Pathが安定だと思います。

Line In Indicate Led Ctrl

EnableにするとLine InがONの時にP2_4に信号を出力します。LEDを接続してAUX入力使用中の表示にしたりできます。

Line In Detect by GPIO

有効にするとP3_0がGND電位になった時自動でAUXに切り替わります。4極ジャックを使って、3極プラグを挿したときにGNDに落ちる端子を作って自動切換えを実装できます。

Sample Frequency for Digital Line In Mode

Digital Pathの時のサンプリング・レートを選べます。

Amplifer Control Settings

音声入力が無信号の時に外部アンプに対して出力する信号の設定ができます。初期値はDisableですが、少しでも消費電力を減らしたい時などには使ってみるのが良いでしょう。

Codec Type Setting

AACコーデックを有効にするにはここにチェックを入れる必要があります。


iAP Setup

初期設定のままで大丈夫です(気が向いたら書きます。)


BLE Setup

初期設定のままで大丈夫です(気が向いたら書きます。)
Device NameはマイクロチップのBLEアプリでの表示名になり、Sys. Setup2で設定した物とは別に入力する必要があります。オリジナルのデバイス名をつけて主張しましょう。


GATT Service Table Setup

初期設定のままで大丈夫です(気が向いたら書きます。)


おわりに

これでUI Toolを使って設定が可能な全機能をほとんど解説しました。
なるべく間違いは無いようにしていますが、HELPを雑に訳しただけだったり説明が不足している部分はあると思います。使ってみた時の情報が手に入れば更新していく予定です。
情報お待ちしております…。

以上、BM62/BM64のUI Toolを使うでした。

次はMPET Toolでファイルを合成します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください