hiro99ma blog

何か技術的なこと

ncs: UART RXにHI入力があると電源がONになる (2)

2024/11/08

まずは関係ない話から

昨日の「nRF Connect for VSCode でプロジェクトに置いたオーバーレイファイルを読み込んでくれない」は、これを書いている時点でのExtension v2024.11.22 に問題があるようだ。
1つ前のバージョンに下げるとオーバーレイを認識した。

image

SDK は変更していないので、ビルドの方にはたぶん問題が無くて Extension だけの問題だろう。
アップデートされるのを期待して、しばらくは Extension を前のバージョンにして使う。 Visual Editor の方もバージョンを戻した。

本題

さて、前回は UART_RX を相手側の TX から切断したら電源が入る現象がなくなったという話だった。
次は GPIO の INPUT にしたらどうなるか確認しようとして Devicetree の変更を仕様としてオーバーレイがうまく見えないということに気付いたのだった。
またオーバーレイのやり方についてもまとめページがほしくなったのでDevicetreeの情報を追加していた。

そしてようやく UART_RX を GPIO の INPUT にして相手の TX を挿したところ、やはり電源が ONになる。
やけになって全然関係ない P0.27 に 3.3V を挿してみるとやっぱり電源が入る。
なんなんだー。

GPIO

ここでようやく nRF5340 の仕様書を確認する。
nRF5340_PS_v1.5.pdf の GPIO ページを見るとこうなっていた。

image

最初に ANAEN が出てくるのだが、このファイルで検索してもここしか出てこない。
たぶん “analog enable” の意味で、下側にスイッチしていると analog input になるはず。
まあ、ここでは GPIO 設定もしたので ANAEN=0 と思って良かろう。

次の段が PIN[x].CNF.DIRPIN[x].CNF.INPUT
どちらかではなく両方 ON にできるのか? CNF.DIR の 説明では input か output のどちらかになるように書いてあるので切り替わるタイプだろう。
CNF.INPUT は input が有効かどうかではなく、input のバッファと切断するかどうかの意味だ。

CNF レジスタの初期値は、INPUT=1(inputバッファと切断) 以外は 0 である。
つまり何も設定しなければ GPIO INPUT になっている。

まあ、そもそも GPIO で電源がになってしまうこと自体おかしいよな。
Power management unit の図を見ても電源に関わるピンは VDDHVDD しか書かれていない。
一応テスターでピン間の抵抗を測ってみたが、ショートしているような感じはない(開発ボード

image

この開発ボードの電源は USB からのみだと思うのだよ。回路に疎いけど。
テスターで当たってみたのも VINピンや3V3ピンとの間を見てみただけで 直接VDDなどを見たわけではない。
3V3VDDと直結しているはずなので、そこが大丈夫なら大丈夫だと思うのよ。
他に考えるとしたら、USB から 3.3V を作るところとのショートとかだけど、それだともっとひどいことになってると思うのよねぇ。

よし、あきらめた!
わからんものはわからん。
あー、でも外部スイッチでアクティブローにすると問題がありそうだ。。。 が、それも開発ボードから電源を取ってしまえばよいのか。
気にはなるのでハードウェアの人が現れたら聞いてみよう。それまでは忘れよう。

その他

< Top page