「おとは@でいじー開発部」トップページに移動します
プロフィール
短く紹介
一応肩書付き最前線プロのプログラマーです☆
デザイン、サウンド、企画、設計、プログラム構築まで幅広く知識を身につけるべく修行に励んでおります!!
ハードウェア開発の沼にどっぷり漬かってぬくぬく☆

ひとり言
ハードウェア開発に興味を持ってしまった・・・当分はハードウェアについて記事を書いていくのだ♪♪
WPFの紹介ウェブページもある程度コンテンツが増えたのでライブラリの公開を一時中断したよ(爆)
スポンサード リンク
カレンダー
2018年 7月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
人気記事
- 2017/11/28 22:40 (0)
新規記事
- 2017/11/28 22:40 (0)
コメント
登録はありません
トラックバック
登録はありません
バックナンバー
RSS
常に最新情報を得るためにはRSSを利用しましょう。
QRコード
QR Code

現在のページを通報
「ぶろぐるすとーりーと管理人」へ不適切な記事の通報が行えます。
通報を行いたい対象記事のみを表示した状態で通報して下さい。

直近記事のリンク


   

遭遇した不具合と原因たち

投稿日時 2015/12/14 01:13:59

いらっしゃませぇ~note

おとは~どぅぇぁの社 へようこそ(ノ)゚∀゚(ヾ)
こちらのお部屋では実際にルネサス社のマイコンを使ったハードウェア開発で発生した不具合について原因調査の方法や実際の原因などの技術的なノウハウを赤裸々に!?お伝えしちゃいます☆


sharp 事例1 SDRAM実装トラブル
SDRAMと言えばメインメモリですが、おとはは比較的簡単に手に入ったSDRAMの中では容量の大きい32MBのものを使用しています。
マイクロン社の
MT48LC16M16A2と言う型番のもので16ビットアクセスが可能なものです。
ルネサスのマイコンはSDRAMがハードウェアでサポートされているのでしっかりとした配線とアプリケーションノートに基づいて正しく初期化設定することで利用することが可能です。

 

danger 実際のトラブル

 
  1. SDRAMの設定ミス
    アプリケーションノートを眺めて計算を行って直接数値を書いてデバッグしていたmemo
    だが、実際のところ計算を途中で間違えていて正しい数値ではなかった。
    気づいたのは管理処理をクラス化して外部からメモリの仕様を外部から渡してプログラムで計算してみて結果が違ったからですsweat02
    #2の問題の調査をしていた時に気分転換にコードしたのが良いきっかけだと思いますflair

    camera 外部パラメータ設定の例
    おとは@開発隊長さんの投稿画像
     
  2. MCUと変換ボードの接触不良
    これが一番はまったところですshock
    デバッガーでメモリの状態を見ると書き込みが出来ているように見えて実際のところ先頭アドレスに書き込みした内容が2M先や4Mにも書かれているという不思議な状態になってしまっていたsign02
    この不具合のために7日くらい使ったかと思う。
    ただ7日悩んだわけではなく、バウンダリスキャン技術を使って自作のバウンダリスキャン環境を作るのに3日くらい使ってますshine
    その他は単純に悩んでいたか配線のし直しとかに使いましたsweat01
    1つ1つマイコンをテスターでチェックするのも大変ですがやっておくべきですねcoldsweats01
    バウンダリスキャンは別途 まとめたページ を作ってますのでご覧くださいませ。

    camera 最初に半田づけした時の写真
    おとは@開発隊長さんの投稿画像
    ちゃんと半田出来ているように見えなくもないけど出来ていない・・・coldsweats01
    やることがなくなった時に初心に返ってテスターで見てみたら見事アウトでしたwobbly
     
  3. ジャンパケーブルの断線
    これはSDRAMだけじゃないけど特に54ピン分あるので顕著に発生したもんだいですdown
    ジャンパーケーブルが60本セットになっている便利なやつを使っているのだけど線材がとっても細いのですぐに内部でちぎれてしまうようですannoy
    秋月電子で購入したものなのでサンハヤトなどのピンと導線が分かれていないタイプの方が良いと思います。
    これもテスターでチェックすればわかります。
    私の場合は取り付けるとき・取り外したとき両方ともテスターでチェックしてから利用するようにしていますが少し触れると断線する中途半端なやつは見つけるのが大変なので消耗品ですが高い良品を買うか定期的に買いかえるべきだと思います。
     
  4. アプリケーションノートの掲載ミス?
    MT48LC16M16A2は54ピンの端子がありますがその中でアドレスに使用するピンは15本あります。
    そのうち、バンクの切り替えに使用する線の接続先が若干違うのですsign01
    16ビットでのアクセスの場合はA15~A1を使用するのでA15とA14がバンク切り替えに使用すべきですがA14とA13になっているthunder
    この点が違うところなので配線に戸惑ってしまったthink
    アプリケーションノートは間違っていたがハードウェアマニュアルは正しかったのでまあ良しとしますが・・・happy01
    アプリケーションノートの”16bit SDRAM 接続およびアクセス例”を参考にされる際は使用するSDRAMのICの仕様とMCUのハードウェアマニュアルもどっちもしっかり読んで実装してくださいflair



