現状の開発環境(内容が古くなりましたが記録として残します)

現状の機器構成は以下のようになっています。
Mac#1 -> Arduino+自作I2C Shield for master -> 自作I2C Shield for slave -> Mac#2
ここでは贅沢にMacを2台使いましたが、PC/MacでUSBポートが2つ使えればそれで構いません。ハードの初期テストは以下のようにやりました。
slave側のスケッチはシリアルプロッタでSCL, SDAを観測しているだけです。

const byte SCL_I = 13;//ピンの定義。SCLは入力固定。
const byte SDA_I = 12;//ピンの定義。Arduinoの外部ShieldにMOS FETを使った回路を載せて双方向を実現している。スケッチでは入力・出力を分けて記述する。こちらは入力。
const byte SDA_O = 11;// こちらは出力。'0'だとhi-z、'1'だとlowになる。このスケッチでSDAは出力しないので'0'でhi-z、つまりSDAのレベルはmasterに依存する。

byte SCL_V = 0;
byte SDA_V = 0;

void setup() {
  Serial.begin(9600);
  pinMode(SCL_I, INPUT);
  pinMode(SDA_I, INPUT);
  pinMode(SDA_O, OUTPUT);
  digitalWrite(SDA_O, 0);// ここではSDAをhi-zにしておく。SDA_Iのレベルはmaster側の出力に依存する。 
}

void loop() {
  SCL_V = digitalRead(SCL_I);
  SDA_V = digitalRead(SDA_I);
  
  Serial.print(SCL_V+2);// SDAを0 or 1, SCLを2 or 3の位置に表示するため2を加えている
  Serial.print(",");
  Serial.print(SDA_V);
  Serial.println("");

}

ここまで


コメント

このブログの人気の投稿

i2c-tools 備忘録(内容が古くなりましたが記録として残します)

python-smbus(内容が古くなりましたが記録として残します)

I2Cシミュレータを作る