2022年01月29日

PIC32MXとPIC32MZのUSB HOST

今回はPIC32MXとPIC32MZでUSB HOST機能の両者の仕様差について紹介します。PIC32MXで動いていたコードがPIC32MZで若干、仕様が異なるためにそのままでは動きませんでした。若干の仕様差について注意すべき点を紹介します。

■PIC32MZはUSB2.0 High Speed対応(480MHz)
 組込系のマイコンの多くはUSB 2.0 Host対応を謳っていても8割、9割はFull Speed対応(12MHz)です。PIC32MXもFull Speed対応(12MHz)です。一部のマイコン、例えばSTM32F7ではFull SpeedとHigh Speedに対応していますが、High Speedの場合、High Speedの信号を処理するためのUSB PHYを内蔵していません(一部内蔵したモデルもあるようです)。そのため、USB3300といったUSB PHYのICを外付けすることが必要です。High Speedの480MHz信号をそのままでは処理しきれないため、USB PHYでパラレル信号に変換してクロックを落としてマイコンに接続することが一般的です。

 一方、PIC32MZは驚くことにHigh Speed対応USB PHYをマイコンに内蔵しています。つまり、High Speedの480MHz信号をマイコンからUSBコネクタに直結可能です。ただし、480MHzの信号を扱うことになるため、基板の配線には特に注意が必要です。480MHzとなると普通のSPIやI2Cのような適当な信号配線では全く動きません。目安としてマイコンとUSBコネクタまでの配線長は最大75mm程度、30mm以下が理想でD+とD-の配線差は最大2.5mm、直角でなく、45度に曲げるといったUSB2.0に準拠するため、細心の注意を払って配線する必要があります。kicadの等長配線、差動ペアの配線方法は以前に紹介した通りです。Full Speedと同じような感覚でいつものように適当に配線してしまい、まったくUSBを認識できませんでした。仕方なくパターンを切って外付けで差動ペアを配線したところ、正常に認識することができました。

PIC32MZ1.jpg

即席で作った基板では当然ながらHigh Speedの480MHzに耐えられず、写真のように配線パターンを切ってからポリウレタン銅線のツイストペアケーブルでジャンパさせると正常に通信できました。

■PIC32MZはVBUS電圧レベルを厳密に監視
 PIC32MXのVBUSピンはONかOFFかを見ているだけだったため、適当に3.3Vを入れておけばUSB機能を利用することができました。一方、PIC32MZのVBUSピンは内部にコンパレータを内蔵しており、厳密にVBUS電圧レベルを監視しています。PIC32MXと同じ感覚で3.3Vを入れたところ、DRV_USBHS_Tasks内のDRV_USBHS_TASK_STATE_RUNNINGの途中で停止してしまいました。PLIB_USBHS_VBUSLevelGetで電圧レベルを取得しており、VBUSに5Vを入れると正常に状態遷移することができました。VBUSピンはPIC32MX、PIC32MZ含めて最大5.5Vまで印加可能なため、正しくはUSB電源に接続すべきピンです。マイコンのピンを外部電源系にそのまま接続するのは過電圧保護やESD対策等を考えると気が引けるため、3.3Vを接続していました。PIC32MZではそれが通用しないことが分かりました。


PIC32MZ2.jpg

ポリウレタン銅線でVBUSピンの電源を3.3Vから5Vにジャンパさせると正常に状態遷移することが確認できた。


■その他
 High Speedの場合、Full Speedに比べてよりデバイスの消費電力が上がる傾向があります。電源配線幅、場合によってはコンデンサ等で安定したUSB電源をデバイスに供給できるように注意が必要です。USBデバイスを認識するものの、その後、デバイスの処理を開始するとUSBデバイスがリセットする現象に遭遇しました。オシロで確認するとデバイス処理開始直後に急激な電圧低下が生じていることが分かり、1つ目の写真にもある通り、電解コンデンサで電源を補強するとUSBデバイスがリセットされずに安定してデバイスの処理をすることが確認できました。


 PIC32MZは他のPIC32マイコンと比べると割高な印象がありますが、USB PHY内蔵と考えると、外付けよりもBOMコストを抑えて省配線でHigh Speedに対応できるため、むしろ他のマイコンよりも安いと言えます。今後、USBの他にPIC32MZのEthernet機能等も実験して紹介したいと思います。なお、Ethernet機能についてはPIC32MZでも残念ながら外付けでEthernet PHYのICが必須です。
