概要
1-Wire®は、アナログ・デバイセズ独自のインターフェース技術です。本稿では、同技術を活用したTWS(True Wireless Stereo)イヤフォン(完全ワイヤレス・イヤフォン)のリファレンス設計を紹介します。そのリファレンス設計では、1-Wire技術に対応するデュアルポート・リンクIC「DS2488」を使用します。それにより、データ通信と電力伝送の要件を満たしつつ、消費電力の削減、精度の向上、小型化、効率の向上といった多くのメリットを得ることができます。このリファレンス設計は、TWSイヤフォン向けの理想的なソリューションだと言えます。
はじめに
TWSイヤフォンの最大の魅力は、ワイヤレスで使用できることによる利便性にあります。しかも、Bluetooth®をベースとする従来のイヤフォンと比べて、TWSイヤフォンには多くのメリットがあります。例えば、小型で音質に優れ、高い安定性が得られるといったことです。また、ある程度の耐水性やインテリジェンスな機能も提供されます。このような理由から、TWSイヤフォンに対する消費者の関心は急速に高まっています。実際、TWSイヤフォンの出荷台数と市場規模も拡大し続けています。それを受けて、民生向けエレクトロニクスの分野では、TWSイヤフォンに最適な技術の研究や製品の開発が進んでいます。
システムのアーキテクチャ
本稿では、TWSイヤフォン向けのリファレンス設計である「MAXREFDES1302」を紹介します。このリファレンス設計の最大の特徴は、アナログ・デバイセズの1-Wire技術を採用している点にあります。そのアーキテクチャは、図1に示すように充電クレードルとイヤフォンにそれぞれ対応する2つの回路から成ります。
充電クレードルの回路では、3.7V、1500mAh、単一セルのリチウム・イオン・バッテリを使用します。また、同バッテリの充電には、USB Type-Cのプロトコルに対応したチャージャIC「MAX77751」が使われます。システム全体の充電は、USB Type-Cに対応する1本のケーブルを使うだけで実施可能です。電源電圧については、まず昇圧コンバータ「MAX17224」を使用して、MAX77751から出力されるシステム電圧を5Vに昇圧します。それを基に、降圧コンバータ「MAX38640」を使用してマイクロコントローラ「MAX32655」向けの3.3Vの電源電圧を生成します。また、MAX17224が生成した5Vの電圧は、1-Wireに対応する制御回路を介し、イヤフォン側のシステムを充電するための電源として伝送されます。更に、充電クレードルでは、電流検出抵抗を内蔵した残量ゲージIC「MAX17262」を使用することで、バッテリの監視を行います。同ICは、従来の電量計にModelGauge™ m5 EZという新たなアルゴリズムを組み合わせることで実現されています。高い柔軟性で構成を行うことが可能な使いやすい製品であり、バッテリの特性評価を追加で実施する必要はありません。充電クレードルで使用しているMAX32655は、Bluetooth 5.2に対応する回路とSIMO(Single Inductor Multiple Output)に対応する電源回路を内蔵したマイクロコントローラです。一般的な通信インターフェースや一部のGPIO(汎用I/O)を1-Wire対応のインターフェースとして構成し、イヤフォン側の回路に実装されたDS2488を制御することができます。1-Wire技術を利用できることから、通信と充電における利便性が高まります。また、充電クレードルが備えるSWD(Serial Wire Debug)インターフェースを使えば、評価キット「MAX32625PICO」に接続することができます。同キットをプログラミング用のプラットフォームとして使用することで、MAX32655のファームウェアを容易に更新することが可能になります。加えて、仮想シリアル・ポートを介して、バッテリの情報をコンピュータ機器に表示するといったことも行えます。バッテリの情報は、充電クレードルの有機EL画面に表示することも可能です。
イヤフォン側の回路では、3.7V、130mAh、単一セルのリチウム・イオン・バッテリを使用します。この回路に実装されたDS2488は、イヤフォン側の回路とクレードル側の回路の間でデータ通信を行うことを可能にします。加えて、同ICは、クレードル側の回路から供給される5Vの充電用電圧を制御する役割も果たします。イヤフォン側の回路でも、マイクロコントローラとしてMAX32655を使用しています。同ICは、UART(Universal Asynchronous Receiver/Transmitter)インターフェースを使用して1-Wireに必要なタイミングに対応し、DS2488に対する読み書きを行います。クレードル側のMAX32655と同様に、SWDインターフェースを使用してMAX32625PICOに接続することで、プログラムの更新を容易に実現できるようになります。イヤフォン側の回路では、チャージャICとして「MAX77734」を使用しています。同ICはLDO(低ドロップアウト)レギュレータを内蔵しており、MAX32655に対して3.3Vの電源電圧を供給します。この3.3Vの電源電圧に加え、MAX32655が内蔵するSIMO対応の電源回路で生成した1.8V、1.2Vによって、オーディオ・コーデック「MAX98050」に対する給電を行います。イヤフォン側の回路でも、残量ゲージICとしてMAX17262を使用することによってバッテリの監視を行います。
図2に、このリファレンス設計の外観を示しました。クレードル側の基板のサイズは10.20cm×5.80cmです。一方、イヤフォン側の基板のサイズは10.20cm×6.50cmです。このリファレンス設計は、お客様による設計、テスト、検討を支援するためのプロトタイプです。テストを容易化するための機構を簡素化すれば、更なる小型化を図れます。つまり、TWSイヤフォンに求められるサイズの要件を満たすことが可能です。
1-Wireによるデータ通信、電力伝送
TWSイヤフォンでは、充電クレードルとイヤフォンの間のデータ通信と電力伝送を確実かつ簡便に実現することが非常に重要です。現在市場に出回っている一般的なTWSイヤフォンは、通常、3つ以上の接点を使用して充電クレードルに接続します。それらを使って、メッセージの交換や電力の伝送を行うということです。しかし、接点の数が多いということは、通常、システムのコストが増大するということを意味します。つまり、低コストであることが求められるウェアラブル製品に大きな悪影響がもたらされるということです。加えて、接点の数が多い場合、通常は機器のサイズが大きくなります。これは、TWSイヤフォンで求められる小型化という要件に反します。更に、接点の数が多いと、システムが故障する可能性が高くなります。これらの課題を解消するために、図1のリファレンス設計では、アナログ・デバイセズの独自技術である1-Wireを活用しています。つまり、この設計においては、同技術を採用したデュアルリンク・ポートであるDS2488が重要な要素だということです。DS2488は、TWSイヤフォン向けに特別に設計されました。これは、イヤフォンと充電クレードルの間でデータ通信と電力伝送を行うために使用します。1-Wireのプロトコルに対応しているため、1本のワイヤを使うことでデータの交換と電力の伝送に対応できます。システムには、イヤフォンと充電クレードルのグラウンドを接続するための接点がもう1つ必要になります。とはいえ、ソリューション全体としては2つの接点しか必要としません。そのため、信頼性が大幅に向上すると共に、システムのサイズとコストを削減することができます。図3に示したのが、このリファレンス設計において1-Wireに関連する部分です。この構成により、データ通信と電力伝送が実現されます。
DS2488の動作原理
DS2488は、1-Wireに対応するデュアルポート・リンクです。図3に示したように、1-Wireに対応する通信用のピンとしてIOAとIOBを備えています。これらのピンを介して、クレードル側とイヤフォン側の各マイクロコントローラから制御されます。つまり、IOAピンは充電クレードル側のマイクロコントローラによって制御され、IOBはイヤフォン側のマイクロコントローラによって制御されるということです。IOAピンは、最大5.5Vの入力電圧に対応します。そのため、1-Wireのバス(IOA)を使って通信/充電用の様々なレベルに対応することができます。また、DS2488はユーザが識別と認証を行えるようにするための64ビットのROMを備えています。このROMには、固有のIDのデータが格納されています。加えて、DS2488は、8バイトのバッファを内蔵しています。これを利用することで、マイクロコントローラによって読み書きを行ったり、クレードル側とイヤフォン側の各バッテリの情報をリアルタイムに更新したりすることが可能になります。このリファレンス設計の場合、バッファには表1に示す情報が格納されています。
インデックス | 情報 |
ビット7 | 予約済み |
ビット6 | クレードルのバッテリの容量(千の位と百の位)〔mAh〕 |
ビット5 | クレードルのバッテリの容量(十の位と一の位)〔mAh〕 |
ビット4 | クレードルのバッテリの充電状態〔%〕 |
ビット3 | イヤフォン(右)のバッテリの容量〔mAh〕 |
ビット2 | イヤフォン(右)のバッテリの充電状態〔%〕 |
ビット1 | イヤフォン(左)のバッテリの容量〔mAh〕 |
ビット0 | イヤフォン(左)のバッテリの充電状態〔%〕 |
DS2488のTOKENピンは、同ICの制御ステータスを表します。TOKENピンが論理レベルのローを出力している場合、クレードル側のマイクロコントローラがDS2488の制御権限を有しています。一方、TOKENがハイを出力している場合には、イヤフォン側のマイクロコントローラがDS2488の制御権限を有していることになります。また、DS2488のCD/PIOCピンは、充電クレードルを制御してイヤフォンを充電するために使用します。1-Wireのバス(IOA)の電圧が4Vより低い場合、CD/PIOCピンはハイ・インピーダンスの状態になります。つまり、このピンに接続されたトランジスタはオフになり、充電が停止します。一方、1-Wireのバス(IOA)の電圧が4Vより高い場合には、CD/PIOCピンの出力がローになります。それによりトランジスタがオンになり、1-Wireのバス(IOA)の電圧がイヤフォン側のチャージャに直接伝送されて充電が始まります。充電と通信を行うタイミングは、クレードル側で5Vに接続されているMOSFETによって決まります。このMOSFETは、クレードル側のマイクロコントローラによってターンオン/ターンオフされます。イヤフォンと充電クレードルの使用状態は、以下の3つに大別されます。
イヤフォンがクレードルに接続されており、クレードルのカバーが開いている:
この場合、クレードルのマイクロコントローラは MOSFETをオフにし、DS2488 の制御権限を取得します。このとき、TOKEN ピンはローを出力し、CD/PIOC ピンはハイ・インピーダンスになります。クレードルは、1-Wire のバス(IOA)を介して DS2488 の 8 バイトのバッファからデータを読み出し、イヤフォンのバッテリの情報を取得します。その上で、バッファに対するデータの書き込みを行い、クレードルのバッテリの情報を更新します。この時点で充電は停止され、通信が始まります。
イヤフォンがクレードルに接続されており、クレードルのカバーが閉じている:
この場合、クレードルのマイクロコントローラによってMOSFET がオンになり、1-Wire のバス(IOA)を介して 5Vの電圧がイヤフォンに直接伝送されます。このとき、TOKENピンはハイを出力し、CD/PIOC ピンはローを出力します。クレードルから伝送された 5V の電圧によって、イヤフォン側のバッテリが充電されます。一方、イヤフォンのマイクロコントローラは DS2488 の制御権限を取得し、1-Wire のバス(IOB)を介して 8 バイトのバッファに対する読み書きを行います。つまり、イヤフォンのバッテリの情報を更新し、クレードルのバッテリの情報を取得します。この時点で通信は停止し、充電が始まります。
イヤフォンがクレードルに接続されておらず、クレードルのバッテリが切れかかっている:
この場合、1-Wire のバス(IOA)と CD/PIOC ピンはハイ・インピーダンスになり、TOKEN ピンはハイを出力します。このとき、イヤフォンのマイクロコントローラは DS2488 の制御権限を取得し、1-Wire のバス(IOB)を介して 8 バイトのバッファにデータを書き込みます。それにより、イヤフォンのバッテリの情報が更新されます。
1-Wireによるデータ通信
先述したように、このリファレンス設計では、DS2488によってクレードル側のマイクロコントローラとイヤフォン側のマイクロコントローラの間の通信を実現します。つまり、同ICをブリッジとして利用するということです。同ICは、1-Wireの一般的な通信プロトコルに対応しています。そのプロトコルでは、リセットと応答のタイミング、読み出し/書き込みのタイミングなどが規定されています。各タイミングについては、図4、図5に示すように定められています。ご覧のように、Write-One、Write-Zero、Read Dataのタイム・スロットが規定されています。タイム・スロットの持続時間については、DS2488のデータシートをご覧ください。
1-Wireに対応するデバイスは、すべてステート・マシンを備えています。その状態遷移図を図6に示しました。図4に示したように、マイクロコントローラがDS2488にリセット信号を送ると、1-Wireのバスは48マイクロ秒~80マイクロ秒の間ローに引き下げられます。その後、バスはプルアップ抵抗によってハイ・レベルに引き上げられて解放されます。バス上にDS2488が存在する場合、DS2488はリセット信号に応答します。それにより、48マイクロ秒にわたって1-Wireのバスが解放された後、6マイクロ秒~10マイクロ秒の間、再びローに引き下げられます。このとき、マイクロコントローラは1-Wireのバスのレベルが変化したことを検出します。同バスが再びローに引き下げられたかどうかを検出することで、同バスに接続されているDS2488が存在するか否かを判断することができます。
DS2488がリセット信号に応答すると、マイクロコントローラはROM機能コマンド(ROM Function Command)を送信します。1-Wireをサポートするすべてのデバイスは、同じROM機能コマンドに対応しています。表2に、一般的なROM機能コマンドについてまとめました。このリファレンス設計では、クレードルは2つ(左右)のイヤフォンに対応します。そのため、2つのDS2488が1-Wireのバス(IOA)に接続されています。Read ROMコマンド(0x33)とMatch ROMコマンド(0x55)を使用すれば、1-Wireのバス(IOA)に接続された2つのDS2488のROM IDを読み出すことができます。それらのROM IDとDS2488を照合することで、左右のイヤフォンの識別/選択が可能になります。
ROM機能コマンド | コード | 説明 |
Search ROM | 0xF0 | バス上のすべてのデバイスのROM IDを読み出す |
Read ROM | 0x33 | バス上の1つのデバイスのROM IDを読み出す |
Match ROM | 0x55 | 特定のROM IDに対応するデバイスを選択する |
Skip ROM | 0xCC | バス上の1つのデバイスのみを選択する |
ROM機能コマンドを送信した後、マイクロコントローラはデバイス機能コマンド(Device Function Command)を送信します。それにより、デバイスに対する更なる制御を実行します。1-Wireに対応していたとしても、異なるデバイスでは異なるデバイス機能コマンドを使用します。表3は、DS2488の一般的なデバイス機能コマンドについてまとめたものです。このリファレンス設計では、Write Bufferコマンド(0x33)とRead Bufferコマンド(0x44)を使用してDS2488の8バイトのバッファに対する読み書きを行います。それにより、クレードルとイヤフォンの間でバッテリの情報を交換します。
デバイス機能コマンド | コード | 説明 |
Write Configuration | 0x11 | DS2488に構成情報を書き込む |
Read Configuration | 0x22 | DS2488の構成情報を読み出す |
Write Buffer | 0x33 | DS2488のバッファにデータを書き込む |
Read Buffer | 0x44 | DS2488のバッファからデータを読み出す |
Read Status | 0x55 | DS2488のステータス情報を読み出す |
クレードル側のマイクロコントローラ(MAX32655)のGPIOの う ち2つ の グ ル ー プ(P0.6とP0.7、P0.18とP0.19) を、1-Wire対応モジュールのOWM_IOピンとOWM_PEピンとして構成することにより、DS2488とのデータ通信と電圧伝送(5V)を実現することができます。このリファレンス設計では、MAX32655のOWM_IOピンをDS2488のIOAピンに接続しています。それにより、クレードル側のマイクロコントローラとイヤフォン側のDS2488の間で1-Wireによる通信が実現されます。
市販のマイクロコントローラ製品が、1-Wireに対応するインターフェースを搭載しているとは限りません。このことを考慮し、イヤフォン側のマイクロコントローラはUART対応のインターフェースを使用して1-Wire対応のタイミングを実現し、IOBピンを介してDS2488との通信を行います(図3)。同マイクロコントローラは、UARTのボー・レートを特定の値に設定し、特定のコード・パターンを送信することによってこの機能を実現します。図4に示したリセットとプレゼンスのシーケンスを例にとると、ボー・レートが115200の場合、UARTによって1ビットのデータを送受信する期間は約8.68マイクロ秒になります。したがって、1バイトに対応する時間は約69.44マイクロ秒です。0xE0(LSBファーストの11100000)は、1-Wireにおけるリセットのタイミングに正確に対応しています。そのため、これを1-Wireにおけるリセット信号として送信することができます。この場合、マイクロコントローラがTXピンを介して0xE0(1-Wireにおけるリセット信号)を送信すると、1-Wireのバス(IOB)上にあるDS2488はそのリセット信号に応答します。その結果として、バスが6マイクロ秒~10マイクロ秒の間ローに引き下げられます。このとき、RXピンで受信する信号は0xC0(11000000)または0x80(10000000)になっているはずです。マイクロコントローラは様々なコード・パターンを送受信し、受信信号と送信信号を比較することにより、UARTを使用して1-Wireのタイミング機能を実現することができます。
1-Wireによる電力伝送
図3に示したように、クレードル側のマイクロコントローラは、OWM_PEピンを使ってMOSFETのターンオン/ターンオフの制御を行います。MOSFETがオフの場合、システムは1-Wireによるデータ通信を行います。一方、MOSFETがオンである場合には、1-Wireのバス(IOA)を介して5Vの電圧がイヤフォン側に伝送されます。DS2488が5Vを検出したら、すぐにCD/PIOCピンからローが出力されてトランジスタがオンになります。それにより、バッテリ・チャージャ(MAX77734)に5Vが伝送され、イヤフォンのバッテリが充電されます。
電源の構成とバッテリ・マネージメント
クレードルの電源システム/バッテリ・マネージメント・システムは、USB Type-Cに対応するチャージャIC(MAX77751)、残量ゲージIC(MAX17262)、昇圧コンバータ(MAX17224)、降圧コンバータ(MAX38640)で構成しています。一般に、単一セルのリチウム・イオン・バッテリの充電終止電圧は4.2Vです。そのため、より具体的な品番で言うと、チャージャICとしては「MAX77751CEFG+」を使用します。その充電電流は、IFASTピンとITOPOFFピンに接続した抵抗によって設定します。このリファレンス設計では、ニーズを考慮して500mAの急速充電電流と100mAのトップオフ電流を選択しています。そのために設定すべき抵抗の値は、それぞれ2.4kΩと8.06kΩです。残量ゲージICであるMAX17262は、アルゴリズ ムとしてModelGauge m5 EZを採用しています。それにより、バッテリの容量、終止電流、充電電圧の閾値といったパラメータを設定すれば、バッテリの特性評価を追加で実施することなく、自動的にバッテリの測定を行えるようになっています。昇圧コンバータのMAX17224と降圧コンバータのMAX38640については、それぞれSELピンとRSELピンに接続した抵抗によって出力電圧を設定します。このリファレンス設計では、5Vと3.3Vを得るために、それぞれの抵抗値としては0Ωと56.2kΩを選択しています。
イヤフォン側の電源システム/バッテリ・マネージメント・システムは、チャージャIC(MAX77734)と残量ゲージIC(MAX17262)で構成しています。マイクロコントローラ(MAX32655)が備えるSIMO対応の電源回路は、システム向けに1.8Vと1.2Vの電源電圧を生成します。LDOレギュレータの出力としては3.3Vが1つあればよいので、チャージャICとしては具体的には「MAX77734GENP+」を使用しています。このチャージャICは、I2Cを介して、工場から出荷されたときの状態、シャットダウンの状態、スタンバイの状態に構成することができます。これを利用すれば、バッテリの寿命を延伸することが可能です。MAX32655は、SIMOをベースとする4つの出力を備えています。それぞれ、異なる電圧を出力するように構成することが可能です。
ファームウェアの設計
図7に、クレードル側に実装するファームウェアのフローチャートを示しました。電源の投入後、クレードル側のマイクロコントローラはGPIOを初期化し、残量ゲージICと有機ELモジュールの構成を行います。次に、マイクロコントローラはクレードルのカバーのステータス情報についてのポーリングを行います。クレードルのカバーが閉じている場合、マイクロコントローラは1-Wire対応のモジュールをディスエーブルにし、5Vの充電電圧を1-Wireのバス(IOA)に印加してイヤフォンを充電します。マイクロコントローラは、クレードルのバッテリの残量が5%未満であることを検出したら充電を停止します。クレードルのカバーが開いている場合、マイクロコントローラは5Vの充電電圧をディスエーブルにします。また、1-Wire対応のモジュールをイネーブルにしてDS2488のバッファに対する読み書きを行います。クレードルとイヤフォンのバッテリの情報は、有機ELモジュールまたは仮想シリアル・ポートを使って表示することができます。
一方、イヤフォン側に実装するファームウェアのフローチャートは、図8のようになります。電源の投入後、イヤフォン側のマイクロコントローラはGPIOを初期化し、残量ゲージIC(MAX17262)とチャージャIC(MAX77734)の構成を行います。次に、マイクロコントローラは、チャージャからの入力電圧が有効であるか否かについてのポーリングを行います。入力電圧が有効で4Vを上回っている場合、マイクロコントローラはチャージャをイネーブルにして充電を開始します。このとき、マイクロコントローラは、TOKENピンのステータス情報についてのポーリングを行います。TOKENピンがローである場合には、DS2488に対する読み書きの制御権限はクレードル側にあります。一方、TOKENピンがハイである場合、同権限はイヤフォン側にあります。この状況で、マイクロコントローラは、クレードルが読み出しを行えるように、イヤフォン側のバッテリの情報をDS2488のバッファに書き込みます。
評価の結果
表4、表5に、クレードル側とイヤフォン側の電源に関する設計上の要件と評価結果をまとめました。このリファレンス設計は、システムの設計上の要件を満たしていることがわかります。
パラメータ | シンボル | 測定値 | 設計上の要件 |
バッテリの電圧 | BAT | 4.08 V | 3.1V~4.6V |
USBの入力電圧 | CHGIN | 4.94 V | 4.8V~5.2V |
昇圧モジュールの5V出力 | 5 V | 5.16 V | 4.8V~5.2V |
降圧モジュールの3.3V出力 | 3V3 | 3.30 V | 3.2V~3.4V |
パラメータ | シンボル | 測定値 | 設計上の要件 |
バッテリの電圧 | VBAT | 3.71V | 3.3V~4.6V |
チャージャの3.3V出力 | VCC_3.3 | 3.32V | 3.2V~3.4V |
マイクロコントローラの1.8V出力 | VCC_1.8 | 1.82V | 1.7V~1.9V |
マイクロコントローラの1.2V出力 | VCC_1.2 | 1.12V | 1.1V~1.3V |
図9、図10に、カバーが閉じた状態と開いた状態のクレードルの評価結果を示しました。このリファレンス設計により、クレードルのバッテリの情報とイヤフォンのバッテリの情報をリアルタイムに表示することができます。また、イヤフォン側に実装されたDS2488のROM IDを読み出して表示することも可能です。
まとめ
TWSイヤフォン向けソリューションのプロトタイピングでは、使いやすさ、コスト、ポータビリティ、安定性のバランスを図ることが要求されます。DS2488は、1-Wireに対応するデュアルポート・リンクICです。これを採用すれば、消費電力が少なく、安定性が高く、性能に優れるTWSイヤフォン向けのソリューションを小さなフォーム・ファクタと少ないコストで実現することができます。本稿では、DS2488ベースのリファレンス設計であるMAXREFDES1302を紹介しました。MAXREFDES1302は、ハードウェアの設計とファームウェアの設計を含め、TWSイヤフォンの使いやすいプロトタイプとして利用できます。その最大の特徴は、接点の数をわずか2つに抑えてデータ通信と電力伝送を実現できることです。
参考資料
Liang Fang、Ning Jia「MAXIM PLC Technology-Based TWS Solution(PLC技術をベースとするMaximのTWSソリューション)」Electronic Engineering & Product World、2021年5月
MAX32655 User Guide(MAX32655のユーザ・ガイド)、Maxim Integrated、2021年3月