SWD I/Fを考えるで考えたものでPCBを作った。(変更点:BUFENはSWDOENとSWCLKENに分割)
ソフトを作っている最中に、VTGT電圧測定がうまくいかなくなることに気が付いて、よくよく調べてみると、マイコン(5V側)がポートをHIGHにしていると、3.3Vが74HC125のピンに印可される。VTGTが0V(オープン)の場合、74HC125のピンから電源(VTGTに接続)に電圧がかかり、VTGTが2.1Vになってしまう。
本当は、マイコン出力はOUTPUT HIGH/LOWで組みたかったけど、レベル変換専用ICを使ってないからにはそう簡単にはいかんってことで、やむなくINPUT HZ/OUTPUT LOWで制御することにする。
こうやってた。
こうする。
単方向レベル変換バッファICはだいたいチャネル数が今回の目的に対しては多すぎるし、めったに使わない部品をまぁまぁの金額で買うのも嫌だったので、今回使わない方針にしたけど、使えばよかった、、、
で改造したのがこちら。ポリイミドテープでR15,16,17,18,19のGND側を浮かせて、リード線でVTGTに接続です。
この手の改造は初老の中年にはきつい。
で、ターゲットの電圧を測定すると。
ターゲットをはずすと。
まぁうまくいっている。
ところで、ATmega328PはAVCCを基準にしてバンドギャップを測定できるはずなのに、Arduinoではできない。(AVCC基準でバンドギャップを測定して、そのあとVTGTを測定して比較することでVUSBが5Vじゃなくても一定の精度を確保できると思っていた)
これはArduinoのwiring_analog.cでMUXレジスタに設定する際に0x07でマスクしていたから、
だったのでwiring_analog.cからコードを拝借して、MUXにマスクしないコードを作成してバンドギャップを測定してみたけど、これがまたいまいち。0.7Vくらいと言ってくる。仕様は1.1V。で、いったんバンドギャップとの比較はせずに5Vを信じている。
写真見るとわかっちゃうけど、LCDの固定穴の位置があってない、、、Samacsysで似た品番があったので使ったもの。ピン配は確認したけど、固定穴は確認せんかったーorz。P板作るとよく失敗するよなー。P板作って失敗すると精神的なダメージが大きいから強く記憶されるんだと思うけど。いや、それにしてもよくミスる。見えてくるまで考え抜くが実践できていないな。
コメントをお書きください