posted by Crescent at 00:00| Comment(2) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2021年11月27日

UART I2Cプロトコルブリッジ代替品

今回はUART I2Cプロトコルブリッジのリニューアル版について紹介します。

UART I2CプロトコルブリッジはUART通信をI2Cマスタに変換する変換ICです。マイコンやPC等からUARTコマンドをICに送ることでI2Cデバイスを制御することができます。UART I2CプロトコルブリッジはNXPからSC18IM700として販売されています。ただ、最近、NXPの製品ページではSC18IM700が新規設計非推奨となっており、将来的に供給されなくなる通知が出ていました。代替品をどうするか悩んでいたところ、リニューアルして販売されることが分かりました。

リニューアル版はSC18IM704となって別の製品として販売されるようです。データシートが公開されていたため、 SC18IM700とSC18IM704で差を比較してみました。


項目SC18IM700SC18IM704
コマンド、レジスタSC18IM700と互換有
バッファサイズ16Byte256Byte
IO電圧
2.4~3.6V
(入力5V耐圧)
1.71~3.6V
(入力5V耐圧)
GPIOモード
双方向モード
入力モード
プッシュプル出力モード
オープンドレイン出力
入力モード
プッシュプル出力モード
オープンドレイン出力
ピンアサインSC18IM700と互換なし

大きなメリットとしてバッファサイズが16Byteから256Byteに大幅に増えています。これまでI2C通信を小分けに読み書きする必要がありましたが、一度にI2Cの読み書きをすることができるようになります。通信速度のパフォーマンスが大幅に改善しそうです。

また、最低電圧が1.71Vからとなったため、FPGAやカメラモジュール等のインタフェースと親和性が良くなっています。

GPIOの機能では双方向モード(quasi-bidirectionalモード)がサポートされなくなっていますが、通常の使用法であれば入力か出力か決まっていることが多いため、そこまで問題にはならないと思います。

唯一、残念な点としてピンアサインの互換がなく、I2Cや電源等のピン番号が異なっているため、フットプリントを変更する必要があります。ここは互換性を維持して欲しかった点です。


SC18IM700USBシリアルI2C変換基板で使用しています。移行のタイミングは検討中ですが、今後入手安定性や性能向上を鑑みてSC18IM704に移行することを検討したいと思います。まだ、21年11月の現時点ではSC18IM704は販売されていないため、検討もできませんが、販売され次第、検討してみたいと思います。
posted by Crescent at 00:00| Comment(8) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2021年10月30日

販売製品一覧

今回は最近追加された製品含めて改めて販売中のCrescent製品を紹介します。※2021年10月更新
■ProjectionBall IoT (Version 5)
 ProjectionBallはベクター方式の簡易レーザープロジェクタで、
 簡単な図形や英数字などを描画できます。
 Running Electronics様で販売中です。

■磁気エンコーダモジュール
 AMS社製磁気エンコーダAS5048Aを2.54 mmピッチへ変換する基板です。
 専用の磁石を同梱。

■磁気エンコーダピッチ変換基板
 AMS社製磁気エンコーダAS5048AやAS5047Dなどを
 2.54 mmピッチへ変換する基板です。
 基板のみでエンコーダIC、磁石は同梱されていません。

■STM32F303CC搭載DIP変換基板
 Nucleo等の評価ボードが発売されていない48ピンIC STM32F303CC
 LQFP48を2.54 mmピッチへ変換した基板です。
 ※昨今の半導体不足の影響で供給が不安定になっています

■STM32F373CC搭載DIP変換基板
 Nucleo等の評価ボードが発売されていない48ピンIC STM32F303CC
 LQFP48を2.54 mmピッチへ変換した基板です。
 ※昨今の半導体不足の影響で供給が不安定になっています
 スイッチサイエンスで販売中

■アナログ出力MEMSマイク変換基板
 搭載した、ピッチ変換モジュールです。ピン間隔は2.54 mm。
 可聴音から超音波まで(100 Hz〜80 kHz)の幅広い帯域を
 高感度にセンシングすることが可能です。
 超音波センサや超音波通信などに使用可能です。

■アンプ内蔵アナログ出力MEMSマイク変換基板
 50倍のアンプを搭載した、ピッチ変換モジュールです。
 ピン間隔は2.54 mm。
 可聴音から超音波まで(100 Hz〜80 kHz)の幅広い帯域を
 高感度にセンシングすることが可能です。
 超音波センサや超音波通信などに使用可能です。

■デジタル出力MEMSマイク変換基板
 搭載した、ピッチ変換モジュールです。ピン間隔は2.54 mm。
 可聴音から超音波まで(100 Hz〜80 kHz)の幅広い帯域を
 高感度にセンシングすることが可能です。
 超音波センサや超音波通信などに使用可能です。

■LattepandaArduino変換基板
 LattepandaのLeonardoポートをArduino Leonardoピッチへ
 変換する基板です。Arduinoのシールドが使えるようになります。
 表面実装部品のみ実装済みです。
 ピンヘッダ、ソケット、リセット用のタクトスイッチは別売です。

■PS/2 USB逆変換アダプタ
 USBキーボードをPS/2化する変換アダプタです。
 標準ドライバで動作可能なUSBキーボードをPS/2キーボードとして
 使用できるように変換します。
 プログラミング専用こどもパソコンIchigoJamやサーバマシンなど、
 PS/2キーボードのみをサポートしている場合に本製品を使用して、
 USBキーボードをPS/2化します。

■e-Paper I2Cモジュール
 e-Paper I2CモジュールはWAVESHARE製200x200, 1.54inch
 E-Inkディスプレイを搭載したモジュールです。WAVESHARE製200x200,
 1.54inch E-InkディスプレイはSPI接続ですが、配線の容易性を実現するために
 SPI I2CプロトコルブリッジIC SC18IS602Bを搭載してI2C化しています。

■nanopi neo/neo2 拡張ボード
 FriendlyElec製NanoPi Neo/Neo2の拡張ボードです。
 ピンヘッダ上にあるUSB2ポート、I2Cポート(Grove)のコネクタを
 搭載しています。標準USBの1ポートで足りないという場合やGrove
 で拡張したいという場合に最適です。
 また、I2Cポートには純正NASキットと同じRTC DS1307が搭載しています。

■Digital Video Shield
 SPIからDVI出力(HDMIコネクタ)するArduinoシールドです。
 FTDI製ビデオエンジンBT816とDVIトランスミッタTFP410を搭載しています。

■ロードスイッチ変換基板
  Vishay製超低漏洩電流ロードスイッチSiP32431を搭載した変換基板です。
 1.5 V~5.5 V、最⼤1.4 Aまでの負荷の電源管理が可能です。
 FETを使⽤する場合に⽐べ、漏れ電流が10 pAと非常に⼩さいことが特徴です。

■ISO 14443 Type A RFID付きEEPROMモジュール
 デュアルインタフェースEEPROM M24SR64とアンテナを搭載したI2C Groveモジュールです。
 64k bit EEPROMにI2CとRFIDの2つの通信で内部のデータにアクセスできます。
 EEPROM M24SR64はISO 14443 NFC/RFID tag NFC forum Type 4 に対応しています。

■BLE5モジュール変換基板
 SiliconLabs製BLE5モジュールBGX13Pを搭載した変換基板です。
 BLE5の制御ソフトウェアが予め書き込まれているため、容易にBluetooth通信を使⽤できます。
 3.3 Vシリアル通信(UART,初期115200 bps)で外部機器からパラメータを設定できます。
 TELEC(技適)認証済 工事設計認証番号 209-J00282

■WiFiモジュール変換基板
 SiliconLabs製WiFiモジュールAMW037を搭載した変換基板です。
 WiFi制御ソフトウェアが予め書き込まれているため、容易にWiFi通信を使⽤することができます。
 3.3 Vシリアル通信(UART,初期115200 bps)で外部機器からパラメータを設定することが可能です。
 TELEC(技適)認証済 工事設計認証番号 201-180092

■I2C-Uart変換基板
 マイコンのI2CポートをUART通信ポートに変換するアダプタです。
 マイコンからI2Cデバイスとして制御し、UARTのボーレート設定、送信、受信処理をすることができます。

■I2C-RS232C変換基板
 マイコンのI2CポートをRS232C通信ポートに変換するアダプタです。
 マイコンからI2Cデバイスとして制御し、UARTのボーレート設定、送信、受信処理をすることができます。

