PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第100回]
●SDカードIF(20)ND80Z3.5に接続(13)解決しておきたい問題(2)PICのプログラムを修正しました
前回の記事を書いていて気が付いたことがあります。
下は前回の最後のところでお見せしたPIC18F2550がデータを出力してそれをND80Z3.5が受信するときの信号波形です。
「PIC18F2550は送信データのビット0のH、Lに従ってデータ送信ライン(82C55のPC6入力)をH、LにしてからREADY信号(82C55のPC7入力)をLにします」
という意味のことを書きました。
また「ビット1〜ビット7の送信データはクロックの下がりエッジが過ぎてから出力します」という意味のことを書きました。
しかしND80Z3.5の側もクロックの下がりエッジでデータを読み取ります。
するとPIC18F2550からの次のデータ出力とND80Z3.5がデータ入力するタイミングが同じということになります。
実際にはPIC18F2550はクロックの下がりエッジでREADY/BUSY信号ラインから短いパルスを出力します。
PIC18F2550からの次のデータ出力はそのあとですからセーフといえばセーフなのですがちょいときびしいタイミングです。
どうしてこんなプログラムになってしまったのか自分でもわかりませんがここは直しておくべきでありましょう。
PIC18F2550からのデータ出力はクロックの上がりエッジで出力するのが正解だと思います(下図)。
そのことに気が付きましたのでとりあえずPIC18F2550のプログラムのその部分を修正しました。
READY/BUSYラインの短いパルスは出力しないことにしました。
少し書いただけですが本日は時間がありません。
本日はこれだけで終ります。
PICBASICコンパイラ[第100回]
2023.11.14upload
前へ
次へ
ホームページトップへ戻る