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

ひとり言
ハードウェア開発に興味を持ってしまった・・・当分はハードウェアについて記事を書いていくのだ♪♪
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!ブックマークに登録
  • このエントリーをはてなブックマークに追加

第1章 目標を持つ大切さ

投稿日時 2015/03/21 21:07:14

こんにちはsun

このウェブページでは開発者を目指す人や開発者になってこれから開発職を全うしていこうと思っている人に向けて私、おとはが思うことを綴っていこうと思います。

この記事に書いていることを鵜呑みにしたり、書いていることだけを実践しても結果を保証するものではありません。
大事なことはこれからあなたが 「どんな人になりたいか(キャリア)」 「何をしたいのか(ジャンル)」 「どこを目指すのか(目標)」 です。

それでは、 「第1章 目標を持つ大切さ」 についてお伝えしますね。
結論は最後に書いていますので順に読み進めて下さい。

目標 と言えば何を考えますか?
新人の時の私は 「ディレクターを目指したいsign03 って言っていました。
ディレクターを目指したいと言うのはひとつの目標ではあるので間違っていないですbearing

あなたならどんな目標を立てますかsign02
・・・すでに目標を持っている人やすぐに思いつく人ならもう決まっていますよねhappy01

では、目標がまだはっきりしないとか目標に自信がないと思う人にアドバイスshine

目標は自分をもっと輝かせるために必要な指標ですnote
目標には色々な種類がありますし、目標なんて1つじゃなくて良いのです。

期間規模難易度など大小様々な目標を持つことで自分の実力を短期、長期様々な間隔で理解できます。
そうして、得られた結果から目標を修正しつつ少しずつ色々な目標を立てて進めるようになります。

mobaq わたし、おとはの例  mobaq
今の私の目標は・・・
色々な人から無駄な作業、勿体ない無駄な時間を作っている負のツールをなくし
効率良い環境を作ることで製品全体のクオリティーを向上させること


この目標は 規模がかなり 大きく 難易度 高く 、そして 終わりのない目標 です。
でも、この目標があるから小さな目標を立てられます。

pen 短期目標
プログラマなので操作ミスの起きやすい処理、重すぎる処理など見つけたらそこを改善することを目標にします。
これは早ければ1日にも満たずに達成出来る目標です、難易度も簡単な部類です。

pen 中期目標
チーム全体で使っているツールがあるとして、そのツールで処理している内容を自動化・高速化出来してチーム全体の作業時間が大幅に変わると分かれば実行しない手はないでしょう。
これは1週間~1か月とか場合によっては掛かるでしょう。


ぶっちゃけ話をしますと、今持っている私の目標は・・・
「自分がやりたいことをやらせてもらうために作った目標」 です。
やりたいことをやるには 成功した結果が必要 です。
良い結果があるから​信頼をもらうことが出来 て、より大きな事を任されるようになります。

そのために結果として大小100以上のツールを作ってきたし、プログラマだけどデザイナーが利用するツールを使って研究みたり、新しい知識を取り入れるために調べてみて実践することをほぼ毎日続けてます。

目標を持つことで見えてくるものはたくさんあります。
上の例では経験があるから短期・中期の目標が出てきているのは確かです。
では、全く目標がないならどうするか。

この文章を読んでいるもうあなたなら分かりますよね?

他の人より絶対に良いものを作ることが出来る・・・
他の人になんか任せたくない・・・
自分の力を発揮することが出来る・・・
そのように言える、 「自分がやりたいこと」 を持つことです。

あなたはこれから開発職を目指すのか・・・
開発職の一歩をつかみ取ったのか・・・
どちらにしても同く自分がやりたいことを目標にして良いのです。

自分のやりたいことをしている人は
「やりたいことに対して貪欲で知識が豊富memo
「毎日が楽しいから輝いて見えるshine
「知識をどんどん周りに伝えて人を引っ張っていけるrun

こんな人材、誰だって欲しいでしょsign02

だから、目標のない人に魅力はないのですcrying
目標がみつからないなんて言っていないで自分の好きなことを目標にして目標を達成させるための努力をしましょsign03
 


投稿者

おとは@開発隊長  

カテゴリー

ぷろぐらまー

タグ

開発職 極意
  • 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.