sharp 事例2 STDOUT実装トラブル
プログラムの実装とデバッグとなればデバッガーがほぼ必須と思いますがルネサスのマイコンだとデバッガーはあっても実行ログを出力する機能がない。(もしかしたらあるかもしれないけど)
無いなら実装すればよいだろうってことでSCI、シリアル通信を使って実装することにしました。
Windows上でTeratermを使用してCOMポートを使用したシリアル通信で簡単に実装が出来ますのでおすすめです。
ピン数は2ピンとシンプルだしサンプルプログラムもあってかなり簡単に実装できるので実装トラブルはほぼなかったです。
 

danger 実際のトラブル

 
  1. ごみ文字が送られてくる
    この問題はパターンとして2つありました。
    1つは電源を入れている状態での配線をいじったり、電気的なノイズを加えるようなこと(指で触る)をするとごみデータが入るようになりますwobbly
    この場合は、MCUの電源を入れなおしてあげれば治ります。
     
    2つ目は転送速度ですshine
    Windows側のCOMポートは通信速度がある程度固定になっています。
    MCUの種類によっては誤差が出てしまうので分周機能をうまく使って調整しないとごみデータが乗るようになりますのでご注意下さい。



sharp 事例3 Charactor LCD実装トラブル
ハードウェア自身に表示機能をつけるのもデバッグ機能としてうってつけですheart04
文字だけでもあるとかなり変わるので16文字が2行出せるLCDを実装することにしましたnote
配線数が少ない方がMCUの足に困らないしトラブルも少ないだろうってことでI2C通信出来るものを秋月電子で購入してきました。
ややトラブルはありましたけど何とか実用できるレベルになりましたscissors
実装時にArduinoのサンプルでLCD制御するものがあるのでそちらのソースコードを利用するとかなり素早く実装出来ますよ。・・・ただし、通信部分はライブラリになっているので参考になりません。
 

danger 実際のトラブル

 
  1. 反応が全くない
    基本通信はMCUをマスターにしてLCDをスレーブにした上で会話をしていく形になります。
    必要な命令を送っていくのですが返事が来ない・・・と言うかすぐにエラーになってしまいました。
    原因は処理速度が速すぎるということで何かしらの通信をしたら少し待ってあげないと駄目だということがわかりました。
    最終的には各命令後の待ちを100ナノ秒くらい入れれば動くのでかなり適当に設定した待ち時間ですがそのまま利用しています。



sharp 事例4 EEPROM実装トラブル
色々な機能を実装していくと色々なパラメータを保存しておきたくなりますcd
SDカードを実装出来ればそちらでも良いのですが私の場合はSDカードの実装にトラブルが発生してしまったため先にEEPROMの実装をすることにしましたshine
EEPROMもSDカードもSPI通信(ルネサスマイコンではSCIを利用しています)で動くのでどっちかが出来ればもう片方も簡単だろうってことでどちらが先でも良かったflair
 

danger 実際のトラブル

 
  1. データの書き込みだけできない
    EEPROMにはレジスタがありこちらの情報を見て「プロテクトされているか」、「ビジーか」、「書き込み可能か」など判断して利用しますdash
    このレジスタの情報を取り出したり、レジスタのライト許可設定だけは変更することが出来たshine
    なのでデータの読み書きも出来ると思っていたら、見事書き込みが出来なかった。down
    原因はCSのLowとHighの切り替え不足だったsweat01
    基本命令要求前にCSをLowにして用事が済んだらHighにしなければいけないWrite前は書き込み許可の命令を出すのだがこの後にCSを一度Highにしなくてはいけないのだがそれを忘れていたbomb
    それだけと言えばそんだけだが1日くらいはまってしまったsweat01

 

sharp 事例5 SD Card実装トラブル
ポータブルプレイヤーの開発を目指しているおとはにとってデータを入れておくハードウェアは必須だsign03
だが、意外に仕様が複雑で実装するのも大変だということが身にしみてわかったdown
SDカードモードだと高速に利用できるがライセンス料金が発生するため個人では厳しいdollar
比較的簡単に実装出来るSPI通信を利用することになるのだがこれも意外とはまることになりましたcoldsweats01
 

danger 実際のトラブル

 
  1. 全くもって何も応答がない
    現在調査中です・・・

    2015/12/14 01:11:52 by Otoha
     



今後も色々経験したトラブルについてご紹介していきたいと思いますhappy02
 


投稿者

おとは@開発隊長  

カテゴリー

電子回路はーどうぇあ C++言語 そふとうぇあ はーどうぇあ ぷろぐらまー 

タグ

ハードウェア開発 プログラム C++/CC-RX
  • Yahoo!ブックマークに登録
  • このエントリーをはてなブックマークに追加

直近記事のリンク


   

ページビューカウンター
42785
ウェブページ
+ハードウェア編
+ソフトウェア編
+ノウハウ・技能編
+道具・雑貨編
+初級編
+中級編
+上級編
+番外編
+初級編
+中級編
フリースペース
☆ハイレゾ音源☆

☆お絵かきするなら☆

☆カスタムPC☆

ギャラリー
カテゴリー
ほびぃ~
くりえいてぃぶ
電子回路 (14)
ぷろぐらみんぐ
C#言語 (21)
C++言語 (4)
PHP言語 (3)
あいてぃー・こんぴゅーた
ぷろふぇっしょなる
全般 (16)
れびゅー
お気に入りたぐ
ツイッター
お問合わせ
ぶろぐ管理者にお問合わせしたい時は専用フォームから連絡が行えます。


Blogle Storeet Core System v2.0a
おとはうぇぶあぷりぶ (IPv4) v2.6a
Copyright (C) 2014-2018 Blogle Storeet Development Team.