久々にRaspberry Piを動かそう。
ついでに、FeliCa Linkも動かすことにする。
基本的な配線は、これでよいだろう。
hiro99ma blog: [felica]FeliCa Linkを動かす
FeliCa Linkのピンは、写真のこの方向で上から順に1, 2, ..., 6番となっている。
RFDETはLEDに、IRQはGPIO4に、SDA/SCLはSDA0/SCL0に接続した。
LEDは、搬送波検知で点灯させたいだけだ。
LEDは抵抗を付けた方が良いのかもしれん。
付けよう。。。付けた。
この状態で、ソフトを書かなくても搬送波検知だけはできる。
うちのNexus5を近づけると、ちゃんと点灯した。
ソフトの方を作る前に、Raspberry Piの準備をせねばならぬ。
ここからRaspbianのJESSIE LITEをダウンロードして、うちはWindowsなのでWin32DisImagerをインストールし、SDカードにWriteするだけだ。
https://www.raspberrypi.org/downloads/raspbian/
SDカードをRaspberry Piに挿して・・・
HDMIのモニタが近くにないので、UART-USB変換ケーブルをピンに挿して起動する。
UARTは115200bpsだった。
loginが出てくるので、「pi」「raspberry」でログイン。
wifi設定は、こちらを見て、WPSした。
Raspberry Pi Raspbian Wheezy(2015-05-05)で最速Wi-Fiセットアップ - Qiita
うちのは、PlanexのGW-USNanoの古いやつだったと思う。
I2Cは、こちらを見て有効にした。
Raspberry Pi の I2C を有効化する方法 (2015年版) – ymyzk’s blog
raspi-configを使った。
2016/11/25版のraspbianだからかわからないが、メニューは7番だった。
それ以外は、同じ(再起動は求められなかった)。
が、だいたいそういうのは失敗しそうだから再起動した。
FeliCa Linkは、こう見えた。
pi@raspberrypi:~$ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
FeliCa Linkのユーザーズマニュアル「5.2.5 I2Cスレーブアドレスレジスタ」によると、出荷時設定は0x40で、レジスタは7bit分だから、そのままI2Cアドレスとして使えばよいだろう。
いや、たまに1bitシフトして8bitのアドレスを示している(下位1bitはR/W)ことがあるので、ビット数を確認しないと不安なのだ。
そして、どうやってI2Cにアクセスするとよいのだろうか。。。
Raspberry Pi でI2C: C言語プログラミング - 猫ぱーんち!
open()して、ioctl(I2C_SLAVE)でスレーブアドレスを指定し、あとはread()/write()でアクセスできるようだ。
lsすると、/dev/i2c-1があるので、これでよいのだろう。
0からじゃないのですな。
昔書いた、mbed用FeliCa Linkライブラリを見てみる。
RCS730 - a mercurial repository | mbed
そうか、IRQの立ち下がりで処理を始めるから、割込み検知する必要がありそうだ。
Raspberry PiでGPIOを使った割り込み処理を行う - ORBIT SPACE
WiringPiでできるらしい。
これで材料は揃ったと思うので、あとは作っていくだけだ。
それは、次回以降で。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。