絶縁ICのADuM1250はside1をControllerに、side2をPeripheralにつないだ方が良いと思う #iotlt

この記事はIoTLTのアドベントカレンダーの2022の2日目の記事です。 qiita.com

IoTをしていてパワみのあるHigh Voltage系につなぎたくなって絶縁ICのADuM1250を使いたくなることもあると思いますので、ご参考までに。

TL;DR (Too Long Don't Read)

結論から書くと、絶縁ICのADuM1250はside1をControllerに、side2をPeripheralにつないだ方が良いと思う

回路と回路図、ファームウェア

回路
回路図、OK
秋月のADuM1250のモジュールやストロベリーリナックスのINA238(電圧測定)モジュール、DCDC電源をつないだだけの30~80VのHigh Voltage系の電圧測定するための簡単な回路です。J7の先でI2C接続して通信するマイコンはTeensy 4.1を使用しました。

side1とside2を逆にする。と、side2側のGNDが浮いて、データが化ける

回路図、Failure
失敗した回路図です。side1側にPeripheralのINA238をside2側にControllerのマイコンをつないでいます。

マイコンの処理は動いたがデータが化けている
マイコンの処理は動いたがデータが化けている。

side2(ch2)のGNDが浮いている
なぜかGNDが浮いている。 いろいろ試したり調べたりした結果、下記の記事にside1をcontroller、side2をperipheralをつないだほうが良いように読めます。

www.analog.com

I2Cに準拠したデバイスの例としては「ADuM1250」が挙げられます。同ICは、ホット・スワップ対応のデジタル・アイソレータです。そのデータシートには、サイド1、サイド2について、5Vの動作条件におけるプルアップ抵抗の推奨値が記載されています。それらを使用して計算すると、許容可能な最大ケーブル容量はサイド1では88pF、サイド2では780pFとなります。これらは理論上の最大容量値です。同ICのデータシートを見ると、負荷容量としてサイド1では40pF、サイド2では400pFという値が推奨されていることがわかります。データシートに記載された値は、設計上のマージン、ESD(Electro Static Discharge)に対する保護、400pFがI2Cバスの標準値であることを考慮した結果です。同ICの各サイドで負荷容量の値が異なるのは、それぞれの駆動能力に差があるからです。駆動能力はサイド1が3mA、サイド2が30mAで、サイド2の方が高くなっています。したがって、サイド2では、プルアップ抵抗の値をサイド1で許容できる値よりも低く設定することが可能です。 I2Cバスは、4芯のリボン・ケーブルを使用することで延長することができます。通常、このタイプのリボン・ケーブルを使用すると、1mあたり約50pFの容量が加わります。ADuM1250の場合、サイド1にはトータルのバス容量が40pFであるI2Cバスの1つのセクションを接続することができます。一方、サイド2には、4芯のリボン・ケーブル(最長8m)を接続することが可能です。それにより、絶縁されたデータを、バスに接続された別のI2Cデバイスに転送することができます。8m以上の距離に対応したい場合や、サイド1に接続されるトータルの容量が40pFを超える場合には、最高動作周波数を低く設定し、立上がり時間を長く確保できるようにします。そのようにすれば、より大きなバス容量を許容することが可能になります。

(データシートにはそんなことは書いていないので、配線の静電容量の問題なんだろうか)

以下は過程

1. DCDCのノイズを調べる

起動時のノイズの確認。

when boot
connection when boot

通常時の場合とかも。

通常時のDCDCのノイズの確認

2. 動いたり動かなかったりしていたので、ADALM2000で波形を見る

ADALM2000, check wave, signal
connection, ADALM2000, check wave, signal

3. キャパシタの盛ると動いたのでマシマシにしてみた

最終的にこれは良くなかった。

キャパシタマシマシ

4. side1とside2の波形を同時に見る

ここまで来てやっと気付いた。GNDが浮いていることに。入出力の両方を波形を見てみたほうが良いと思います。

connection, side1とside2の波形を同時で見る

5. side1とside2を逆転して直してみたあとの波形とデータ

動いたー!!!

データ取得OK
波形がなまってるけど、OK

これを今、teTra Mk-5 SN4(4号機)に組み込んで動作試験してみています

こういうのに組み込んで、福島の南相馬のロボットテストフィールドで実験してます。写真はイメージでteTra Mk-5 SN3(3号機)です。

teTra Mk-5 SN3 in RTF
もっといろいろパワみ基板を作ったり、IoT的にLTEやネットワークにつないでデータ収集・解析を便利にして行く予定です。ご興味・ご関心がある方がいましたらご連絡ください。

最後に

明日は@tatuya1970さんの予定です!お楽しみに!