久々の投稿になります。
4月ごろにM5Stackの存在を知って購入し、電子工作向けなどちょっとしたツールを作れないか、色々調べつつ検討してきました。
で、お盆休みの1週間を使って、やっとラインモニタ(UART)を何とか形にしました。
この段階ではソフトウェア上の話なので、実際に使えるようにするには、RS-232C信号を入力するインタフェース回路が必要になります。
で、色々と失敗したので、書き残しておこうかと。
まず、これです。
最初は普通にRS-232Cレシーバを使おうかと思ったんですが、すぐ入手できそうなのは2回路入り位で、そうなると基板に載りそうもないので、とりあえずダイオードクランプで、0~3.3VでリミッタかけてHC540で反転してやればいいかと思って、ユニバーサル基板に実装してみました。(下の写真は、実際の実装状況。M5Stack用ユニバーサル基板を使ってます)
失敗その1
使ったダイオードですが、ショットキーバリアの1SS174。順方向電圧をなるべく小さくと思ったんですが。
この基板を連結すると、M5Stackが立ち上がりません。突入電流が大きくて、電源が上がらない場合のような挙動です。この基板を外してからM5Stackを起動し、後から連結すれば3.3Vは来ています。
ダイオードと抵抗だけにして(入力はオープン。HC540は載せない)も同様。
どうやら、ダイオードの逆電流が原因であるようです。基本的にカソードからアノードは電流が流れないと思っていたんですが、ショットキーバリアは比較的大きいようです。(正直、ダイオードなのにホントか?って思うんですが、挙動からして、他に説明できない)
対処として、ダイオードの+側クランプをHC540出力で制御するようにしてみました。(これだと、HC540が出力OFF時は+側の保護が効いてないんですけどね)
失敗その2
上記の対処で、M5Stackの起動はクリア、モニタ中はダイオードクランプも問題なし。
と思ったんですが、やっぱりダイオードの逆電流が問題に。
入力をオープンのとき、プルダウン抵抗があるのでGNDレベルになると思ってたんですが、HC540の入力端子レベルで1.2~1.3V程度になっています。+側ダイオードから流れ込んでくる電流がプルダウン抵抗を通ることで電圧が持ち上がってしまうと考えられます。プルダウン抵抗の両端で電圧を測ると0.5Vくらいだったので、100Kの抵抗で5uAということになります。
結果的に、3.3V電源で動作しているHC540のノイズマージンがほとんどない状態で動いている状況で、ときどきノイズを拾って変なタイミングで制御信号が反転したりします。
そのうち、プルダウン抵抗をもうちょっと小さくしてみる予定。
あんまり小さくすると、(接続相手の)RS232Cドライバの負担になりますが。(100Kに決める前は、数Kにして実験してたんですが、一定レベルの出力になるはずが発振してしまう状況でした。ドライブ能力があまり高くないのか、駆動しきれずに発振してたんだと思います。)