Phoenix Jetsonインターフェース編

はじめに

Jetson Nanoは多くのインターフェースを備えた接続性の高いCPUボードである。本回路はそれらを活用しJetson Nanoを中心として末端にFPGA、MCU、制御ICや無線モジュール等を接続するような構成をとっている。ここではJetson Nanoとそれらとの接続について説明する。

FPGAとの接続

Jetson NanoとFPGAとは以下の信号線で接続されている。


MOD_SLEEP#はJetson Nanoがスリープに入っているときにLになる信号である。スリープに入れることはないと思われるが、もしスリープに入ってしまったときにモーター制御を中断するために接続している。

GPIO11はCONFIG#ピンと接続されており、これをLに引き下げることでFPGAにリセットをかけてリコンフィギュレーションさせることができる。リモートアップデートを実装するときに便利である。

GPIO12は割り込みピンとして使うことを想定して割り当ててある。しかし現在のファームウェアでは未使用である。

SPI1はSPI Slave to Avalon Masterブリッジのために割り当てた。このIPを使ってJetson NanoはFPGA内のAvalon-MMバスにアクセスができる。主にNios IIとの共有メモリーへ制御の指令値やパラメータを書き込むことを想定している。またSPI Slave to Avalon Masterブリッジの信号と一緒に別のAvalon-STのパケットを流すこともでき、FPGAからJetsonへセンサーデータやモーター制御の目標値と測定値などをログとして垂れ流すことも考えている。

UART1はNios IIのデバッグ用に用意した。ログの量が少なければSPI1ではなくこちらにログを垂れ流すこともできるだろう。

GreenPAKとの接続

GreenPAKとの接続は以下のようになっている。詳細はPhoenix 電源シーケンス編とNVIDIAが公開しているJetson Nano Data Sheetを参照のこと。これらのピンはJetson Nanoのハードウェアやカーネルによって制御されるのでユーザーソフトウェアからは介入できない。


拡張コネクタ

ロボットの前面にあたる箇所の基板上に2つの2mmピッチピンソケットが実装されている。このソケットに無線モジュールやボール検出器、キッカーとの通信用のトランシーバ、あるいはLEDやボタン類などを実装した拡張基板を装着してロボットの機能を拡張できる。Phoenix基板はロボットの動作に絶対に必要な機能だけを提供し、ユーザーインターフェースやセンサー類、後々変えるかもしれない機能は拡張基板に担ってもらうのがPhoenixの設計方針である。

以下に拡張コネクタのピン配置を示す。基板の表面をロボットの前面から見た図である。


基本的にI/OピンはJetson Nanoと直接接続されているが2つ注意点がある。

1つ目はKICKER_P, KICKER_NがPhoenix基板上のキッカー用コネクタに接続されている点である。キッカー用コネクタは2つあるがバス配線になっていてどちらにもこの1対の信号線が接続されている。これは拡張基板にRS485やCANのトランシーバを搭載してもらい、Jetson Nanoからキッカーへの信号は拡張基板を経由してキッカーへ送られることを想定している。

2つ目はI2C1_SDA, I2C1_SCLがPhoenix基板上に搭載されたADCにも繋がっている点である。アドレスの競合やバスの占有が無いように注意されたい。

ADC3

拡張コネクタで述べたようにPhoenix基板上にはJetson NanoとI2C接続されたADS1015というADCが存在する。ADS1015は4入力のデルタシグマADCで、分解能は12ビットであるがPGAを内蔵しているため小振幅の信号を高精度に測定することができる。他にもADCは2つあるので図面上ではこのADCをADC3と呼んでいる。以下にADC3との接続図を示す。


