NXP PCA9535を使って


 先日、I/Oの拡張として、NXPの PCA9535を使った。

 ちょっとクセがあったのでメモ。
 初めて使ったので、使い方自体が間違えている可能性もあり。
 データシートやアプリケーションノートを隅々まで見れば何かわかるのかもしれない。

・ラッチがよくわからない。
 どの状態からどの状態になった時にラッチが効いているのかがわからない。FFとかもブロック図には書かれてあるのだが、ラッチされている様子がない。

・I2Cの完全な手順で読み込みができない。
[Start]-[SlaveAdd./W]-[Command]-[ReStart]-[SlaveAdd./R]-[Data]...
 というパターンの読み込みが正常に動作しない。
 書き込みは問題がない。
 読み込みは、[W]、[Command]無しで、
[Start]-[SlaveAdd./R]-[Data]...
 とやれば読み込める。
 但し、読み込みレジスタ(コマンド)は、完全な手順での読み込みたいレジスタを指定して読み込みを実行した後でないと、設定されない。というか、何かを最後に実行したレジスタが読み込まれるようだ。(実際の動作不明)

 つまり、ラッチがされていないようなので、*INTはポートポーリングせずに割り込みで処理した方が良いけど、割り込み内で I2C通信なんかしたくないし、と、困る。

 また、読み込みは、Port0/1共に連続読み込みで取得できるのだが、「InputPortを読む」という指定をしてやるために、一度は I2Cの完全な読み込み方法を試してやらないといけない。但し、試してやっても、完全な読み込み方法では正常に読むことができない。

 不明点が多すぎ。
 但し、上記のことに注意してやれば、連続読み込みもできるので、ポート処理中は他の処理をしない、という前提であれば、使えるのかもしれない。
 仕様上は、非常に便利そうだったのだが。その目的通りに使うことができなかった。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック