FT2232H基板製作・検証記録(詳細設計)
はじめに
前回の記事の続きです。今回は詳細設計を行います。
詳細設計
USB通信
USB通信はFT2232HとRP2040で必要なのでハブICを使います。
今回は工作などでもよく使われるSL2.1s[1]を選定しました。2ポートしか使わないので残り2ポートはOPEN(なんか勿体ない)
通信速度は、FT2232HはUSB2.0 High Speed(480Mbps)、RP2040はUSB1.1 Full Speed(12Mbps)です。距離も近いしまぁ大丈夫でしょう。
図1. SL2.1s回路図
JTAG経路
基板上にCPLDとRP2040があるのでFT2232H経由でこれらにもアクセスしつつ、別基板へ接続もできるように外部pinにも繋げます。DIPSWの状態によってAnalogSWで接続先を切り替え可能な構成します。
(ただしRP2040はSWD)
Analog SWは'JTAG対応'と記載のあるTMUX1574DYYRを選びました。
図2. (引用元:Texas Instruments, TMUX1574 Datasheet,[2])
図3. TMUX1574回路図
電源
主要部品の最大電流をまとめた表は以下のとおり
図4. 消費電流一覧
3.3Vは645mAなので、5V→3.3Vの損失は1Wを超えます。(645mAはワースト条件なので実際はこれよりかなり少ないと思われるが。)
LDOだと大型PKGになってしまい50mm x 50mm基板への実装が厳しいのと、熱電対機能もあり基板の発熱をできるだけ抑えたいのでDCDCで3.3Vへの変換を行います。
図5. 電源回路図
水晶振動子
今回は12MHzの水晶振動子をSL2.1s, RP2040, FT2232Hで3個使います。
CPLDにもCLK入力が必要ですが、今回は基板も小さく面積を削減したかったので、MachXO2 Pico開発キット[3]の回路図を参考にさせて頂きました。FT2232HのOSCOからCLK12MHzを引き回しCPLDに接続しています。
水晶振動子はLCSCで1pc 0.1$以下のRQ12000160[4]を採用します。
コンデンサの定数は寄生容量を5pFとしてC18, C19を30pFとすると合成容量は15pF, 寄生容量5pFを加算して合計20pFに設定しRQ12000160 Datasheet[4:1]のCLと合わせています。
図4. (引用元:TROQ, RQ12000160 Datasheet[4:2])
図6. 水晶振動子回路図
pinheader
今回は電子工作でよく使われるpin間2.54mmのものを使います。
基板サイズが50 mm x 50 mmでこれだけpinheaderをたてると、実装可能面積がゴリゴリ削られます。。。
RP2040周辺
回路を決めるにあたって参考にした資料は以下です。
Raspberry Pi Pico W Datasheet[5]ではBOOTSELはPushSWと接続されており、Bootモードに移行するにはPushSWを押した状態でUSBケーブルを挿す必要があります。
この手順が大変そうなので私はBOOTSELをDIPSWに割り当てました。
RESETをPushSWで実装しているのでDIPSWをBOOTSEL側に切り替えてPushSWを押せばUSBケーブルを抜き差しせずともBootモードへ移行できます。
RP2040 Datasheet[2:1]
Hardware design with RP2040[6]
Raspberry Pi Pico W Datasheet[5:1]
pin map
ピンアサインは以下の通り決定しました。
接続先ICやPCB上のpull up/pull downとRP2040内のweak-pull upの状態によって電圧が分圧され、信号ラインに意図しない中間電位が現れるのが好きではない(影響有無を確認するのが嫌い)のでRP2040,PCB,接続先のpull up/pull downの状態も整理しています。
図7. RP2040 pin map
FT2232H周辺
EEPROM
Datasheetの"7 EEPROM Configuration"にも記載がありますが、Word Sizeが16bitの品種を選ぶ必要があります。結線も"7 EEPROM Configuration"の記載の通りにします。
pin map
FT2232HはChAとChBの2CH品で、それぞれ異なる機能に設定できます。
今回はChAをJTAG,ChBをUARTに設定します。フロー制御が必要な部品にも対応できるよう、UARTはRTS/CTSも引き出します。
図8. FT2232H pin map
CPLD(MachXO2)周辺
回路を決めるにあたって参考にした資料は以下です。
MachXO2 Pico開発キット[3:1]
Lattice-XO2基板設計時資料[7]
pin map
ピンアサインは以下の通り。
MaxhXO2に限った話ではないですがClockやReset信号はGlobal端子に接続します。
今回はRP2040との通信にHW SPIを使用しますので専用端子とRP2040を接続します。
図9. MachXO2 pin map
熱電対周辺
概要と主要構成部品
熱電対を端子台に接続しADCに内蔵のPGAで増幅した電圧値とADC内蔵温度センサの値から
温度値を算出する。
ADCはTexas InstrumentsのADS1118[6:1]を使います。今回は差動で4chなので2つ使います。
端子台はWJ126V-5.0-2P[8]を4つ使います。
冷接点補償
以下図に示す通り熱電対の温度測定ではT2の温度を測定する必要があります。
図10. 熱電対の起電力
今回の基板では端子台(WJ126V-5.0-2P)の温度ですが、ここの温度を測定するのは困難なので
ADCの内蔵温度センサーで代替します。つまり端子台の温度とADC温度の誤差がそのまま熱電対の誤差となってしまいます。
今回は基板が小型で熱容量が少なく、SL2.1s,FT2232H,RP2040とLDOを内蔵している部品を複数使用していますのでADCがGNDの熱で煽られて端子台と温度差を持つことが懸念されます。
まずは作ってみて改善の余地があれば改版します。
回路構成
回路は以下図のとおり。
入力フィルタは二次LPFとしています。
図11. 熱電対回路図
回路を決めるにあたって参考にした資料は以下です。
ADS1118 Datasheet[9]
内部温度センサ CJC を搭載した 2 チャネル、K タイプの熱電対測定回路[10]
TIPD109 Verified Design Reference Guide[11]
今回のまとめ
今回は詳細設計まで行いました。
次回はアートワーク、JLCPCBへ基板の注文までを行っていきます。
Discussion