[戻る]
過去ログ [ 0001 ]
過去ログ:     ワード検索: 条件: 表示:

タイトル
記事No
投稿日
投稿者
参照先
I2CスレーブでのSleepからの復帰
487
: 16/02/17-18:31
I2C

PIC24FJをI2CスレーブでSleepさせた状態でMasterからの送信で割り込みは
かかるのですが正しい値を受信できません。送信要求割り込みに対する
送信は正しくできています。sleepさせないと正しく動作します。
原因は何でしょうか。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: I2CでのSleepからの復帰
488
: 16/02/18-09:23
Gokan

I2Cスレーブの割り込みには下記の3種類がありますから
これらを区別して処理する必要があります。
詳細はPIC24 Reference Manualの「第24章 I2C」を参照してください。

・有効なアドレス検出時
・ACKまたはNACK要求時
・データ受信時



> PIC24FJをI2CスレーブでSleepさせた状態でMasterからの送信で割り込みは
> かかるのですが正しい値を受信できません。送信要求割り込みに対する
> 送信は正しくできています。sleepさせないと正しく動作します。
> 原因は何でしょうか。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^2: I2CでのSleepからの復帰
489
: 16/02/19-14:09
I2C

Gokan様

ご回答ありがとうございます。
資料ざっとながめましたが、スリープとそうでない場合の
割り込みの違いが見当たらないように思えます。
スリープとそうでない場合の割り込みは異なるという認識で
よろしいでしようか。ldleては動作するようです。
よろしくお願いします。
> I2Cスレーブの割り込みには下記の3種類がありますから
> これらを区別して処理する必要があります。
> 詳細はPIC24 Reference Manualの「第24章 I2C」を参照してください。
>
> ・有効なアドレス検出時
> ・ACKまたはNACK要求時
> ・データ受信時
>
>
>
> > PIC24FJをI2CスレーブでSleepさせた状態でMasterからの送信で割り込みは
> > かかるのですが正しい値を受信できません。送信要求割り込みに対する
> > 送信は正しくできています。sleepさせないと正しく動作します。
> > 原因は何でしょうか。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^3: I2CのSleepからの復帰
490
: 16/02/19-17:22
Gokan

スリープでもRun状態でも割り込みは一緒です。
Idleで動作するということは、スリープからのWakeUp時間が
遅いことが原因かと思います。特に外部発振の場合は遅れます。

立ち上がり中に次のバイトの受信ができなくなっているのでは?
再送などの追加処理が必要かと思います。

        以上


Gokan様
>
> ご回答ありがとうございます。
> 資料ざっとながめましたが、スリープとそうでない場合の
> 割り込みの違いが見当たらないように思えます。
> スリープとそうでない場合の割り込みは異なるという認識で
> よろしいでしようか。ldleては動作するようです。
> よろしくお願いします。
> > I2Cスレーブの割り込みには下記の3種類がありますから
> > これらを区別して処理する必要があります。
> > 詳細はPIC24 Reference Manualの「第24章 I2C」を参照してください。
> >
> > ・有効なアドレス検出時
> > ・ACKまたはNACK要求時
> > ・データ受信時
> >
> >
> >
> > > PIC24FJをI2CスレーブでSleepさせた状態でMasterからの送信で割り込みは
> > > かかるのですが正しい値を受信できません。送信要求割り込みに対する
> > > 送信は正しくできています。sleepさせないと正しく動作します。
> > > 原因は何でしょうか。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^4: I2CのSleepからの復帰
491
: 16/02/21-19:25
I2C

内臓オシレータですが、スレーブ側から1バイト送ってマスター側が
正しい値を受信できるまで繰り返すという操作で解決しました。
ありがとうございました。
> スリープでもRun状態でも割り込みは一緒です。
> Idleで動作するということは、スリープからのWakeUp時間が
> 遅いことが原因かと思います。特に外部発振の場合は遅れます。
>
> 立ち上がり中に次のバイトの受信ができなくなっているのでは?
> 再送などの追加処理が必要かと思います。
>
>         以上
>
>
> Gokan様
> >
> > ご回答ありがとうございます。
> > 資料ざっとながめましたが、スリープとそうでない場合の
> > 割り込みの違いが見当たらないように思えます。
> > スリープとそうでない場合の割り込みは異なるという認識で
> > よろしいでしようか。ldleては動作するようです。
> > よろしくお願いします。
> > > I2Cスレーブの割り込みには下記の3種類がありますから
> > > これらを区別して処理する必要があります。
> > > 詳細はPIC24 Reference Manualの「第24章 I2C」を参照してください。
> > >
> > > ・有効なアドレス検出時
> > > ・ACKまたはNACK要求時
> > > ・データ受信時
> > >
> > >
> > >
> > > > PIC24FJをI2CスレーブでSleepさせた状態でMasterからの送信で割り込みは
> > > > かかるのですが正しい値を受信できません。送信要求割り込みに対する
> > > > 送信は正しくできています。sleepさせないと正しく動作します。
> > > > 原因は何でしょうか。
▲pagetop

- WebForum -