PIC, UART, stdio問題がついに解決 !!

PIC

散々原因不明だったこの問題。ついに解決した。まずは画像から。

このようにつないでみた。またまた環境が違うので、ここのロケーションでは同じDM164137の基板でも、載っているチップはこのように、

PIC16F18446である。これは、秋月で売ってる基板は古いバージョンで、新しいのを今買うと、これになる。ただし、値段は高い!

その状態で、MPLAB X上でプロジェクトを作る。例によってUARTは、MCC上でSTDIOにチェックを入れ、さらにコンパイラはC90でやるのも当然。コンパイル・書き込みは通った!
あと、文字コードはMPLAB Xのプロジェクト・プロパティもTeraTermも、UTF-8で統一だ。

一方、結線はこういうふう。

DM164137の基板上で結線してるのは、TXだけだ。これを、秋月で買ったFT234Xにつなぐ。

このように、RxDにつなぐ。すると・・・

このように、ついにTeraTerm上に文字が表示される。ただし、最初、文字化けした状態で文字が流れる状況のときがあった。その時は、プログラムを走らせたまま、活線状態でピンヘッダを抜き差しする!
こういう常識に反することをやると・・・なぜか初めてうまく行くwww(^^♪

まあこの文字が流れる状況はともかく、TxD/RxDがクロスになるところは、結構罠だ。もちろん、PC-8001の時代よりももっと昔からやってるからクロスケーブルとかは知ってるわけだが、当たり前すぎて忘れていたかもwww。何しろ、こういうICのピン単位の配線をやってるわけだから、それを頭に入れておかないと・・・。PICは多分15年ぶりだが、もしかしたら、RS-232CのTxD/RxDの配線を自分で直にやるのは40~50年ぶりかも???

やはり、ブランクがあるのは良くないですね。どんな分野でも常に現役でいないと・・・

ちなみに、新しいPIC本の296ページには、図5-1-7があって、ちゃんとこのTxD/RxDの配線がクロスになることが明示されている。いい本じゃないか!


※追記、成功したので、ここここもやり直した!
※追記2024.3.25、さらにここもやり直したが、なぜかここはダメなままである。TxD、RxDを念のため逆に接続してみても、全く反応なし。別の原因があるのか?不明。

コメント

タイトルとURLをコピーしました