最適解?
公私、どちらでもstm32を使うんだけど。
NRSTとBOOT0の2つのピンを、一つの回路で
コントロールするために、スレッショルドの違う
2つの回路を用意している。
ことあるごとに色々な方法を考えてきたんだけど、
流石に回路ごとにスレッショルドを分けるために、
それぞれ別の素子にならざるを得なくて、
部品点数の削減が難しい。
それでも、正論理のオープンドレインバッファを
3ステートバッファで実現して、
なんとか成立させているんだけど。
------
最近、ウインドウコンパレータICを使えば
できそうだな、と思いついた。
TPS3700が使えそうだ。
スレッショルドは、好きに設定できそうだし、
2つある出力、片方が正論理でもう片方が
負論理動作でピッタリだ。
こういう用途に使うICじゃなさそうだけど、
成立すれば、部品点数が減らせる。
ピン数、回路数はそれなりにへるし、
なかなか最適解チックで、よさげだ。
次の回路設計で試してみるか。
誰かに説明するのは、ますます難しくなりそうだが。
| 固定リンク | 0
« ものすごい責任? | トップページ | そもそも »
コメント
TPS3700 参考にいたします。
スレッショルドの異なる2回路入れている理由は、立ち上がりタイミングの制御ですか?(私は内部のPOR に頼りっきりですね)
USB 接続の機器で製品リリース後にstm32 のファームアップデートをする要求が上がったのですが、みんなポンパでできると思っているみたいで説明が面倒です。
ブートローダを書くのは大変ですし、DFU 利用なら失敗に備えて別チップを載せるのが安全ですし、悩みは尽きません。
投稿: ぶらざー | 2020年8月23日 (日) 18時13分
USBアップデート、目の前にターゲットがあるなら
まだいいですけど、リモートでやるのちょっと恐ろしいですね...
自前のボード、複合入力ピンは、オープンではPOR。
0Vでリセット入力。
1.65Vで、BOOTモードになるようにしています。
投稿: w谷 | 2020年8月23日 (日) 18時49分
ボード上では1kΩでプルアップされています。
ピンを直接GNDに落とすとCPUリセット+BOOT0ピンがH。
1kΩ経由でGNDに落とすとBOOT0ピンがH、だけになります。
リセットラインには、コンデンサが追加されていて、
入力に対して若干遅れて立ち上がります。
リセットを解除したあと、すぐにオープンにすると
通常のリセット解除となり、
GND直接接続を解除後、しばらく1kΩでの接続を
保持しておくと、ブートモードに入ります。
投稿: w谷 | 2020年8月23日 (日) 21時27分
ありがとうございます。動作理解しました。
マイコンのboot まわりは悩み多きところです。"firm"ware なんだから、そうそうアップデートするものでもないでしょ?という気もします。しかし、firmware がリッチになってアップデートしたくなるのも分かります。
投稿: ぶらざー | 2020年8月27日 (木) 10時04分