秋月の気圧センサ SCP1000-D01は、SparkFunの同等商品と比べて半分程度の価格なので喜んで購入したのはいいのですが、当初はMMlpc2368とつなげてもどういうわけかちゃんと動いてくれませんでした。標準電圧は2.7Vですが、測定誤差を無視してしまえば3.3Vでも動作には問題ないハズなので、3.3Vで使っています。
問題はレジスタの読み書きがちゃんとできていないというもの。読み出したデータがいつも0x00になってしまいます。基本的にSPIでつなげばいいだけのセンサなので、何も難しいことはないと思っていたのですが。。。試しに、プルアップを禁止してみたりもしたのですが、変化無し。安かったとはいえ、それでも1800円もしたものなので、簡単には諦められません。パスコンは、モジュールに載っているのでいいとして、試しに各信号端子にもコンデンサをつけてみたら、SCKに0.01uFをつなげるとレジスタが読めるようになることが判明。理屈はわかりませんが、とにかく1800円が無駄にならなっただけで満足です。0.01uFという値も意図的に選択したわけではありません。たまたま、手持ちの104の在庫がきれており、かわりに余っていたのが103だったというだけの理由だったりします。0.1uFでも動くのかどうかは確認していません。
さてこのセンサ、測定データの準備ができたことをホストに通知するためのDRDYという端子をもっています。こいつをGPIO割り込みで検出することにしました。割り込みがあったら、SPIで気圧と温度のデータを持つレジスタを読み出してやります。
一緒に表示されているのは、照度センサS9705の周波数を示す値です。余っていたのがあったので、つけておきました。こちらはCAP0[0]につないであり、タイマのカウンタモードをつかって周波数を測定しています。
問題はレジスタの読み書きがちゃんとできていないというもの。読み出したデータがいつも0x00になってしまいます。基本的にSPIでつなげばいいだけのセンサなので、何も難しいことはないと思っていたのですが。。。試しに、プルアップを禁止してみたりもしたのですが、変化無し。安かったとはいえ、それでも1800円もしたものなので、簡単には諦められません。パスコンは、モジュールに載っているのでいいとして、試しに各信号端子にもコンデンサをつけてみたら、SCKに0.01uFをつなげるとレジスタが読めるようになることが判明。理屈はわかりませんが、とにかく1800円が無駄にならなっただけで満足です。0.01uFという値も意図的に選択したわけではありません。たまたま、手持ちの104の在庫がきれており、かわりに余っていたのが103だったというだけの理由だったりします。0.1uFでも動くのかどうかは確認していません。
さてこのセンサ、測定データの準備ができたことをホストに通知するためのDRDYという端子をもっています。こいつをGPIO割り込みで検出することにしました。割り込みがあったら、SPIで気圧と温度のデータを持つレジスタを読み出してやります。
一緒に表示されているのは、照度センサS9705の周波数を示す値です。余っていたのがあったので、つけておきました。こちらはCAP0[0]につないであり、タイマのカウンタモードをつかって周波数を測定しています。