ホーム › フォーラム › Texas Instruments › マイコン › MSP430 › I2Cスレーブ動作について
このトピックには4件の返信が含まれ、2人の参加者がいます。5 年、 10 ヶ月前に va-ss さんが最後の更新を行いました。
-
投稿者投稿
-
I2Cスレーブ動作について
デバイス型番:MSP430FR2433お世話になっております。
現在MSP430FR2433評価ボードをI2Cのスレーブとして動作させていて、
マスター側(PSoC 5LP)のCPUクロックの周波数を変えると
MSP430のRX時に挙動が変わるのですが、正常でしょうか?
(TX時は変わらない)なお、MSP430側のMCLKはデフォルト(1MHz)にしています。
動作シーケンスは下記です。
1. LPM3モードに入れる
2. RXIFGで各byte読み込み
3. STPIFGでLPM3モードを抜けるマスター側のCPUクロックが低い場合(3MHz)は
上記の動作になるのですが、
マスター側のCPUクロックが高い場合(12MHz)
には最後のbyteを読み込む前にSTPIFGが立ってしまっているようです。
(最後のbyteが読み込めない)I2Cで、このような現象が起きるのは
不可解な気もするのですが
マスター側とMSP430側のCPUクロックが異なることで
挙動が変わることはあるのでしょうか?va-ss様
マスター側のCPUクロックを変更されての症状発生、とのことですが、このときのI2Cクロック速度に差分はございますでしょうか。
MSP430データシートより、I2Cクロック(fSCL)はMax 400kHzでございます。マスター側CPUクロックの変更により、マスター側I2Cクロックの速度に影響がないか、信号波形をご確認をいただけますようお願いいたします。
よろしくお願いいたします。
Cruijff- この返信は5 年、 10 ヶ月前に クライフ さんが編集しました。理由: htmlコマンドが表示されたため
- この返信は5 年、 10 ヶ月前に Web Master さんが編集しました。
ご回答ありがとうございます。
測定したI2Cの波形を添付いたしました。
マスター側のI2Cクロックは100kHz設定としておりまして、
波形を見る限りマスター側のCPUクロック変更によるI2Cクロックはほとんど変化していないように見えます。
横軸1目盛り100usですので、およそ100kHz(1クロック10us)にはなっているかと思います。両者で異なる点は、各バイトの送信間隔ですが、
この差によって何か挙動の違いが出ているのでしょうか?
あるいは、マスター側のプログラムに何かしらの不具合がありそうでしょうか?よろしくお願いいたします。
Attachments:
申し訳ございません、説明が抜けておりました。
添付の波形ですが、送信間隔が長いほう(下の画像)が
マスター側のCPUクロックが低い場合(3MHz)です。よろしくお願いいたします。
va-ss様
波形を送付いただき、ありがとうございます。
送信間隔の差分であれば、
データ1バイトをI2Cで受信してから、次の1バイトを受け取るまでの間に、
MSP430の割り込みによるソフト処理が追いついていない、
といった可能性がございますが、こちらの見解はいかがでしょうか。ご提示頂いた3つの動作シーケンスをより単純にする、もしくはMSP430のCPU処理速度を上げる、
といった対策で改善されるか、ご確認をいただければ幸いです。以上、よろしくお願いいたします。
Cruijffご回答ありがとうございます。
MSP430の割り込みによるソフト処理が追いついていない可能性がある
ということで、承知いたしました。特に不具合ということではなさそうですので、
MSPのプログラム側での対策を行いたいと思います。よろしくお願いいたします。
-
投稿者投稿