ここんとこLPC2388やAT91SAM9ばかり使っていて、AT91SAM7を使ってなかったので、久々にSAM7-H256をひっぱりだしました。これまでSAM7シリーズも、各シリーズで各種周辺機能をそれなりに使っきているつもりですが、そろそろ何か新ネタを探さねばと思っていたところです。そんなおり、あらためて気がついたのがUSARTのIrDA機能。以前からUSARTにIrDA機能が付いていることには気づいていたのですが、IrDAに関する予備知識があるわけでもなく、実験してみることもありませんでした。しかし、改めてネタを求めて見直してみると、USARTのIrDA機能自体は極めて簡単なもので、ハードウェアも単にトランシーバを直結すればいいだけのようです。また、他のMCUを確認してみると、LPC2388やSTM32でもUARTにはIrDA機能が具備されているようです。そんなに基本的なものなら、ちょっと調べて実験してみようと思い立った次第です。
そんないきさつで作ってみた実験ボードがこれ↓です。
秋月のトランシーバ・モジュールをAT91SAM7S256のUSART0とUSART1に直接つないでいるだけです。秋月では2個ひと組で販売しているので、これを向かい合わせに配置することで、片方のポートから送信したデータをもう片方で受信できることを確認しようというわけです。IrDAの規格にもいくつかの種類があり、それに応じてサポートできる通信速度も異なりますが、秋月のモジュールでサポートされているのはVer 1.0でSIRと呼ばれるものです。USARTでサポートされるのは、2400bps~から115200bpsということで、この速度はSIRがサポートする通信速度に相当するので、SIRをサポートしていると言い換えることもできます。
IrDAの規格ではIrLAPというリンク層があって、さらにその上にセッション層としてIrCOMMがあるようですが、物理層のリンクでの通信ができることを確認するのがとりあえずの目標です。そのうちにIrDAを勉強してIrCOMMまで実装してみたいものです。
この実験ボードに載っているもうひとつのモジュールは、同じく秋月で買ってきた3軸加速度センサKXP84-2050です。アナログに加えて、I2CとSPIでの出力もできるものです。秋月でデジタル出力のものを扱っているとは知らなかったので、ついついトランシーバと一緒に買ってきたのですが、特に目的があるわけでもありません。
そんないきさつで作ってみた実験ボードがこれ↓です。
秋月のトランシーバ・モジュールをAT91SAM7S256のUSART0とUSART1に直接つないでいるだけです。秋月では2個ひと組で販売しているので、これを向かい合わせに配置することで、片方のポートから送信したデータをもう片方で受信できることを確認しようというわけです。IrDAの規格にもいくつかの種類があり、それに応じてサポートできる通信速度も異なりますが、秋月のモジュールでサポートされているのはVer 1.0でSIRと呼ばれるものです。USARTでサポートされるのは、2400bps~から115200bpsということで、この速度はSIRがサポートする通信速度に相当するので、SIRをサポートしていると言い換えることもできます。
IrDAの規格ではIrLAPというリンク層があって、さらにその上にセッション層としてIrCOMMがあるようですが、物理層のリンクでの通信ができることを確認するのがとりあえずの目標です。そのうちにIrDAを勉強してIrCOMMまで実装してみたいものです。
この実験ボードに載っているもうひとつのモジュールは、同じく秋月で買ってきた3軸加速度センサKXP84-2050です。アナログに加えて、I2CとSPIでの出力もできるものです。秋月でデジタル出力のものを扱っているとは知らなかったので、ついついトランシーバと一緒に買ってきたのですが、特に目的があるわけでもありません。