dsPIC30F6014のシリアルEEPROM読込み不具合の原因と対策

このQ&Aのポイント
  • dsPIC30F6014を使用した製品で、温度変化によりシリアルEEPROMからの読込みができなくなる問題が発生しています。
  • 温度上昇により、dsPIC30F6014からシリアルEEPROMへの信号が出なくなる現象が確認されています。
  • 冷却スプレーを使用すると、読込み不具合が解消されますが、正体不明の原因による可能性もあります。
回答を見る
  • 締切済み

dsPIC30F6014が温度変化でシリアルEE…

dsPIC30F6014が温度変化でシリアルEEPROMから読込みができなくなる。 dsPIC30F6014を使った製品を作っていますが、PICが温まるとシリアルEEPROM(24C1024)からデータを読み込めない現象が起こっています。オシロでEEPROMのSDA(5番ピン)を確認した所、読めない時はPICから信号が出ないことは確認できました。 PICの温度は、電源投入後数分の為、人肌程度の温度です。また、その状態で冷却スプレーをかけて冷やすと読込みができるようになります。 以上の内容に対し、アドバイスをお願いいたします。 (原因がどこにあるのか、わからないのでお願いいたします)

noname#230358
noname#230358

みんなの回答

noname#230359
noname#230359
回答No.4

dsPICを使ったことがないので、たぶんハズしていると思いますが、 PICが暖かいのは、正常なことなのでしょうか? 私も今までに、16FのPICを何十個と使ってきましたが、PIC自体が暖まるようなことは ありませんでした。というか、暖まらないように使ってきたのかもしれませんが。 PICのポートが天落や地落していないでしょうか? 特にPICの接続相手がICの場合、相手が出力なのに、PICも出力になっていて、 PICのポートに短絡電流が流れ、PICのチップが発熱している、とかは、無いでしょうか? あと、I2CのSCKとSDAのプルアップ抵抗は、いくつくらいでしょうか? 軽過ぎは良くありません。私はいつも1kくらいで使っています。

noname#230358
質問者

お礼

ご回答ありがとうございます。 PICを動作させれば、ある程度の温度は発生します。 ゆびで触っても、本当に生ぬるい温度です。 ※CLKは外部クロック10MHzを使っています。 またポートの件ですが、 C1TX/RF1・C1RX/RF0のみ、GNDに落しています。 その他のポートは74HC541やMAX3080ECSDなどに問題なく接続されています。 ※今回の回路(基板)で動作及び納品実績はあります。 その為、ポートの短絡の為の問題とは考えにくいです。 I2CのSDAのプルアップ抵抗は1Kを使っています。 SCAは付けていません。 また、判ることがありましたらお教えください。 お願いいたします。

noname#230358
質問者

補足

すこし変動がありました。 ソフトのI2Cイニシャライズの設定を変更すると、I2Cからデーターが出てくるようになりました。 ただし、I2Cに書込みはできない状態です。

noname#230359
noname#230359
回答No.3

こんにちは。 単純なPKG不良ってことはないですよね? (プアボンディング)

noname#230358
質問者

お礼

ご回答、ありがとうございます。 問題が起こっているPICの数が多いのとロットを変えても発生しているため、この件は考えにくいと思います。

noname#230359
noname#230359
回答No.2

毎度JOです。 調べてみました dsPIC30Fシリーズ http://ww1.microchip.com/downloads/en/DeviceDoc/70046b_jp.pdf 24C1024 http://ww1.microchip.com/downloads/en/DeviceDoc/21941F.pdf 問題を切り分ける為に、EEPROM以外のデバイスをプログラムからアクセスしないようにする、出来ればこれらのデバイスを撤去。 1)PICやEEPROMの電源に問題は無いか、パスコン等も 2)EEPROMと通信出来無い時、PICの消費電流を測定する、 3)シリアル通信のデータバスの衝突も考えられるので、PIC-EEPROM間に抵抗器などを挿入して、オシロなどで観測する、

参考URL:
http://ww1.microchip.com/downloads/en/DeviceDoc/70046b_jp.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/21941F.pdf
noname#230358
質問者

お礼

