ページ 11

マイコン色々ご相談所。

Posted: 2010年10月22日(金) 00:50
by softya(ソフト屋)
マイコン関係でお悩みのことがあれば、ここにご相談下さい。
ハード的なことからソフトまで、分かる範囲でお答えします。

Re: マイコン色々ご相談所。

Posted: 2010年10月29日(金) 17:25
by KEYONN_
TKOZです。コミュニティーに参加しました。
理由は、一応工業高校の電子科卒なので、興味があったからです。
高校時代は、電気・電子回路を学んだのですが、全く分からず卒業さえ
危うかったです。ただ、ディジタル回路は興味が沸き、よく配線したり、半田ごてを握った者です。

とりあえず、何から始めたら、いいか質問したいです。
コミュニティーのトピックを見ていたら、興味が沸き、
MPLABをダウンロードし、インストールしたのは良いんですが、
なにやら英語のソフトだったらしく、操作方法さえ分かりません。
でも、FPGA?HDSL?というものにも興味が沸き、
とりあえず、何から手をつけたらいいのか分からないのです。
よろしくおねがいします。

Re: マイコン色々ご相談所。

Posted: 2010年10月29日(金) 17:51
by tana
TKOZさんがまずはどんなことをやってみたいのかを教えて頂けるとアドバイスしやすいかもしれません。

・LEDを点滅させるレベルでしたらPIC、FPGAどちらでも出来ます。
・ディジタル回路を重点的にやりたければFPGAです。
・マイコンをやりたければPICやAVRです。

PIC、FPGAどちらをやるにしても開発環境は基本英語なので、サイトや書籍を参考にしながら行っていくことになりますが、基本的な部分はそう難しくはありません。
またコミュ主であるsoftyaさんが別トピで言っているように、PICは初期投資が高いですので、AVRから始めることも考えてみた方が良いかもしれません。

どちらを先にやっても残った方を後から勉強することは十分に可能ですので、モチベーションがあがる納得のいく結論を出してみてください。

Re: マイコン色々ご相談所。

Posted: 2010年10月29日(金) 18:07
by softya(ソフト屋)
mplabの使い方は、こちらにあります。
http://www.picfun.com/mpframe.html
C言語の使い方はこちらです。
http://www.picfun.com/HI-Tech/HI-Techframe.html

日本語にこだわるなら、H8やR8C、78Kなど日本生まれのCPUを選んだほうが幸せになります。H8ならシミュレータとか開発環境もそうですが、WEBサイトも多いです。

FPGAは、実際にテストボードを持っていないと動作を実感できないってのが問題かも(信号シミュレーションは出来ます)。
言語としては、VHDLやverilogなど色々ありますが、verilogを紹介します。

「連載記事「完全マスター! 電子回路ドリル III」 - @IT MONOist」
http://monoist.atmarkit.co.jp/fembedded ... rill3.html
「株式会社フューチャーテクノロジー」
http://www.futuretech.co.jp/contents/Ve ... og_top.htm
「新居良祐サポートページ - Verilog-HDL入門」
http://cas.eedept.kobe-u.ac.jp/~arai/Verilog/index.html

開発環境
「Quartus II 7.2 Web Edition入門」
http://homepage2.nifty.com/y-daisan/html/B080105.html
「Quartus II ウェブ・エディションの活用方法」
http://www.altera.co.jp/support/softwar ... index.html

あとロジック回路のシミュレータも紹介しておきます。
「らくらくロジックの詳細情報 : Vector ソフトを探す!」
http://www.vector.co.jp/soft/win95/edu/se395970.html

Re: マイコン色々ご相談所。

Posted: 2010年10月29日(金) 19:00
by KEYONN_
tanaさん、softya(ソフト屋)さん、書き込みありがとうございます。
どうやら、このコミュニティは初心者にも親切な方が多いのですね。
うれしいです。

tanaさんへ
PICのASMは高校時代に習った覚えがありますが、忘れている上、
現在、PICのデバイス一式は全く持っていないし、初期投資が高いと
聞いたので、断念します。

