これまで空いていた場所に電話用のテンキーを配置しました。千石で700円で売られていたのを見つけて使ってみました。
全部で12キーなので、3 X 4のマトリックス構成です。従い端子は7端子でいいはずなのですが、どういうわけかキーの下部についている端子は8つあります。裏側のネジをはずして調べてみると、一番左の端子はベタアースのパターンになっていました。
テンキーが付いたので、電話番号の入力はできますが、オンフック等の操作をするためのキーがありません。そこでLCDの右側にジョグダイアル風のナビゲーション・スイッチを付けてあります。値段が高いけど、2.54mmピッチで簡単に取り付けられるので便利です。上廻し、下廻し、プッシュの3種類の操作ができます。
これらをつなぐには、テンキーで7ポート、ナビゲーション・スイッチで3ポートの、合計10ポートが必要です。当初はI²CのGPIO Expanderを使うことも検討していましたが、AT91SAM7S256の未使用だったPIOピンを数えると、11ポートあったので直接つないでいます。CODECが出力ポート機能を持っており、LEDやモータをつなぐのにポートを消費せずに済んだので助かりました。
AVRと同じように、AT91SAM7SにもPin Change割り込みの機能があるので、これを使ってキーの検出をすることもできますが、どうせチャタリング処理も必要となるので、20ms周期でポーリングして処理することにしました。
LCDの左上にある丸いのが円盤型振動モータです。ゴムシートの上に載せてみましたが、うまいことブルブルと震えることができずにいます。
これでようやくと電話機としての格好が整いました。いちおう、キーを使っての発信や着信もできるようにソフトも組んだので、次回の記事で説明することにします。
全部で12キーなので、3 X 4のマトリックス構成です。従い端子は7端子でいいはずなのですが、どういうわけかキーの下部についている端子は8つあります。裏側のネジをはずして調べてみると、一番左の端子はベタアースのパターンになっていました。
テンキーが付いたので、電話番号の入力はできますが、オンフック等の操作をするためのキーがありません。そこでLCDの右側にジョグダイアル風のナビゲーション・スイッチを付けてあります。値段が高いけど、2.54mmピッチで簡単に取り付けられるので便利です。上廻し、下廻し、プッシュの3種類の操作ができます。
これらをつなぐには、テンキーで7ポート、ナビゲーション・スイッチで3ポートの、合計10ポートが必要です。当初はI²CのGPIO Expanderを使うことも検討していましたが、AT91SAM7S256の未使用だったPIOピンを数えると、11ポートあったので直接つないでいます。CODECが出力ポート機能を持っており、LEDやモータをつなぐのにポートを消費せずに済んだので助かりました。
AVRと同じように、AT91SAM7SにもPin Change割り込みの機能があるので、これを使ってキーの検出をすることもできますが、どうせチャタリング処理も必要となるので、20ms周期でポーリングして処理することにしました。
LCDの左上にある丸いのが円盤型振動モータです。ゴムシートの上に載せてみましたが、うまいことブルブルと震えることができずにいます。
これでようやくと電話機としての格好が整いました。いちおう、キーを使っての発信や着信もできるようにソフトも組んだので、次回の記事で説明することにします。