■USBシリアルI2C変換基板
 USBシリアルをI2Cマスタに変換する基板です。
 シリアルCOMポートを介してPCやRPI等からI2Cデバイスを制御できます。
 I2Cデバイスの動作確認やラピッドプロトタイピングに最適です。

■デュアル出力昇圧コンバータ基板
 ADP1612スイッチングコンバータを使用した昇圧電源です。
 1.8V~5.5Vの入力で±15.1Vの出力が得られます。
 1.8Vから使用可能なため、電池駆動のアンプ電源に最適です。

■高感度磁界センサ変換基板
 TI製高感度磁界センサDRV425を使用した高感度磁界センサ基板です。
 高感度±0.5 mT、帯域最大47 kHzで磁界をアナログ出力として得ることができます。

■USB-PDM変換基板
 2個のデジタルPDM出力MEMSマイクをUSBオーディオデバイス(ステレオ)に変換します。
 24 bit、44.1 kHz/48 kHzサンプリングで変換します。
 デジタルPDM出力MEMSマイクの評価や動作確認に便利です。

■USB-SMBUS/I2C変換基板
 CP2112を使用したUSB-SMBUS/I2C変換基板です。
 Simplicity Studioを使用してVIDやPID等のパラメータを設定変更できます。
 USB-PDM変換基板のパラメータ書き換えに最適です。

■AC電流センサ基板
 ホール素子を用いた低侵襲AC電流センサ基板です。
 一般的な電源ケーブルを加工せずに近接させて使用します。
 電源ケーブルの電流に応じて比例してアナログ電圧が出力されます。

■可変アンプ内蔵アナログ出力MEMSマイク変換基板
 増幅回路TLV316とKnowles社製アナログ出力MEMSマイクSPU0410LR5Hを搭載した基板です。
 可聴音から超音波(100Hz〜80kHz)までの幅広い帯域を高感度にセンシングすることが可能です。
 RV1により約1倍〜約50倍まで増幅率を変更することが可能です。

■エアクオリティセンサ
 ルネサスエレクトロニクス製 室内空気質(IAQ)センサZMOD4410及び
 温湿度センサHS3001を搭載したセンサ基板と専用変換基板です。
 CO2、IAQ(空気質指標)、温度、湿度の測定ができます。

■光センサ基板
 アナログ光センサAPDS-9008-020を用いた光センサ基板です。 
 光強度のアナログ出力(A)と可変抵抗で調整可能な閾値によるデジタル出力(D)を備えています。

■I2C-RS422/485変換基板
 マイコンのI2CポートをRS422/RS485通信ポートに変換するアダプタです。
 本アダプタでI2Cから半二重RS422/RS485の送信、受信処理をすることができます。
 7.3728 MHzの水晶発振子を搭載しており、マイコンのメインクロックから独立してRS422/RS485のボーレート設定ができます。

■DC電流パルス検知基板  
 直流信号線のON、OFF状態をクランプ式CTセンサで検出するための変換基板です。
 本変換基板とクランプ式CTセンサによって信号線を加工せずに直流信号線の状態を取得することができます。
 信号線ON/OFFによって発生するパルスをCTセンサで検出し、状態をラッチします。
 ラッチ保持した状態(信号線のON/OFF状態)を1/0のデジタル信号として出力します。

■CTセンサアンプ基板
 本基板はクランプ式CTセンサの出力を増幅してRMS値(実効値)に変換する基板です。
 交流電流に応じたRMS値(実効値)をアナログ値(直流)として得ることができます。
 実効値をアナログ値として得られるため、マイコン側での高サンプリングAD変換やRMS演算等が不要です。

■I2Cバスアクセラレータ 
 本基板はLTC4311を使用したI2C通信の信号波形を改善するバスアクセラレータです。
 I2Cケーブルを延長する場合や多数デバイスを接続する場合に通信を安定させます。
 I2Cバスラインに挿入して使用します。
 Grove互換コネクタを搭載しており、既存のデバイスに容易に接続できます。




posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2021年10月02日

マルチゾーンToF測距センサVL53L5

今回はSTから販売されているマルチゾーンToF測距センサVL53L5について少し試食したので、その内容を紹介します。