softyaさん(ソフト屋さん)へ
私がVHDLを覚えるのは大変かもしれませんが、がんばります。
目標は以下のページみたいなものを作る事です。
http://crystal.freespace.jp/pgate1/nes/dev_flow.htm
FPGAの開発環境がいくつかあるみたいですが、
verilogはダウンロードしました。が、インストールはしてません。
後でインストールします。
QuartusⅡ7.2 Web Editionはダウンロードしてません。
後でダウンロードし、インストールします。
解説記事のほうも多いに参考にさせてもらいます。

まずは、簡単なロジック回路をVHDLで記述してみて、
どんな信号がでるかな?とわくわくしながらやってみたいと思います。

お二方共、どうもありがとうございました。

Re: マイコン色々ご相談所。

Posted: 2010年10月29日(金) 19:16
by softya(ソフト屋)
あっ混乱しているみたいなので補足を。
ハードウェア記述言語(Hardware Description Language)=HDLの言語の中に2大言語としてVHDLとverilogがあります。この2つはBASICとC言語のように違う言語です。他にもAHDLやABELなど様々な言語がありますよ。

私の紹介したのは、そのうちのverilogです。
http://ja.wikipedia.org/wiki/Verilog

Re: マイコン色々ご相談所。

Posted: 2010年10月29日(金) 22:13
by tana
初期投資が高いと言っても¥5,000程度です。
http://akizukidenshi.com/catalog/g/gK-02018
元を取れるくらい使えば安いと言えますかね(^^;

QuartusⅡは現在Ver.10.0だった記憶があります。
これさえあればVerilogHDLやVHDLといったあらゆるHDL言語が使えるので、softyaさんが乗せてくれたサイトを見れば大丈夫だと思われます。

Re: マイコン色々ご相談所。

Posted: 2010年12月03日(金) 14:35
by バグ
回路とか全然分からずに(一応プログラマなのでソフト屋さんなのです)いきなりVHDLでのコーディングを仕事でやらされた私・・・w

232C通信のモジュールとか泣きながら書き上げましたよ。あとでXilinxのサイトに落ちていると聞かされて更に泣けましたが・・・(-.-;)

基本的にプログラム言語の形を借りた回路図なので、同列に考えていると痛い目にあいますよと。
でもまぁ、全く知らない世界でしたから、辛くはありつつも楽しくもあったのは本音です。

2件目、3件目・・・と仕事をこなしていくうちに回路を書くのにもこなれてきて、オブジェクト指向っぽいのを取り込んでみたりして1人でニヤニヤしてみたりしてます。

Re: マイコン色々ご相談所。

Posted: 2011年9月01日(木) 10:05
by バグ
今度、仕事でH8マイコン(H8/3069F)のプログラムを書くことになりそうです。
一応、付属していたCDにコンパイラはついているようですが、コマンドラインで色々とやらないといけなくて面倒だなぁ・・・と。
それで、何かいいものが落ちてないかな?とネットをウロウロしていたら、H8マイコン用のIDEって色々あるんですねぇ・・・。
そんな訳で質問なのですが、皆さんは何を使用していますか?オススメの環境とかありますか?

Re: マイコン色々ご相談所。

Posted: 2011年9月01日(木) 10:17
by softya(ソフト屋)
ルネサス製のIDEであるHEWの評価版でことが足りれば良いのですが。
※ 試用期限(60日)を過ぎるとリンクサイズが64Kバイト以内に制限されます。
「統合開発環境 High-performance Embedded Workshop | ルネサス エレクトロニクス」
http://japan.renesas.com/products/tools ... anding.jsp

ただ、仕事となると勝手に開発環境変えるわけにはいけませんよね。
gccならEclipse でH8も開発できると思いますよ(私はやったことないです)。

「H8/3069開発環境構築」
http://www.hk1.co.jp/H8.jsp

Re: マイコン色々ご相談所。

Posted: 2011年9月01日(木) 10:43
by バグ
HEWの評価版の60日縛りは、RunAsDateでゴニョゴニョすればいけそうな気もしますが・・・w

ちなみに前任者はずっとコマンドラインでやってきたみたいなので、黄色いマニュアルに載っているやり方しか知らないみたいです。
とりあえず、今回のお仕事は簡単な内容らしいし、コマンドラインでガリガリやるとして、今後があるのならばHEWの導入を検討しようかな?見た目がVisualStudio6.0っぽくて、個人的には非常に馴染みやすそうなんですよね。

Re: マイコン色々ご相談所。

Posted: 2011年9月02日(金) 21:25
by tana
自分の場合、HEWはμITRONのプログラムをやりたい時に使ってますね。
μITRONを使わない場合はGCC Developer Liteを使っています。
http://www.besttechnology.co.jp/modules ... php?bid=95

Re: マイコン色々ご相談所。

Posted: 2011年9月08日(木) 19:43
by バグ
今回は質問させてください。
まず、AKI-H8/3069Fというマイコンボードキットを使用しています。
開発はC言語で、付属のCD-ROMに入っていたcygwinとGCCでコンパイルして、H8WriteTurboで書き込みしています。

やりたいことは、ある入力ポートの信号が有効になったら、ある出力ポートを決められた時間(10秒ほど)だけ有効にしたいというものです。ただ、その信号を出している間も別の処理をしたいため、システムコールのsleepのように処理を占有してしまうようなのは困るのです。

そこで、付属のリファレンスに記載されていたシステムコールのtimer?_registerを使ってみました。入力がきたら、timer?_registerでハンドラを割り付けて、処理が終了したらtimer?_unregistで解除するという流れです。リファレンスには「タイマーのカウントはクロック×8192のタイミングでおこなう」とかかれており、25MHzで動いていますので、1÷25000000×8192=0.00032768となり、1カウント辺り0.32768ミリ秒となるかと思います。そこで、timer?_registerの第2引数に指定するカウントを約1秒であろう1÷0.00032768=3051にしました。

しかし、実際には1秒にも満たないほどの時間で出力が終わってしまいます。何か使用方法を間違えているのでしょうか?

もし、これが一般的な方法ではないというのであれば、何か経過時間を計測できるような方法を教えていただけないでしょうか?よろしくお願いします。

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 01:02
by softya(ソフト屋)
調べるのに時間下さいね。
あと質問ですが、timerの何番を使ったのでしょうか?
出来れば初期化周りソースコードも欲しいところです。

あと出力端子の時間をロジアナかオシロで計測するとタイマーの動作時間の正確な時間がわかるので、タイマーがどう動いているか推測できるかと思います。

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 11:34
by バグ
タイマーは1番を使用しています。
不要な部分をざっくりと削ったソースを載せておきますね。

コード:

#include <h8/syscall.h>
#include <h8/reg3067.h>

void timer_proc(void)
{
	P1DR = (P1DR == 0x00) ? 0x0F : 0x00;
}

void main(void)
{
	// 出力ポートの初期化
	P1DDR =0x0F;
	P1DR = 0x0F;

	// 割り込み開始(理論上は1秒毎に発生するはず?)
	timer1_regist(timer_proc, 3051);

	// 本来は制御処理をおこなう無限ループ
	while (1)
	{
	}
}

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 12:03
by softya(ソフト屋)
これってH8/OSのもとでアプリが動いているんですよね?
「H8 developmet」
http://mes.sourceforge.jp/h8/index-j.html

なんか、H8/OS下だと割り込みのレジスタ操作とか起動時の初期化周りも不要なんですね。
楽は楽だけど挙動が見えなくて気持ち悪いです。

さて、今回の問題は、timer1のカウンタレジスタが8bitか16bitなのかが問題ですね。
挙動を聞く限りは8bitの予感がしますので、もし8bitなら割り込み回数をカウントして1秒にするしか無いでしょう。

「追記】
H8/OSの2.0のマニュアルを見ると16bitタイマと書いてあるんですが実際どっちでしょう?
タイマ値に0xf01とか入れてみるとはっきり分かるのでは無いでしょうか?

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 12:37
by バグ
リファレンスを見る限りでは、16bitタイマーの設定用関数のようですので、16bitだと思われます。

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 12:48
by softya(ソフト屋)
あちこちの掲示板では、H8では8bitタイマーで動作すると書かれているようです。
ハードウェアマニュアルも参照しましたが、timer3がもし存在するなら16bitタイマはありえません。8bitならtimer3までありえます。
なので実際の動作での試験や、タイマーレジスタの初期化周りのソースコードを実際に検証してみてください。

「追記】
こういう時にリファレンスを鵜呑みにするとだいたい間違っています。

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 13:02
by バグ
ボードの仕様を見てみると、16bitタイマが3チャンネル、8bitタイマが4チャンネルという仕様になっていますね。
確かに、「0番はユーザーの使用を禁止する」と書かれていたので、全部で4チャンネルないとおかしい・・・ってことは8bitっぽいですね。
8bitということは、0x00~0xFFまでしかカウンタが有効ではないということですね。
となると、MAXでも、0.32768×255=83.5584ミリ秒しか計測できないということですか・・・
ということは、割り込み周期をMAXにして1秒を計測するとなると、1000÷83.5584=11.9676・・・約12回に一度カウントアップしてやれば1秒に1度の割り込みを実現できるということかな?
ちょっと実験してきます。

Re: マイコン色々ご相談所。

Posted: 2011年9月09日(金) 13:19
by バグ
8bitタイマー疑惑がビンゴでした。
timer1_registの第2引数を0xFFにして、ハンドラの中で12回に一度カウントアップしてやると、ほぼ正確に1秒ごとに処理をされているようです。
助かりました、ありがとうございました(^-^)

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 14:51
by バグ
可能か不可能かも分からないのですが・・・。
今現在H8マイコンに書き込まれてあるバイナリと、PC内にある書き込み前のバイナリを比較することって可能なのでしょうか?
とある案件を引き継いだものの、ソースコードにバージョンがいくつもありまして、今どれが動いているのやら・・・という状態なのです・・・書いた本人には訳あって連絡が取れません(^_^;)

FPGAなんかだとコンペアできすよね?
H8マイコンでもあんな感じで比較できないかなぁ・・・と思って質問させてもらいました。

あ、H8-3069Fという基板を使ってます。
よろしくお願いしますm(_ _)m

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 15:12
by softya(ソフト屋)
バグ さんが書きました:可能か不可能かも分からないのですが・・・。
今現在H8マイコンに書き込まれてあるバイナリと、PC内にある書き込み前のバイナリを比較することって可能なのでしょうか?
とある案件を引き継いだものの、ソースコードにバージョンがいくつもありまして、今どれが動いているのやら・・・という状態なのです・・・書いた本人には訳あって連絡が取れません(^_^;)

FPGAなんかだとコンペアできすよね?
H8マイコンでもあんな感じで比較できないかなぁ・・・と思って質問させてもらいました。

あ、H8-3069Fという基板を使ってます。
よろしくお願いしますm(_ _)m
HEW辺りってROMの読み出し機能って付いてませんでした?
読み出せればファイルコンペアで解決かなと。
ただ、ROMの読み出しプロテクトが掛かっていると問題ですが。

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 15:49
by バグ
おぉ・・・HEWにはそんな便利な機能があるのですか・・・
HEWを使ったことがないので、知りませんでした。
HEW無しでは難しいのでしょうか?

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 15:50
by softya(ソフト屋)
肝心なことをお聞きしていませんでしたが、書き込みはどんなツールをお使いでしょうか?

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 15:52
by バグ
コンパイラはgccで、書き込みにはH8Writeという基板についてきたCDに収録されていたツールを使用しています。

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 16:30
by softya(ソフト屋)
バグ さんが書きました:コンパイラはgccで、書き込みにはH8Writeという基板についてきたCDに収録されていたツールを使用しています。
H8Writeは読み出し未対応みたいです。
残念ながらHEW関連のツールは探せませんでした。

H8がROMライタ装置を使えば読み出せるらしい・・・。との情報もありますが装置がないと話しになりませんね。
読み出しも可能であるという風にマニュアルも読めますが肝心のツールが見当たりません。
ちょっと試すには難しので手詰まりです。

Re: マイコン色々ご相談所。

Posted: 2012年6月28日(木) 16:53
by バグ
ありがとうございました。
とりあえず、全バージョン試してみることにします(^_^;)
動作を確認してみて、それっぽいものを現行バージョンとすることにします(苦笑)