ご回答ありがとうございます。 デバイスは基板に半田付けしているので、取り外しが困難なため外していません。(申し訳ありません) とりあえず、見れる所を確認しました。 1.電源は5Vが正常に印加されていました。 3.PIC-EEPROM間は、なぜかPICが冷えればPICから読み出し信号が出ます。(EEPROMを外した状態でも確認しました) なぜか、PICが少し温く(熱くは有りません)なると、PICから読み出し信号は出なくなります。 ※オシロ確認をしました。 2については測定はできていませんが、PICが冷えれば読み出し信号が出る点が理解できません。 できれば、なぜこのような現象が起こるかお教え願えないでしょうか。 お願いいたします。

noname#230359
noname#230359
回答No.1

状況がよくわかりませんが シリアル以外のI/O 特にOutputの トータル電流は 定格以内 収まっていますか

noname#230358
質問者

補足

ご回答ありがとうございます。 outputはEEPROM・XC9572・74HC541・MAX3080ECSDとのデータのやり取りだけです。その為、さほど電流は使っていないと思います。 (外部に対しては、74HC541を使っています) 以上の内容により、出力電流は問題なさそうに思えます。 間違っているでしょうか? (通電しても、PICは温いていどの温度にしかなりません) 不勉強の為、又お教えください。 お願いいたします。