今までもSTからToF測距センサVL53LXXシリーズが出ていましたが、VL53L5の特徴として最長4mまでの測距距離と最大64(8x8)の測距ゾーンを実現しています。デフォルト設定では4x4のマルチゾーンですが、設定変更で8x8のマルチゾーンに対応します。

VL53L5.jpg

VL53L5の評価ボード、VL53L5CX-SATELを使ってみました。従来のVL53LXの評価ボードとピン配列が異なっているため、注意が必要です。VL53L5CX-SATELは1列のピンになっています。少し戸惑った点としてVL53L5自体にないPWRENピンが評価ボードのピンにあり、評価ボード上のレギュレータの有効化ピンになっています。PWRENピンを3.3Vに接続して、AVDDからの5Vを3.3Vに落とすレギュレータを有効化します。

サンプルコードを実行したところ、デフォルト設定の4x4で取得できることが確認できました。ただ、従来のLVL53LXシリーズとの大きな違いとして、センサ自体がマイコンを搭載しているため、センサの初期化の際にセンサのファームウェアのロードが必要です。それに伴ってセンサドライバのコードサイズが非常に大きくなっています。手元にあったROMサイズ64kBのSTM32F303K8ではでは入らず、STM32F401REでサンプルコードを実行しました。

ビルドした際の出力を確認すると下記のようにサンプルコードだけで100kB近く使用していることが分かりました。

RAM: 1856 B 96 KB 1.89%
FLASH: 105800 B 512 KB 20.18%

VL53L5は最大64のマルチゾーン対応で非常に魅力的なセンサですが、それに合わせてセンサドライバが大きいということが分かりました。機能の制限や実装方法を工夫することで多少小さくできる余地はありますが、従来のセンサに比べて大きいということは変わりません。VL53L5を使用する場合はプログラムサイズが少なくとも128kB以上のマイコンを使用する必要がありそうです。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2021年09月11日

I2C Bus Accelarator検証

以前に紹介したGrove等で使用されるI2Cを延長する方法について、実際に少し検証してみました。

一般的にI2Cはマイコン周辺の機器との通信を想定しているため、数メートルといった距離の通信を想定していません。Grove規格ではハブやケーブルを接続して、数mまでケーブルを延長すると波形が鈍って通信エラーが多発します。このような場合にI2CバスバッファICで差動信号に変換して、延長先で再度、差動信号をI2Cに変換する方法があります。数10m以上延長する場合に非常に有効な方法ですが、数m程度の延長で変換アダプタを使用するのは少し大がかりです。その際に便利な部品、バスアクセラレータLTC4311を紹介します。


バスアクセラレータLTC4311は、400pFのI2C仕様を上回るバス負荷条件で
データ伝送速度と信頼性を向上させるアクティブ・プルアップです。

• I2Cバス立ち上がり遷移時間を改善
• I2Cバス上に複数のデバイスを接続する場合にデータの完全性を保証
• 広い電源電圧範囲:1.6V〜5.5V
• “L”状態のノイズマージンを改善
• 最大400kHz動作

簡単に言えば、配線が長くなってクロックや信号が鈍ってしまうところをHigh、Lowをバシッと決めてくれるデバイスです。

通信ケーブル1m、波形の鈍りが分かりやすいように意図的に大きなプルアップ抵抗20kΩを接続し、HS3001温度湿度センサをI2Cデバイスとして使用した場合の波形を比べてみました。


LTC4311_3.jpg
100kHzクロックでLTC4311未使用の場合です。赤線がデータ、黄線がクロックです。1mなので通信できますが、立ち上がりが少し鈍っています。

LTC4311_4.jpg
100kHzクロックでLTC4311使用の場合です。赤線がデータ、黄線がクロックです。I2CバスラインにLTC4311を挿入するだけで立ち上がりの鈍りが解消されています。

ケーブルが長い場合やケーブルの種類によっては通常、波形の鈍りが大きくなり、正常に0と1を送信できなくなり、通信エラーが多発します。アクティブ・プルアップによって波形の鈍りを解消することでより長いケーブルでの伝送ができるようになります。今回は検証していませんが、I2C駆動電流を大きく流せないようなデバイスやマイコンの場合に波形が鈍って通信できない場合にも有効だと思います。

部品単体では効果を確認できたため、I2Cバスアクセラレータ基板の設計をしてみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする