記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RX631の書き込めない病の原因について

 ここ1週間くらいDCマウスのRX631マイコンがRFPと接続できない状態が続いていたのですが、某デバッグ神Y.I先輩の助言によりついに書き込めるようになりました!

 マイコンや水晶が壊れてるのではないかとも思っていましたが、結局は自分の凡ミス…

 これからDCマウスをRX631マイコンで作る人の中にも、同じように書き込めない病を患う方が出てくるのではないかと思うので、自分が試したことをここに書き留めておきます。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜
↓RX631に書き込めない!↓

1.マイコンのRXDとTXDが逆ではないか確認

 恐らくこのミスが一番多いのではないでしょうか、自分の場合はRXDとTXDを逆にするための基板を適当に作って、書き込みチェックの際はRXDとTXDが逆のパターンとそうでないパターンの両方必ずチェックしました。また、RXD・TXDとマイコンのピンとの間に抵抗を挟んだり、プルダウンしたりする人もいますが、動作の安定をするためのものなので書き込み自体は無くてもできます。

2.動作モードが切り替わっているかの確認
 
 MD端子はPC7端子と組み合わせることによって、シングルチップモード(実行モード)とブートモード(書き込みモード)を切り替える役割があります。詳しくはRX631のデータシートの動作モードの項に記されています。書き込みモードにはブートモード、USBブートモード、ユーザーブートモードの3種類がありますが、僕たちが使うのはブートモードなので、データシートを読み解くと、

PC7端子:Lowに固定(GNDにつなげればよい)
MD端子:Highでシングルチップモード、Lowでブートモード
     (所謂「書き込みスイッチ」で切り替える)

となります。自分はPC7端子とGNDの間に抵抗を挟んでいませんが、動作が若干不安定になるだけなので、書き込むことはできます。

3.Reset端子が機能しているかの確認

 マイコンは電源をつけたときに動作が不安定になります。しかし、Reset端子をResetボタンなどで少しの間Lowに落としてあげると、マイコンの動作が安定し書き込みも安定します。電源をつけた直後であるなら、書き込む前に1回Resetボタンを押すことを習慣にするとよいでしょう。自分はResetスイッチのパッドを間違えてしまい、スイッチを押さなくても常にReset端子がLowになってしまい、書き込みに影響を与えていました。

4.マイコンに動作電圧が送られているかの確認

 データシートを見ると、マイコンには3.3Vの動作電圧を与えている端子がいくつかあります。ここに3.3Vの電圧がしっかり送られていないとマイコンは正しく機能しません。3.3Vより電圧が低くても動作しないそうなので、テスターなどで電圧を測って確かめましょう。自分は64pinのRX631マイコンを使用しているので、10(VCC)、12(VBATT)、38(VCC)、54(VREFH)、61(VREFH0)、62(AVCC0)pinが3.3Vでした。

5.ハンダ不良がないかの確認
 
 ハンダをしっかりつけたと思っても、マイコンの足や水晶、スイッチなどが実はついていなかったという可能性もあります。ここまでチェックしても書き込めないのなら、テスターで導通チェックしながら一通りハンダを温めなおしてみましょう。

6.RFPが正しく動作しているかの確認
 
 めったにありませんが、書き込み用ソフトの不調も疑ってみましょう。自分の場合は、他の人のRFPで書き込みを試したあと、FT234とmicroUSBも他の人のを借りて試してみました。それでもだめなら自分のハードに問題があります。諦めて原因を探りましょう。

7.水晶の向きが正しいかの確認

 ものによりますがpadが4つの水晶は対角同士のpadを使う場合が多いです、データシートでつなげるpadにミスがないか確認しましょう。

8.オシロスコープで波形を確認

 テスターでは電圧は測定できても波形は確認できないので、オシロスコープを用いると原因の究明に役立ちます。特に水晶周りのクロック回路では電圧が発振している必要があるため、発振しているかどうかはオシロスコープの波形で確認しなければなりません。マイコンのピンではXTALとEXTALのピンが該当します。自分はこの2つのピンの波形を見てみたところ、両方とも1.65Vで一定の電圧になっており全く発振していなかったため、水晶周りが怪しいというところまでオシロスコープのおかげでこぎつけました。

9.コンデンサ容量や抵抗値を確認する。
 
 自分の場合はここに原因がありました。水晶周りには12.5MHzの水晶に使用する8pFのコンデンサと、マイコンのパスコンに使う0.1μFのコンデンサがあるのですが、XTAL側の8pFのコンデンサと0.1μFのパスコンが逆になっていました。回路図を確認したところ、kicadの「8pF」と「0.1μF」のテキストがその部分だけ入れ替わってしまっており、勘違いしてつけてしまったようです…表面実装用のコンデンサは色もほぼ同じで容量が後から判断しづらいため、判明が遅れました(Y.I.先輩は一瞬で見抜きましたが)

通常の抵抗は色で抵抗値が判断出来たり、コンデンサは容量が書いてあったりしますが、表面実装用だとそのような判断が出来ないので、表面実装用の抵抗とコンデンサは値が正しいかどうか入念にチェックすることが大切です!

 試したことを順番に書いたため、見づらくなってしまいましたが、必要なところだけ参考にしていただければ幸いです。

 書き込みさえできればLED光らせ放題なので、しばらくはプログラミングを思い出しながらLEDで遊ぼうと思います!

スポンサーサイト

コメント

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。