Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
こんにちは
Questionsに質問したのですが、相談した場所が適切でなかったようなので、日本語フォーラムに再度アップさせて頂きます。 https://developer.mbed.org/questions/5773/LPC82XI2C/?c=15008
Switch Science mbed LPC824を入手しまして、MMA8451とI2Cで通信しようとしたところ、うまく動かず次の質問をしました。 測定器やデバッガなど持ち合わせていないので、他のmbedでInteruptInを利用しI2Cの周波数を低くして、SCLとSDAを見たところ、リスタートコンデションがうまく動いていないようです。
http://developer.mbed.org/questions/5761/I2C-Problem/
mbed-srcのtargets/hal/TARGET_NXP/TARGET_LPC82X/i2c_api.cを確認しましたが、 repeated_startを1にするコードは存在していません。
また、複数バイトの処理であるi2c_read、i2c_writeでは、i2c_param.stop_flag = stop;で設定されているようですが、うまく動いていないようです。この後、どの様にして良いか分からずご質問させて頂きました。
よろしくお願いします。
LPC812ですが以前I2Cの挙動で不思議なことがあったときに調べたものです。 参考になるでしょうか http://pukiwiki.mujirushi.org/index.php?%A4%B3%A4%B3%A4%ED%A4%CE%A4%C8%A4%D3%A4%E9%2F2014-01-30
KAWAMOTOさん
情報有り難うございます。LPC812と同じように、LPC82x User manual Rev. 1 — 18 September 2014の15.3.1 I2C transmit/receive in master modeにMSTDATにスレーブアドレスを書き込んでから (MSTCTLレジスタの)MSTSTARTビットを1にセットすると書いてありました。
この処理は、mbed-srcを見ますとLPC81XとLPC82Xで同じ処理をしていました。LPC82Xには、I2C-bus ROM APIというものがあるようで、i2c_read、i2c_writeの処理が違っていました。やはり、何かこの辺りの記述に問題があるようです。この部分をユーザが修正することは可能なのでしょうか。