- 2019年4月24日
- 2019年4月24日
I2C-COM仕様を見直します
I2C-COM(コマンド言語の名称)のパーサを実際ターミナルから動かしながらデバッグしていて、使用感が悪いことに気づいたので仕様を見直そうと思います。 (1) 大文字が入力しづらい capital lockすればいいのですが、そう言う習慣がなく、いち […]
I2C-COM(コマンド言語の名称)のパーサを実際ターミナルから動かしながらデバッグしていて、使用感が悪いことに気づいたので仕様を見直そうと思います。 (1) 大文字が入力しづらい capital lockすればいいのですが、そう言う習慣がなく、いち […]
オリジナルはこちら char convertCharToHex(char ch) { char returnType; switch(ch) { case ‘0R […]
ArduinoをMacにUSBポートで繋いで、ターミナルから操作できることを確認します。 === オリジナルスケッチはこちらです。 void setup() { Serial.begin(9600); } void loop() { i […]
コマンドパーサとは、コマンドを解釈するルーチンのことですが、Arduinoのスケッチではloop内に実装します。以下、概略を示します。 === シリアル受信した1文字が ‘S’ならstart()を出しておしまい。 ‘ […]
start/stop/read/writeの各関数を書いていきます。”tSU_STA”等は規定時間以上待つことを意味します。 void start(void) {sda(1); scl(1); tSU_STA; sda(0); […]
start/stop/read/writeの各関数を書き下す前に、SCL, SDAの各信号を操作する関数を作ります。 === void scl(byte) ※引数の形式はbyteであるが、0x00の時はSCL=low、それ以外の時high-imped […]
関数のイメージを作るためにI2Cバスプロトコルを最小単位に分解してみます。 1. START: SCL=high, SDA=fall 2. STOP: SCL=high, SDA=rise 3. write_low: SDA=low, SCL=low […]
ここからいよいよI2C-COMを実装して行きます。 当面Arduinoのスケッチを書くことになるのですが、その準備作業としてSCL、SDAを操作する関数を作ることにします。ここで考慮したいのが、関数にどこまで機能を持たせるかです。高機能で書きやすいの […]
I2C制御コマンドを実装する下準備として、I2C制御コマンドの書式を正確に定義しておきます。 === 1.仮称: I2C-COM 2.文字: 0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|S|P|R|W|T|K|N の23文字。その […]
今日(2018.10.28)は休日ですが、早く方向性を出したかったのでSoftI2CMasterを使って見ました。 結論から申しますと、SoftI2CMasterは使わず、SCL, SDA信号を直接制御することにしました。一から作るのは大変なことは百 […]