以下にADC3が測定している電圧と物理量との換算式を示す。

  • VBAT_IN_MON
    バッテリー電圧を測定できる。
    \begin{eqnarray} \mathrm{VBAT\_IN\_MON[V]}&=&\mathrm{VBAT\_IN[V]} / 23 \\ \mathrm{VBAT\_IN[V]}&=&\mathrm{VBAT\_IN\_MON[V]} \times 23 \end{eqnarray}
  • VSYS_MON
    VSYS電圧を測定できる。
    \begin{eqnarray} \mathrm{VSYS\_MON[V]}&=&\mathrm{VSYS[V]} / 23 \\ \mathrm{VSYS[V]}&=&\mathrm{VSYS\_MON[V]} \times 23 \end{eqnarray}
  • ESW_IS
    ロードスイッチに流れている電流を測定できる。測定誤差は大きいので目安程度。
    \begin{eqnarray} \mathrm{ESW\_IS[V]}&=&\mathrm{IS[A]} / 9700 \times 220\mathrm{[\Omega]} \\ \mathrm{IS[A]}&=&\mathrm{ESW\_IS[V]} / 220\mathrm{[\Omega]} \times 9700 \end{eqnarray}
  • TEMP_MON
    48VレギュレータのMOSFET付近にあるサーミスタで温度が測定できる。サーミスタの抵抗Rと温度Tの関係は以下の式で表される。ここでBはB定数、R0はリファレンス温度T0における抵抗値である。
    \begin{eqnarray} \mathrm{R[\Omega]} &=&  \mathrm{R_0[\Omega]} \times e^{\mathrm{B[K]}(\frac{1}{\mathrm{T[K]}}-\frac{1}{\mathrm{T_0[K]}})} \\ \mathrm{T[K]} &=& \frac{1}{\ln(\frac{\mathrm{R[\Omega]}}{\mathrm{R_0[\Omega]}}) / \mathrm{B[K]} + \frac{1}{\mathrm{T_0[K]}}} \end{eqnarray}
    本回路においては固定抵抗Rtとサーミスタの抵抗比をADCで測定してサーミスタの抵抗値を求める。以下にサーミスタの抵抗値とADCへの入力電圧との関係式を示す。ここでVDDは分圧抵抗ネットワークへの印可電圧、\(r=\frac{R}{R_t}\)である。
    \begin{eqnarray} \mathrm{TEMP\_MON[V]} &=& \frac{\mathrm{V_{DD}[V]}}{\frac{1}{r}+1} \\ r &=& \frac{1}{\frac{\mathrm{V_{DD}[V]}}{\mathrm{TEMP\_MON[V]}}-1} \end{eqnarray}
    これらの式を合わせると温度とADC入力電圧には以下の関係が成り立つ。
    \begin{eqnarray} \mathrm{TEMP\_MON[V]} &=& \frac{\mathrm{V_{DD}[V]}}{\frac{R_t}{\mathrm{R_0[\Omega]}} \times e^{-\mathrm{B[K]}(\frac{1}{\mathrm{T[K]}}-\frac{1}{\mathrm{T_0[K]}})}+1} \\ \mathrm{T[K]} &=& \frac{1}{\ln{\frac{R_t}{\mathrm{R_0[\Omega]}}}-\ln(\frac{\mathrm{V_{DD}[V]}}{\mathrm{TEMP\_MON[V]}}-1) / \mathrm{B[K]} + \frac{1}{\mathrm{T_0[K]}}}
    \end{eqnarray}
    実際の回路ではVDD=3.3[V]、Rt=10[kΩ]、R0=10[kΩ]、T0=25[℃]、B=3380[K]であるので
    \begin{eqnarray} \mathrm{TEMP\_MON[V]} &=& \frac{\mathrm{3.3[V]}}{e^{-\mathrm{3380[K]}\times(\frac{1}{\mathrm{T[K]}}-\frac{1}{\mathrm{298.15[K]}})}+1} \\ \mathrm{T[K]} &=& \frac{1}{-\ln(\frac{\mathrm{3.3[V]}}{\mathrm{TEMP\_MON[V]}}-1)/\mathrm{3380[K]} + \frac{1}{\mathrm{298.15[K]}}}
    \end{eqnarray}

USB/DisplayPort

Jetson Nanoは3つのUSB HighSpeedポートと1つのUSB SuperSpeedポートを持つ。USB0はデバイスとして動作し、リカバリーモードでイメージの書き換えに使ったり、通常動作中はRNDISデバイスとして働きSSH接続できたりする。USB1、USB2およびSuperSpeedポートは通常のUSBホストとして使用できる。

PhoenixではUSB Type-Cを活用しコネクタ数の削減を図っている。USB Type-Cのポート2はUSBホストとして働くと同時にDP Alt Modeによってディスプレイ出力が可能である。


M.2

WiFi+Bluetoothモジュール向けにM.2スロットを搭載している。サイズは2230、片面実装、Key Eの切り欠きのあるカードに対応している。公式のキャリアボードではSDIO、UART、SMBusも配線されていたがPhoenixではそれらは不要と判断し未接続としている。

PCIE0_TX0とPCIE0_RX0に関してはPCIeの極性逆転機能を活用して配線を簡単にしている。


MIPI CSI-2

公式のキャリアボードに倣って2つのMIPI CSI-2カメラが接続できるようにコネクタを用意した。マルチプレクサICは別物であるが配線は公式のものと同一である。


EEPROM

Jetson Nanoのキャリアボードにはそのキャリアボードの情報を記録したEEPROMが実装されている。カーネルは起動時にこれを読み込んでボードの種類を識別するようである。無くても動作するのでPhoenixでは非実装としている。


0 件のコメント :

コメントを投稿