JTAGKey2互換回路をもっと使ってみる3 -決着をつけてやる!-
とりあえず回路図見たい奴は此処や!
●モロ!
2010年に始まり2013年に一応の決着を見たはずのJTAGKey2互換回路製作ですが・・・
ねむいさんは未だモロにこだわっていた。尤もここでいうモロは未加工の紳士画像を
虹裏に張り付けせしめる野蛮な行為ではなく、FT2232HのLVTTLの出力を電圧レベル
トランスレーター74LVCE1G125の5V動作時のCMOS入力に直接モロに入力せしめる
乱暴な行為を指します。
JTAGKey2互換回路において、モロで何が悪いかというとターゲットの電圧が5V系で
動作してるケースです。このとき74LVCE1G125のVIHは3.5V以上となり、FT2232Hの
LVTTLの3.3Vの出力では規格を満たすことができません。
逆に74AHCT541等の高速なバッファを挟んで正規に5VCMOSレベルまで上げてみまし
たが今度はAHCTバッファの大きな伝搬遅延が影響してFT2232Hの特徴である30MHz
動作が出来なくなってしまいました。
そんなわけで私は5V系で電圧・動作温度にマージンをかなり取ってモロった時の動作に
問題が無いことを確認し、規格は満たしてないけど私の回路図と指定した部品使えば
5V系でも実力値で問題なく使えます!…とお茶を濁していました。
しかし心の奥底でルールに反した事をしているとわだかまりを残したまま、TTLレベル
入力でなおかつ1.4〜5.5Vの電圧範囲で動き、それでいて伝播遅延も少ない夢のような
デバイスの到来を期待しておりました…。
●アチャモ・・・
時は流れ、半導体製造プロセスも進化したおかげか5V動作時にTTLレベルの入力電圧
範囲を持ち、それでいて速度もそこそこ早く動作電圧範囲もそこそこ広いまさに待ち望
んでいたバッファICがリリースされておりました!TIから2014年秋口にリリースされた
LV系レベルシフタSN74LV4T125です!
以前からワンゲートロジックのSN74LV1T125は既に出ていたましたがSN74LV4T125は
4回路ぶんコミコミでなおかつ出力電流と伝搬遅延特性が改善されています。
電圧範囲は1.60~5.5Vとちょっと電圧下限の保証が低いけどこれなら勝てる!!
しかし…
遅延で1ビットずつずれてやがる…orz
ちなみに正常に認識した時はこのような感じになるはずでした。
なんか包帯ぐるぐる巻きの猪狩さんに気を取られているうちに佐山聡似の不気味な飴玉
レスラーに不意打ちを受けてさらにチョビ髭ノッポなキックボクサー崩れのレスラー(?)
に追い打ち喰らって「あちゃ〜〜もろ・・・・」とか言われたような気分です。
やはりTTL入力を実現するため追加されているはずの内部ゲートの遅延がかなり
足を引っ張り結局74AHCT541を経由させたのと同じになっちゃいました。
そんなわけで安きに逃げるのは止めて既存のFT2232Hを使用している+5V動作を
保障しているJTAGアダプタたちは実際にどのようにして電圧レベルの変換を行い、
かつ速度も保証しているのかじっくり調査をしてみることにしました…。
●あくまでもモロにこだわる
夜逃げしたAmontecの過去の資料を穴の開くほど調べてみるとオリジナルJTAGKey2
のサポート"電圧"は確かに1.4V〜5.5Vでした。
この"電圧"と言うのはターゲット電圧(Vtgt)そのものを指し、JTAGインターフェース
のI/Oの電圧レベルではありません。AmontecJTAGKey2の紹介文をよく読んでみると、
"5V"ではなくわざわざ"5VTTL"と明記されています。5VTTLの出力は5VCMOSの
入力を満たすことができませんのでオリジナルのJTAGKey2はVtgtが5Vであっても5V
フルスイングのCMOSレベルの出力を出せていなかった可能性があります。
ほんとにそうなのかは販売元のAmontec及びAmontecの中の人にI/Oの電圧特性に
ついて詳細を聞けばよいのですが残念ながら夜逃げして早数年経った今はそれはかない
ません。しかもいくつかMLに残された中の人の軌跡を手繰ってみると中の人はサポート
下限は1.4Vのはずなのに1.2Vとのたまっていたり5VCMOSサポート!とおもいくそ
のたまっていたり議論中に突然Amontecの製品の宣伝をしだしたり挙句の果てに"問題は
モニタとイスの間にある!(=お前もう出てけ!)"と言われたり夜逃げしてからは"あいつ
もう死んだんじゃねーの?"とか言われたりボロクソです。最早あまりのクソコテっぷりに
Switzer版ぴるすにしか見えないんですけぉ…
ねむいさんも彼を墓から引きずり出して殴る蹴るの残虐行為はしたくはないのですが、
オリジナルのJTAGKey2の電圧/速度スペックについてはほんとに額面通りであるのか?
懐疑的にならざるを得ませんでした。
とにもかくにもI/O電圧のレベルの上限は5VCMOSではなく、5VTTLレベルであること
は明確となりましたので一歩前進です。5VTTLレベルの出力規格2.4V以上をみたし、
なおかつFT2232Hの出力(3.3V-LVTTL)と74LVCE1G125たちのVIH(0.75VDD)を満たす
ためにはVtgtから何らかの形で電圧を落とし74LVCE1G125に掛かる電圧(Vrefとします)
の上限値を4.0V付近にクランプしてやれば解決です。
また乱暴なことを…と言いたい方もいらっしゃいますかと思いますが実はこの技、5V系
なVtgtで受けつつTTLレベルの電圧をやり取りするために実際に商業向けの商品にも
使用されているれっきとしたものです。それが使われている例をご紹介します。
↑xilinx platformcable データシートより引用
xilinxのプラットフォームケーブルUSBI/IIはデータシートに入出力バッファについて
の極めて有用な解説が記載されています(ここまで細かい資料って昔あったっけ????)
↑xilinx platformcable データシートより引用
プラットフォームケーブルはJTAGの出力にはUHSBufferなるNC7SZ125が使用され、TDO等の
入力には3.3V動作の超高速コンパレータで約1V前後のスレッショルドで取り込まれています。
(※プラットフォームケーブルIIは単なるロジックで受けているようです)
↑xilinx platformcableII データシートより引用
さらにVrefを生成するための回路は至って原始的で3.9Vのツェナーダイオードと抵抗で
Vtgtを強制的に3.9V付近にクランプさせUHSBuffer等に供給するVref上限を3.9Vまで
としていました!もちろん5Vをぶち込むとそこで80mA以上消費され、ダイオードと
抵抗にかなりの発熱を伴うのは容易に分かりますがなんて男らしい実装だ…!
さらにUHSBufferたるNC7SZ125は2000年代初頭にすでに存在している高速ロジックIC
なのですが、こいつの推奨動作電圧範囲の下限は1.65Vとなります。つまりプラット
フォームケーブルが保証しているはずの1.5VLVTTL/CMOSはこのロジックICの推奨範囲
から逸脱して使用されているわけで勿論設計された当初は74LVCEシリーズなんて存在
しなかったので結構ルールから外れた(でも最大定格範囲内の動作を守っている)結構
苦しい使い方されていたのが判明しました。
オリジナルJTAGKey2でも中の人が言っていた"UHSBuffer"とやらのスペックを見ると
当時の状況からはこのNC7SZ125以外に選択肢は考えられないので"最大定格範囲を
超えない"ようにしつつ推奨動作定格を破って動かしていた可能性が極めて高いと推定
しました。おそらくVtgtも何らかの形で4.0V付近にクランプしてVrefを作っていた
はずです。さすがにツェナーダイオード+抵抗の超乱暴実装ではないはずですが…。
まさか…。
また、CMOSの特性上VDDが低下すると伝搬遅延時間も大幅に増加していきます。
↑xilinx platformcableII データシートより引用
プラットフォームケーブルのデータシートではそれについての注意事項がありますが、
オリジナルJTAGKey2にはそんな記述すらないのですがTCK=30MHzの最大スピードで
動作せしめられるようなものは3.3V系のごく限られたターゲットのみでそれ以下の
電圧や速く動くデバイスがそもそも存在しない5V系では結局は良くても最大10MHz
くらいしか出せなかったのではないかと推測します。
●私はもうティキンじゃない
そんなわけでだいぶ実態が分かってきました。ねむいさんが取れる選択肢は究極
の二択になります。
一つ、冒頭のSN74LV4T125を使用して30MHz動作と1.65V以下の保証を捨てる。
->1.5VCMOS/LVTTLを使用する場面や30MHz動作できるターゲットがほとんどないので
そいつらをあきらめてSN74LV4T125で組むと自作のハードルがかなり下がります。
5VCMOSでも規格を満たします。初めてドングルを作る人向けです。
一つ、オリジナルのJTAGKey2のロジックレベル保証を忠実に守る。
->1.5VLVCMOS/LVTTLから5VTTLに至るまでの電圧範囲をサポートせしめる!!!
2015年現在存在する新しい超高速ロジックICなら低電圧領域でも速度がある程度
保証されます。その代り回路は複雑になり、使い方にも注意が必要です。
ねむいさんはもちろんオリジナルJTAGKey2の電圧範囲を忠実に守ります!!!
そんなわけでJTAGKey2Compatibleのキモにあたる部分の解説をおさらいを
兼ねて改めてしていきましょう。
TCK,TDI,TMS,SRST,TRSTはDIODES-Zetex社の74LVCE1G125です。
1.4Vから動作するので1.5V系も正式にサポートです★
TDO,RTCK,SRST_inはNexperia(旧NxP)社の74LVC2T45です。こいつは1.2Vから動作する
すごい奴です。この図だけ見るとパスコン乗せてないように見えますが
PDFにはちゃんと乗せてますのでご安心ください。
オプション扱いだった74AHCT541は廃して今回新たに4V出力のレギュレータを追加し
ました。これで5V系のシステム相手でも5VTTLの電圧レベルをサポートできます!
4V以下ではLDOの特性上内部消費電流が増加しますがこの東芝のTCR2EF40は内部
消費はmA以下のオーダーなので発熱も全くなく電圧クランプとしての役割を十分に
果たしてくれます。さらに最低動作電圧は約1V付近と一般的なLDO比べて十分低い
ので1.5V系の時の動作でも電圧が暴れず安定して使用できます♥
勿論全てのLDOがこのような使い方ができるとは限りません!しっかりとデータシート
の特性グラフとにらめっこして目的に最適なものを選んでいきましょう!
●ありがとうV戦士モロ
2年前作ったJTAGKey2CompatibleRev.4にレギュレータを追加しただけですので
見た目はまったく変わってません。74AHCT541乗っかったままですが
どこにも繋がっておらずもはやただのオブジェと化しています。
レギュレータは赤丸でかこった箇所につけました。現在は1608サイズで10uFで
しかも温度特性もそこそこのよいMLCCが売られているので早速使っています★
3.3Vの挙動については回路構成はRev.4以前とまったく同じですので5V系と1.5V系
のきわきわの動作を見ていきます。
前回と同じ条件でATMEGA1284Pをターゲットデバイスに選び検証します。今回は電圧
レベルの問題で引っかかるのはJTAGKey2内部ではなくJTAGKey2の出力バッファと
AVR間です。AVRを選んだ理由は前回と同じものを使ったから条件があわせやすいのと
VIHが通常のCMOS(0.7~0.75VDD)よりも大きい0.8VDDを要求しているからです。
VDD=5.65Vの厳しい条件で温度を振って書き込みや消去が正常にできたらねむいさんの
勝利です!!!
(注:1.5Vの時はAVRの動作補償範囲からはずれ、JTAGのTCK周波数許容値が
下がってしまうので今回は一律10MHzではなく4500kHzで検証しています。)
勝った・・・!
手抜きではないのですがATMEGA1284Pの動作保証下限1.8Vを割って1.5Vでも
問題なく動作可能です♥これで1.5VLVCMOS~5VTTLレベルの電圧レベルでは
完全に動作することが確認できてさらに5VCMOSレベルも問題なく動作する実力が
あるのもわかりました♥
ちなみにATMEGA1284Pの内部CR発振器は結構根性があって一度発振できたら1.35V
くらいまで下げても余裕で動作するのがわかりました。電池一本で動きますよ。
さすがにJTAGのTCKの周波数は大幅に下がって1MHzくらいじゃないと駄目ですが。
動作可能なI/O電圧レベルを表にするとこんな感じです。最もパフォーマンスが
出るのは3.3VLVCMOS/LVTTLの時です。5VCMOSでは上述のとおり規格を一部
満たしていませんが動作する実力が確認されたので×ではなく△印つけています。
尤も相手がCMOSならば入力電流もMAX10uA位しかないでしょうから3.8V以上は
余裕で保てるので+5VCMOSでも問題ないですね。
そんなわけで長きに渡る戦いに終止符を打たせていただきます。ですがこれから先、
技術革新が進みTTL入力コンパチでなおかつ伝播遅延が3.3Vでも3nSec以下のすごい
バッファICが出たらまたJTAGKey2Compatibleの改良に取り組みたいと思います!
JTAGKey2Compatible Revision5
↑OpenOCDでSWDしたいときの追加回路もついでに追加しています。
-
免責・連絡先は↑のリンクを
↓SNSもやってます↓
powered by まめわざ- ARM/STM32 (116)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (13)
- FPGA (4)
- GPS/GNSS (19)
- MISC (81)
- STM8 (2)
- Wirelessなアレ (16)
- おきぱ (1)
- ブラウザベンチマーク (28)
- 日本の自然歩道 (25)
- STM32U0はぢめました
⇒ ねむい (08/07) - STM32U0はぢめました
⇒ ひかわ (07/28) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (05/17) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - いろいろ試す61(と今年の反省会)
⇒ ねむい (01/02) - いろいろ試す61(と今年の反省会)
⇒ ひかわ (01/02) - いろいろ試す61(と今年の反省会)
⇒ ひかわ (01/01) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (12/31) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ひかわ (12/31)
- October 2024 (1)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (2)
- January 2024 (1)
- December 2023 (4)
- November 2023 (2)
- October 2023 (2)
- September 2023 (1)
- August 2023 (2)
- July 2023 (1)
- June 2023 (2)
- May 2023 (3)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (2)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (2)
- November 2021 (2)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- March 2021 (1)
- February 2021 (1)
- January 2021 (1)
- December 2020 (3)
- November 2020 (1)
- October 2020 (1)
- September 2020 (1)
- August 2020 (1)
- July 2020 (1)
- June 2020 (2)
- May 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- December 2019 (3)
- November 2019 (1)
- October 2019 (1)
- September 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (1)
- January 2019 (1)
- December 2018 (3)
- November 2018 (2)
- October 2018 (1)
- September 2018 (1)
- August 2018 (1)
- July 2018 (1)
- June 2018 (1)
- May 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (1)
- January 2018 (1)
- December 2017 (2)
- November 2017 (2)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- February 2017 (2)
- January 2017 (2)
- December 2016 (7)
- November 2016 (2)
- October 2016 (2)
- September 2016 (1)
- August 2016 (1)
- July 2016 (1)
- June 2016 (1)
- May 2016 (2)
- April 2016 (1)
- March 2016 (2)
- February 2016 (1)
- January 2016 (1)
- December 2015 (3)
- November 2015 (1)
- October 2015 (3)
- September 2015 (2)
- August 2015 (2)
- July 2015 (3)
- June 2015 (3)
- May 2015 (4)
- April 2015 (2)
- March 2015 (4)
- February 2015 (1)
- January 2015 (3)
- December 2014 (3)
- November 2014 (2)
- October 2014 (1)
- September 2014 (2)
- August 2014 (2)
- July 2014 (3)
- June 2014 (2)
- May 2014 (1)
- April 2014 (1)
- March 2014 (4)
- February 2014 (4)
- January 2014 (3)
- December 2013 (5)
- November 2013 (4)
- October 2013 (3)
- September 2013 (2)
- August 2013 (2)
- July 2013 (2)
- June 2013 (3)
- May 2013 (2)
- April 2013 (2)
- March 2013 (2)
- February 2013 (2)
- January 2013 (3)
- December 2012 (4)
- November 2012 (2)
- October 2012 (2)
- September 2012 (4)
- August 2012 (1)
- July 2012 (3)
- June 2012 (2)
- May 2012 (3)
- April 2012 (3)
- March 2012 (2)
- February 2012 (3)
- January 2012 (3)
- December 2011 (5)
- November 2011 (3)
- October 2011 (2)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (3)
- December 2010 (7)
- November 2010 (1)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (4)
- May 2010 (1)
- April 2010 (2)
- March 2010 (2)
- February 2010 (2)
- January 2010 (3)
- December 2009 (3)
- November 2009 (8)
- October 2009 (7)
- September 2009 (5)
- August 2009 (4)
- July 2009 (6)
- June 2009 (6)
- May 2009 (14)
- January 1970 (1)
Copyright(C) B-Blog project All rights reserved.
Comments
Post a Comment