2023.11.25
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第105回]



●SDカードIF(25)ND80Z3.5に接続(18)解決編(3)

前回からの続きです。
どうやらPIC18F2550のリセット直後のプログラムに問題があって、そのためにND80Z3.5との間で行なうデータの送受信のタイミングが食い違ってしまうらしいということがわかってきました。
PIC18F2550(おそらくはそのほかのPICも含めて)のI/Oポートの初期設定は82C55とは違っている、という認識は持っていたはずなのにどうやらうっかりそれを失念してしまい、PIC18F2550も82C55と同じようにI/Oポートの向きを出力に設定するとポート出力はクリアされる(Lになる)と思い込んでしまったようです。
それが問題のあるプログラムを書いてしまうことになったそもそもの原因だと今はそのように考えています。
とりあえずPIC18F2550に限って考えた場合、TRIS命令でI/Oポートの向きを出力に設定しても出力ラッチはクリアされずそれ以前(TRIS命令の実行以前)の値を維持する、というのが正解のようです。
そもそもそれ以前にPIC18F2550のI/Oポートの出力ラッチはリセットによってもクリアされないのか?
そこが肝心のところなのですが、リセットによってもクリアされないと考えなければ辻褄が合いません。
とにかくそのように考えると、ND80Z3.5とのデータの送受信を一旦終了した後再びデータの送受信プログラムを実行したときに(そこでPIC18F2550をリセットした後ポートの初期設定が行なわれます)、先に実行していたデータの送受信の最後のポートの出力値(HかLか)がPIC18F2550のリセット後もそのまま維持されていてその結果前回究明したようなタイミングのズレが発生することになる、と考えることにスジが通ってきます。

真実はいかに?
なんて芝居ががった書き方をしなくてもそこはDataSheetを確認すればおそらくははっきりすることだと思います。
で。
PIC18F2550のDataSheetを確認してみましたところ、以下の表をみつけました。

[出典]Microchip Technology Inc. PIC18F2550 Data Sheet

おお。
しっかり書いてあるじゃありませんか。
ポートによって多少違うところがあるようです。
今回の問題はPORTAのRA2とRA3ですからPORTAとTRISAに限って確認をします。
TRISAについてはPower−on ResetもMCLR Resetも”−111 1111”になっています。
”1”は入力ですからリセット後はPORTAの向きは入力になるということが示されています。
次にPORTAのところを見ます。
最初はここで、あれ?と思いました。
PORTAのビット5と下位4ビットはPower−on ResetもMCLR Resetも”0”になっています。
ゼロクリアする????
82C55と同じ?
ちょいと疑問です。
これについては後で書くことにします。

PORTAにはもうひとつ、出力ラッチがあります。
LATAです。
こちらはPower−on Resetが”−xxx xxx”であるのに対してMCLR Resetでは”−uuu uuuu”になっています。
そこで下の”Legend”を見ますと。
え?
Legend?
Legendというと映画とかドラマなどの影響ですぐ「伝説」という訳が浮かびます。
しかし、伝説では意味が通りません。
で。
調べてみましたらLegendには「凡例」という意味もあるのですね。
納得。
ちなみに「凡例」の読みは「ぼんれい」ではなくて「はんれい」です。

本筋に戻ります。
”u”は”unchanged”で”x”は”unknown”と書いてあります。
おお。
LATAの値はMCLR Resetでは「変わらない」、Power−on Resetでは「わからない」
でした。

しかし。
それならPORTAは”−x0x 0000”、”−u0u 0000”と書いてあるのはなぜ?
とここでしばし悩みましたが、おそらくは「そういうことではないか」と思い当たりました。
PORTAのビット5とビット3〜0はアナログ入力と端子を共用しています。
リセット後は共用する端子はアナログ入力になります。
アナログ入力に指定されている端子を「デジタル」的に読むと”0”が読み出されます。
ここでは多分そういうことを意味しているのだろうと思います。

ここ数日はいつもに増して多忙です。
本日も時間がなくなってしまいました。
細切れでなかなか進みません。
今回は少しだけしか書けませんでした。
この続きは次回にいたします。

PICBASICコンパイラ[第105回]
2023.11.25upload

前へ
次へ
ホームページトップへ戻る