dポイントプレゼントキャンペーン実施中!

PIC24FでRTCを制御するためのI2C通信がうまくいかず困っています。
そこでSDA/SCLから信号が出ているかのみを確認するため
下記のようなプログラムをPICに書込みました。
(STARTの出力のみ)
当方オシロを持っていませんので汎用のテスタでSDA/SCL電圧の一時的な変化を読み取ろうと試みましたが全く電圧の変化はありません。

#include "p24FJ64GA002.h"

_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF
& COE_OFF & ICS_PGx1& FWDTEN_OFF )
_CONFIG2( IESO_ON & FNOSC_FRC & FCKSM_CSDCMD
& OSCIOFNC_OFF & IOL1WAY_ON & I2C1SEL_SEC & POSCMOD_NONE)

int main(void)
{
AD1PCFG = 0xffff;
CLKDIV = 0;
TRISA = 0xFFE3;
TRISB = 0x006F;
LATB = 0x0010;
CNPU1 = 0x003C;
/// I2Cの初期設定
I2C1BRG = 0x27;
I2C1CON = 0x8000;
I2C1RCV = 0x00;
I2C1TRN = 0x00;

while(1){
I2C1CONbits.SEN = 1;
while(I2C1CONbits.SEN);
}
}

心ある方、どなたかご教示お願いいたします。

A 回答 (1件)

汎用のテスタというのが非常に心配なのだが・・・


測れてれていないのでは?

もし他に使用していないI/Oポートがあれば、
H/Lを変化させ、テスターで測ってみてください。
変化がキャッチできていますか?

この回答への補足

jppyさん、ありがとうございます。
I2Cのクロックが100KHz程度ですので、汎用テスタでも多少値が振れるのではと考えました。
おっしゃるとおり、他のポートで試して見ます。

補足日時:2009/09/26 13:47
    • good
    • 0
この回答へのお礼

jppyさん、早速試してみました。
全く別のハード(PIC16F688でRTC-8564NBを制御)ですがSDA/SCLピンを汎用テスタで測定したところ、3.3V→3.1V程度まで下がることを確認できました。
いろいろ調べてみましたらPIC24FのI2Cピンは癖がありそうです。

お礼日時:2009/09/26 16:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!