短く紹介
一応肩書付き最前線プロのプログラマーです☆
デザイン、サウンド、企画、設計、プログラム構築まで幅広く知識を身につけるべく修行に励んでおります!!
ハードウェア開発の沼にどっぷり漬かってぬくぬく☆
ひとり言
ハードウェア開発に興味を持ってしまった・・・当分はハードウェアについて記事を書いていくのだ♪♪
WPFの紹介ウェブページもある程度コンテンツが増えたのでライブラリの公開を一時中断したよ(爆)

2023年 3月
日 |
月 |
火 |
水 |
木 |
金 |
土 |
|
|
|
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 |
|
いらっしゃませぇ~
おとは~どぅぇぁの社 へようこそ(ノ)゚∀゚(ヾ)
今回はハードウェア開発中のトラブル対処のお供に便利なデバッグ方法についてご紹介します。
「
バウンダリスキャン
」 ってご存知ですか!?
JTAGと言う通信技術があるのですがその中の1つの機能にバウンダリスキャンがあります。
JTAGの通信技術は他にも「実行ファイルの転送」や「総合環境との連動でのデバッグ」など用意しているメーカーもあります。
なので、ハードウェア業界的には基本的な技術の1つであるのです。
だがしかし、プロが本気で利用する機能なだけあって個人に対してはかなり高価なものが多いです。
実際、日本国内でも安くて10万くらいは最低必要だと考えないといけない
余裕のよっちゃんで買えてしまう人は目的に応じて買って頂ければと思いますがそれだけで済ませてしまったら 「おとは~どぅぇぁの社」 を立てた意味がないですよ
ちょっとした興味と英語と探求心と向上心や気力やらあれこれ融合したらバウンダリスキャンを自前で実現することが出来ちゃうので実際に作成したツールを踏まえてご紹介しちゃいます
おとは制作のバウンダリスキャンツール
テスト製作したツールなのでRX621の144ピンタイプのMCU以外では利用できないとっても限定的なツールです
そのうち、改良してもっと利用しやすくしようかとも思いますが現状維持です
(2015/12/06現在)
では具体的にどんな風に制作していくのかをご紹介しますね
注意事項
ツールを購入せずに自分で1から制作していくため10万円は必要ありませんが通信用のハードウェアを1200円ほどで購入しておりますのでその点は費用が0円にはなっておりませんのでご了承ください
JTAG通信が可能なハードウェアを手に入れる
JTAG通信を使用しないでバウンダリスキャンツールを開発するのには時間が掛かりすぎるのでまずはJTAG通信が出来るハードウェアを購入します。
何を買うのかはほぼ決まりなのですが今回、バウンダリスキャンツールを制作するうえで利用するライブラリがFTDI社のライブラリなのでそのライブラリが利用できるハードウェアに限定されます。
|
アマゾンでサクッと購入できるのは左記の商品のみのようです。
その他は秋月電子でも買えるのでFT232HLで検索して頂ければ私が開発に使用したチップの製品が見つかるかと思います。
必要な機能はMPSSEを使用したJTAG通信のみですので代用の聞くものであればFT232HLにこだわりはありません。
動作確認が行えているのはFT232HLですのでその他の動作保証は出来ません。
USBの場合は通信速度もバウンダリスキャンの結果にかかわりますので可能な限りHi-Speedタイプのものを選択してください。 |
おとはは秋月電子で購入したものを使用しております。
設定変更ツールで設定を変更する
|
FTDI社のホームページから専用のプログラム(設定書き換え)ツールをダウンロードしてカスタマイズします。
後からわかったことはこのツールで設定してもJTAG通信にはあまり影響がないことだ。
一応、USBドライバタイプにした上でツールのプログラムが楽なのでデバイスに名前とシリアル番号をオリジナル設定にして間違ったデバイスを使わないように対処しています。
プログラムツールはこちらからダウンロードできます。
ツールは”FT_Prog”と言う名前です。 |
ドライバーとライブラリを入手する
お次もFTDI社より専用のドライバーやライブラリをダウンロードしてきます。
ドライバーは
こちらから。
ライブラリは
こちらから。
上記のライブラリのリンクからは.Net Frameworkを使用したC#向けのライブラリがダウンロードできます。
ついでにサンプルも色々ダウンロードできるので実際に動かしてみると分かりやすいかと思います。

