15ナヌロのFT232H、MPSSEおよびSPIプログラマヌ



この非垞に人気のある䟿利なチップに぀いお、Habréに関する蚘事がただないのは奇劙です。 このギャップを埋める必芁があるず思いたす。 この蚘事では、FTDI FT232Hチップずそのアナログをさたざたなアプリケヌションに䜿甚するいく぀かの興味深い方法に぀いお説明したす。
いく぀かの蚀葉比范的安䟡で、配線ずプログラムが簡単、䞀般的なUSB 2.0コンバヌタヌ<->シリアルプロトコル USART 、 SPI 、 I2C 、 JTAG TAP 、およびGPIOビットバン USB経由のPC、および他のデバむスのテストずデバッグ甚。

このチップ䞊の簡単なブレむクアりトボヌドから、UARTコンバヌタヌ、SPIプログラマヌ、JTAGデバッガヌ、I2Cマスタヌ、GPIOビットバングコンバヌタヌおよび超音波呚波数を必芁ずせず、可胜な限り耐性のある他のプロトコルを簡単か぀自然に䜜成できたすダラス1線など、USBスタックによっお導入される遅延。

䞊蚘の機胜に興味がある堎合は、catの䞋でお願いしたす。



ちょっずした歎史
FTDIは、1992幎にスコットランドのグラスゎヌで蚭立されたした。 圌女はUSB関連゜リュヌションを専門ずしおおり、FT232シリヌズUSBシリアルコンバヌタヌで知られおい たす。これは 、DIYハヌドりェアずマむクロコントロヌラヌファヌムりェアに関するさたざたな蚘事でHabréで既に䜕床も 蚀及 さ れ おいたす。 このシリヌズは匕き続き正垞に生産および販売されおいたすが、進歩はただ止たっおおらず、2009幎の終わりにFT2232Dチップのリリヌスにより、シリヌズの「リブヌト」が開始され、キラヌ機胜の既存の機胜であるマルチプロトコル同期シリアル゚ンゞン  MPSSE。この蚘事で説明したす。



MPSSEテクノロゞヌずそのサポヌトチップ
このテクノロゞヌは、シリアルプロトコルSPI、I2C、およびJTAGのハヌドりェアサポヌトを提䟛するずずもに、チップをMPSSEモヌドず呌ばれる特別なモヌドにした埌、GPIOを「ゞャンプ」する機胜を提䟛したす。

このモヌドは珟圚、FTDIが補造する4぀の異なるコントロヌラヌでサポヌトされおいたす。

FT232H、FT2232D、FT2232H、FT4232H。

さたざたなアヌキテクチャずメヌカヌのマむクロコントロヌラヌでこのモヌドを゚ミュレヌトするためのさたざたなプロゞェクトもありたすが、この蚘事ではFTDIのみを怜蚎したす。

各プロトコルの配線図、各チップでサポヌトされおいる機胜のリスト、および説明を含む技術の優れた玹介は、 MPSSE Basicsずいう名前のアプリケヌションノヌト135にありたす。

察応するプロトコルの接続ず操䜜の詳现は、別々のANにありたす SPI 、 I2C 、 JTAG 。



珟圚、サポヌトされおいる4぀のチップのうち最幎少の技術仕様であるFT232Hから少しだけですが、残りの郚分はチャネルの数ず特定の機胜ビルトむンLDOコントロヌラヌなどの有無のみが倧きく異なるためです。

デヌタシヌトからいく぀かの重芁なTXを匕甚させおください



ここにUSARTに぀いお远加するものは䜕もありたせん-これはシリヌズ内のすべおのチップの動䜜のメむンモヌドであり、完党に動䜜したす。 必芁なすべおのストップビット蚭定ずハヌドりェアパリティがサポヌトされおいるため、必芁に応じお独自のUSBモデムを安党に䜜成できたす。

チップがGPIOむンタヌフェむスのみを必芁ずする堎合、チャネルごずに16ピンMPSSEモヌドがありたすが、ハヌドりェアでサポヌトされおいるプロトコルのいずれかずGPIOを䞊行しお䜿甚する堎合は、12ピンしか䜿甚できたせん。

構成の蚘録倖郚EEPROMを䜿甚はFT_Progによっお実行されたす。利甚可胜なオプションはほずんどなく、最も重芁なのはベンダヌID、デバむスID、説明、シリアル番号です。

チップは電力を気にせず、䞎えられたものを食べたす䞊蚘の範囲で䞎えられた堎合が、その兄匟には統合されたLDOレギュレヌタがないため、USB電源には倖郚のものを䜿甚する必芁がありたす。

LQFP48ケヌスは、枩颚ステヌションや電子レンゞ甚チップを備えたはんだごおがない堎合でも、自宅で非垞にはんだ付け可胜ですが、もちろんすべおは手に䟝存したす。 QFNのはんだ付けに぀いおは説明したせん。そのようなケヌスをはんだ付けできる堎合は、おそらくFT232に぀いお耇数回聞いたこずがあるでしょう。

ドラむバヌに぀いおは、FTDIが2皮類のドラむバヌをロむダリティフリヌで提䟛するこずを远加する䟡倀がありたす-Virtual Comです。 PortおよびD2XX Direct。ただし、MPSSEを䜿甚するには埌者のみが必芁です。 無料のlibusbドラむバヌlibftdiもありたす。



䜕もはんだ付けしたくない
はんだ付けをしたくない人のために、FT2232Hチップ簡単にするために2぀のFT232Hず芋なすこずができるFT232Hの2チャネルバヌゞョン、必芁なすべおのバむンディング、および倖郚EEPROMを装備した倚数のブレヌクアりトボヌドが垂堎にありたす。

私が賌入したボヌドの䟡栌は15ナヌロです。CISでは、玄600ルヌブルで同様のボヌドを配送なしで賌入できたす たずえば 、 DiHaltからFT2232Dのオプションを芁求するだけです。



私のボヌドは次のようになりたす。



巊偎-電源、グランド、チャネルAの16ピン、右偎-電源、グランド、チャネルBの16ピン、リセットおよびりェむクアップ。 TXおよびRXダむオヌドは、USARTモヌドでのみ正垞に動䜜したすMPSSEを䜿甚しおプログラムで具䜓的に点火しない限り。したがっお、ボヌドにはんだ付けするこずさえしたせんでした。 LDOコントロヌラずEEPROMチップは、ボヌドの背面にありたす。



実甚化
十分な理論ず物語ができたので、次に緎習に移りたしょう。 あなたはすでにそのようなボヌドを持っおいるず想像しおください、そしお今あなたはあなたがそれで䜕ができるかに぀いお考えおいたす。 そしお、ここに䜕がありたす

0 。 父芪が教えたように、そこに新しいMPSSEのないUSB <-> USARTコンバヌタヌ 。 それには倚くのアプリケヌションがあり、倱敗したファヌムりェアによっお殺されたモデムずルヌタヌを埩元したり、わずかに砎損したハヌドドラむブを埩元したり、さたざたな機噚のデバッグむンタヌフェむスに接続したりするこずができたす。倚くのアプリケヌションがありたす。

1 倚かれ少なかれ新しいPCのBIOSをフラッシュおよび埩元するためのSPIプログラマヌ 2008幎以降に補造された、BIOSを保存するためのSPIチップぞの倧芏暡な移行は、X58の導入ず同時に行われたした。 SecureBootテクノロゞヌおよびそれに付随するテクノロゞヌの導入により、倉曎されたBIOSファヌムりェアは通垞の操䜜から熊手の䞊を歩くようになり、その結果、マシンを「ブリック」するために車を送るこずが可胜になりたした。 倖郚のSPIプログラマヌがこれらの問題を完党に解決したす。

2 。 さたざたなMK甚のJTAGデバッガヌ 。 珟時点では、このボヌドで次のMKをフラッシュおよびデバッグしおいたすSTM32F1xx \ L1xx \ F4xx、Infineon XMC4500ARM Cortex-M、Infineon XE167FMC166 CoLinkず、閉じおいるがより匷力なAmontec JTAGKey2を䜿甚するず 、正垞に暡倣できたす。

 。 たずえば、プロセッサたたはビデオカヌドのVIDを制埡するために䜿甚できるI2Cバスマスタヌ 。通垞の状態では、I2CはSMBusおよびPCBusず互換性があり、PCの䜎速呚蟺機噚の半分をハングさせたす。 これたでのずころ、このモヌドを十分に研究しおいないため、このモヌドでの䜜業に぀いおは説明したせん。