関連するQ&A

  • dspicからpicへのUARTでの信号送信

    現在,dspic33fj32mc202を使用して回路を作成しています。 ピンの都合から、UART機能を利用して、dspicのTXピンから,pic16f690のRXピンに信号を送りたいと考えています。 しかしdspic33fは3.3Vで、pic16f690は5Vです。 上記のようなことは可能なのでしょうか?

  • PIC16F877内蔵USARTが受信しない

    PIC16F877です。 [環境]  MPLAB IDE 6.6  CCS 3.15  WinXP sp3 送受信ピンは専用ピンに割り当て、内蔵USARTを使ってRS232C通信しています。 PICから相手機器にコマンド発行し、相手から応答データが帰ってきていますが、 kbhit()を確認してもHighになってくれません。 PIC入力ピンをオシロで当たって波形も確認済み、また信号ラインをシリアルモニタで 受信データラインを横取りして確認してもデータは正常に読み取れていますので、データは 正常だと思います。 同じような経験をお待ちの方はおられませんか? よろしくご教授、お願いします。

  • ワンチップマイコンPICによるLCD(液晶)の制御

    PICを使ってLCD表示の実験を行っています。 最終的には、dsPIC33FJ64GP706(64pin)でLCDを利用したいと思っています。 PICの参考書籍を見ながら、例題を用いて16F873や18f2680、dsPIC30f3013など5Vで駆動するPICではLCDの表示はできました。 しかし、なぜか3.3Vで駆動する24FJ64GA002やdsPIC33FJ64GP706ではLCD上にトーフが並ぶのみで、適切な表示ができません。 このときのプログラムが、0.5秒ごとに数字をカウントアップさせるものであり、この黒いトーフもそれに従い濃淡の点滅をしていますので、何らかの信号は伝わっているような気がします。 この場合はPICを3.3Vで駆動させて、LCD電源のみを5Vで供給しています。 この点について、わかる方がありましたら教えてください。 なお、コンパイラはccs-cを使用しています。 また、回路接続や信号については、24FJ64GA002やdsPIC33FJ64GP706では、プログラム上から任意のLEDを点滅させることを確認していますので、回路上のミスはないと思います。 24FJ64GA002では、内臓レギュレーターを使う(VDD3.3V、DISVREGとVSSはGNDへ、VDDCORE/VCAPは10ufを通してGND)の設定になっています。 dsPIC33FJ64GP706もDISVREGピンはありませんがほぼ同様の設定にしてあります。コンパイルする前のLCDを表示するプログラムはどのPICもほぼ同じものを使用して、へッダーファイルやPINの番号を変更しているのみです。 すべてPORT_Bを使用しています。クロックはいずれの場合もヒューズでHSを設定し、セラロックの20MHzを使用しています

  • PIC 12F675について

    PICを利用してラジオをシリアルポートでPCに送信しようと思っているのですが、 ラジオのイヤホンの差し込むところの電流をA/Dコンバータを利用し デジタルデータにして送信しようと思っています。 12F675を1つ使ってラジオの電流をA/Dコンバートしてシリアル送信しようと思っていますが このPICの6ピンだけでできるのでしょうか? なにか送信用ICなどが必要でしょうか? よろしくお願いします。

  • PICでPS2キーボードを制御するには?

    PS2キーボードをPICに読み込ませたいのですが、端子の仕様などが判りません。 どのピンがどんな信号を入出力するのか解説してあるような本や、HPを教えて頂けたらと思います。 1チャンネルのオシロしか持っていないので、非常に苦戦しております。

  • PIC18F4550について

    現在PIC18F4550の回路基盤を製作しておりますが、何分電子工作が始めてなもので、わからない点がいくつかあります。下記に挙げさせていただきますので、どれかわかります点がありましたらご回答いただけたらうれしく思います。 ・48MHzで駆動させるにはXTALは何MHzのものを選択すればよいのでしょうか?ネット上で見つけたものでは、20MHzを使用していながら内部では48MHz駆動と書いてあるものがありましたが、どうにもよくわかりません。 ・PICを3台くらいで、I2C通信を行いと考えております。その際半導体リレーでSDL,SDAの信号線をスイッチング(ON、OFF)し、接続するPICを切り替えたいと考えております。ですが、そのような事は可能でしょうか?

  • kt0911と24LC××の関連に付いて。

    ラジオIC、kt0911のその後ですが、確かに仰る通りでしたのでeepromに格納してみました。 読み出しも、一旦電源をoffにして読みだすと、アドレスを二つに渡ってちゃんと書き込まれたのを確認して、kt0911に装着しました。 所がラジオは、全く梨のつぶてで、Keyを押してもウンともスンとも言いません。 GPIOの0~3を01にGPIO:4を11に設定しています。 他の設定はデフォルト値に即したデーターを書き込んでいます。 実際は24LC02と言う2Kのeepromに対して、24LC512と言う512kのeepromを使いました。 電源のON時に、SDAの端子をシンクロで観察するとActiv-Lowの信号が出ています、ロジアナでは無いので、どんな信号かは分かりません。 eepromの24LC512のSDAとSCLは、I2Cの通信をしている時以外のI/Oは、Hiインピーダンス成るのでしょうか。 Netを調べたのですが、それらしき答えに行きつきませんでした。 そこで、SDAとSCLの信号の入力に2回路2接点のトグルSWを入れて、電源ON後間を置いてSDAとSCLの信号をoffして見ましたが、LCDの周波数表示らしきものがインクリかデクリが分かりませんが グルグルと変化し表示するだけで、key-swは全く効きません。 取りあえず、eepromのI/O端子がハイインピーダンスに成る時と、またハイインピーダンスにするには どの様にしたら良いのでしょうか。 同じ24LCの2Kと512KのEEPROMですが、何もしなくても同じ様に使えますか。 使えなければ、回路を変更して使えますか。

  • PIC18FのUART通信について

    こんにちは ただいまGPSとSDカードを使ったロガーをPIC18F2550で作成しております。 GPSとSDを使うため、UARTのピンが2つ必要ですがPIC18F2550にはTX/RXは一つずつしかありません。 そこで,ソフトUARTで解決したいのですが, CCS Cコンパイラではソフトウェアシリアル通信の機能があるみたいのですが 現在自分が使っているC18だといくら探しても見つかりませんでした。 C18もソフトUART機能はあるのでしょうか?

  • PIC 16F887 を使い7SEG を動作させたいのですが上手く行き

    PIC 16F887 を使い7SEG を動作させたいのですが上手く行きません。 不具合の可能性が、回路が悪いのか、プログラムなのか、わかりません。 添付の画像は不鮮明だと思いますがご了承ください。 動作は、入力によって7SEGの表示をかえます。 マイコンは、PIC16F887(40ピン)で外部オシレータ、リセット等は付けてません。 11ピン 32ピンを5V 12ピン、31ピンをGNDに接続しました。 入力は1ピン~6ピンを10Kプルアップで使用し、6ピン(RA4)は使いませんが、10Kでプルアップしました。 1ピンはフォトカプラ入力ですが、2ピン~5ピンは直接駆動です。 出力は、7SEG(アノードコモン)を4つを動作させるため、40ピン、39ピン、30ピン、29ピンをトランジスタ2SA1015(PNP型)でスイッチングします。 7SEGの表示はPICダイレクトとしました。 マイコンを付けずにジャンパワイヤーで7SEGの動作確認をしまし点灯を確認しました。 以上をでプログラムを書き、電源を入れましたが全く動きませんでした。 マイコンピン配線のマズさなのか、プログラムの可能性なのかご教授、アドバイス宜しくお願い致します。

  • PIC24FでI2C

    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); } } 心ある方、どなたかご教示お願いいたします。