速度優先としたい方はC++などの言語のライブラリを取得してください。
プログラムを組んでいく
こちらの
ドキュメントを読みながら実装を進めていきます。
私の場合はJTAG通信以外にも便利に利用できそうだと思ったのもあってC#向けに専用のライブラリを組んでからUIプログラムを構築していきました。
こちらの画像はVisual Studioの開発画面でエディタの左側がWPFのUI設定の一部で右側がおとは自己流ライブラリのソースコードの一部です。
こんな感じで順番にマニュアルを参考にしてコーディングしては動作確認してテストの繰り返しです。
動作確認
実際の動作はこの動画を見て頂ければわかるかと思います。
UIの実装優先でC#で制作したこととライブラリもC++/CLI等の高速化をせずにC#のままなのでかなりもっさりしています。
UIも速度もって人はWPFを使いつつC++/CLIを組み合わせてやっていけばかなり良い感じに作れるかと思います
ツールの公開について
2015/12/06現在ではRX621の144ピンしか対応していないのでツールの公開は考えておりません。
ご希望がありましたら直接、
おとはまでお問い合わせしてくれたら個別に対応致します。
RX621以外のMCUでもBSDLがあればツールの拡張対応は可能なのでBSDLを頂ければ対応も可能ですが依頼の量によっては有料とさせて頂きます。
お問い合わせ先は本ページの最後に記載してあります。
ライブラリの公開について
C#ライブラリの仕様の都合上、ライブラリDLL単体での公開は行う予定はございません。
ライブラリの提供をご希望される方はソースコードの利用権のみを購入して頂く形となりますのでご相談頂ければと思います。
お問い合わせ先は本ページの最後に記載してあります。
おとはへのお問い合わせ方法について
お問い合わせ先:otohatan55[あっと]go-otohas.com
※[ あっと]を@に置き換えてから送信してください。
質問やその他お問い合わせなどはメールアドレスまでお問い合わせください。
あて名は”おとは”で頂ければと同名での返答を致します。
何かしらの契約をさせて頂く際は本名で連絡致します。
いらっしゃませぇ~
おとは~どぅぇぁの社 へようこそ(ノ)゚∀゚(ヾ)
ノウハウ・技術編と言うことで、実際におとはが考えて行動して開発してみて感じた事やあれこれの良いところ悪いところ、気にするところ、注意点など色々ご紹介していこうかと思います。
まずは、箇条書きではありますが良く感じる基本的なところを書いておきますのでしっかり身に着けておきましょう
ハードウェア開発の基本
-
各種電子部品の基本的な特性は抑えておく
-
電子部品は大事に扱おう
-
配線は短く済ませるように心がける
-
ブレッドボードなどで開発する時は特に導線の長さに注意する
-
周波数の高いICではクロック単位の間隔がせまいので導線を長くし過ぎないようにすることで遅延対策をしよう
-
求められる速度によってはブレッドボードはなくユニバーサル基板でも良いので短く配線しよう
-
電子部品も導線も消耗品だ
-
はんだ付けを過信しない
-
ノイズが少ない環境で開発しよう
-
ACアダプターやUSBなど簡単に電気が手に入る分、どちらもノイズがびっしりなので影響を受けないようにコンデンサなど対策しよう
-
人の体にも電気が微量ながら流れているのでタッチノイズも動作不良にさせてしまうことがあるので触れるときも注意しよう
-
絶対にやってはいけないのは静電気なので特に冬場は静電気対策をしっかりしておこう
-
(予算によるが)色んな部品を試した方が発見がある
ソフトウェア開発の基本
-
機能調査
- マニュアルを見て目的が果たせるか調べる
- サンプルプログラムを実行してテストする
-
テスト実装
- 実際に開発している環境へ組み込みしてテストを行う
- テスト実装の時点ではハードコーディング・直値が多くなっても良いので速度優先とする
-
本実装
- 機能が複雑になるほど外部からの入力を受けて処理を変更できるような臨機応変に動作する処理にして本実装を行っていく
- 他人に説明がしやすい、引継ぎしやすいコーディングを優先して実装速度に気を取られてわかりにくくならないように気を付ける
-
コーディングルール
- 一人で作業する場合は特に気にする必要もなのだがルールを決めて作業する方が奇麗なコードが書ける
- 変数の型も標準のを利用するよりは独自に定義しておいた方が他プラットフォームへの移植も楽にできる
-
コード整理
- 機能によってまとめられるものは順次まとめていく
- 同じようなコードはメンテナンス性も悪いので管理しやすく整理しよう
- 随時、実装を進めながら処理の挙動を変えないようにしつつ、煩雑化したコード、複雑になったコードなど少しずつ整理して簡潔なコードに修正していく(リファクタリング)
-
オブジェクト指向
- マイコンプログラムでも最近はC++言語の利用も可能なのでオブジェクト指向のプログラミングを使用
- 守りたい変数があったり、異なるデータを同じ処理で管理したりする場合などに非常に便利である
- コード整理もしやすく目的がわかりやすい処理に出来る
-
ライブラリ化
- 良く利用する処理、特に開発プロジェクトが変わっても利用する処理はライブラリとしてまとめていく
- メインのプログラムに直接組み込みせずにライブラリプロジェクトを作成してまとめていこう
-
マニュアルの作成
- 大きなものになるほど引継ぎが大変になるので少しずつマニュアルを作成して担当者が変わってもスムーズに作業が続行できるようにしていこう
- マニュアルはDoxygenのようなツールを利用してマニュアル化するのがかなり楽なのでコーディングルールもしっかり決めておく
- 複雑な処理になるほどクラス図やシーケンス図は大切なので設計の段階から仕様としてまとめておく方が実装トラブルも少なくなる
ひとまず、ざっと書いてみたけど更新は随時行っていきます。

+ハードウェア編
+ソフトウェア編
+ノウハウ・技能編
+道具・雑貨編
+初級編
+中級編
+上級編
+番外編
+初級編
+中級編

☆ハイレゾ音源☆
☆お絵かきするなら☆
☆カスタムPC☆
Blogle Storeet Core System v2.0a
おとはうぇぶあぷりぶ (IPv4) v2.6a
Copyright (C) 2014-2018 Blogle Storeet Development Team.