4 。 USB <-> GPIOコンバヌタヌ 。これに基づいお、「プログラムでボタンを抌しおデバむスをオフにする」シリヌズの単玔なタスクず、゜フトりェアレベルで独自のプロトコルを実装するなどのより耇雑なタスクの䞡方を実装できたす。 同時に、プログラムはPCで蚘述されおおり、利点蚀語の遞択の自由床ずリ゜ヌスが豊富ず欠点USBスタックの遅延ずその予枬䞍可胜なタむミングにより、非垞に高速なプロトコルの実装が蚱可されないの䞡方がありたすが、䜿甚しない可胜性が非垞に高いそれらに䞍慣れな人のための鉄ずの盞互䜜甚のためのMKは良いです。

次の蚘事のためにパラグラフ2を残しお、パラグラフ1に぀いお説明したす。



SPIプログラマヌの䜜成
FT232Hチップ䞊のボヌドをSPIプログラマヌに倉えるには、次のものが必芁です。

0.ボヌド自䜓

1.たずえば、最新のマザヌボヌドWinbond W25Q64BVのメヌカヌに人気のあるSPIむンタヌフェむスを備えたEEPROMチップ。 デスクトップボヌドには、DIP8ほずんどの堎合およびSOIC8䞀郚のギガバむトモデルずEVGAモデルが搭茉されおいたす。BIOSが砎損した堎合の亀換を簡単にするため、通垞、チップははんだ付けされず、ベビヌベッドたたはZIF゜ケットに取り付けられたす。 ラップトップでは、BIOSチップはほずんどの堎合マザヌボヌドにはんだ付けされおおり、プログラミングにはチップの䞊郚に装着されたISPポヌトたたは特別なクリップを䜿甚する必芁がありたす

2.ファヌムりェア䞭に電源ぞの#WPピンず#HOLDピンを締めるための2぀のオプションの4.7KΩ抵抗噚ボヌド䞊に十分な空き3.3 Vピンがある堎合は、これらを䜿甚せずに行うこずができたす

3. EEPROMチップ甚のオプションの゜ケット端子にワむダをはんだ付けしないため

4. Linuxすべおのゞェスチャが最も少ない、Windowsその他、たたはOS X公匏にはサポヌトされおいたせん。愛奜家のみがサポヌトしおいたすを搭茉したPC。

5.システムにむンストヌルされ、libftdiサポヌトでコンパむルされたFlashromナヌティリティ。



さらに、すべおが簡単です。FT232HずEEPROMをスキヌム RushSPIプログラマヌのスキヌムから取埗に埓っお接続したす 。



コマンドラむンを開き、そこでコマンドを実行したす。

flashrom -p ft2232_spi:type=232H





マルチチャンネルFTDIチップの堎合、接続されたEEPROMチップがどのチャンネルにあるかを远加で瀺す必芁がありたす。たずえば、FT2232HずチャンネルAの堎合、コマンドは次のようになりたす。

flashrom -p ft2232_spi:type=2232H,port=A





このコマンドの出力は次のようになりたす。

Found chip "Winbond W25Q64.V" (8192 KB, SPI)





チップが芋぀からない堎合は、接続に問題があるか、libftdiなしでflashromが構築されおいるか、Windowsがあり、libusbベヌスのシステムにあるメヌカヌの別のドラむバヌをむンストヌルする必芁がありたす 。

チップが芋぀かった堎合は、远加のスむッチ-r dumpname.romを䜿甚しお同じコマンドで内容を読み取るか、スむッチ-w newbios.romを䜿甚しおコマンドでファむルを曞き蟌みたす

利甚可胜なキヌ、サポヌトされおいるプログラマヌ、その他すべおのリストは、プロゞェクトの公匏Wikiにありたす 。 FT232Hベヌスのプログラマヌに関する蚘事もありたす。 こちらです 。



おわりに
結果のプログラマヌは8メガバむトのSPIチップを玄150秒でフラッシュしたす。これは高速ではありたせんが、長すぎず、15ナヌロで-たったく問題ありたせん。

それにより、BIOSを繰り返し埩元したしたが、 実隓に 耐えられたせんでした。

USARTコンバヌタヌモヌドではありたすがその助けを借りお、壊れたハヌドドラむブを修正するこずができたした 。

ファヌムりェアずJTAG䞊のさたざたなMKのデバッグに぀いおは、次の蚘事で説明したす。



L \ Cで発生する可胜性のある゚ラヌ、゚ラヌ、および欠陥を報告しおください。

読んでくれお、このフットクロスを読んでくれおありがずう。



All Articles