マイコン色々ご相談所。

マイコン/FPGAなどの電子工作部です。
CPUエミュで無料で始めて見ませんか?
将来は作ったものを発表したり、相談しあったりしましょう。

私の立ち上げた電子工作系のまとめサイトですが忙しくてあまり更新できてません。
「8ビットマイコン Japanino(ジャパニーノ) まとめ @wiki 学研 大人の科学マガジン Vol.27」
http://www35.atwiki.jp/japanino/
返信
アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

マイコン色々ご相談所。

#1

投稿記事 by softya(ソフト屋) » 13年前

マイコン関係でお悩みのことがあれば、ここにご相談下さい。
ハード的なことからソフトまで、分かる範囲でお答えします。
最後に編集したユーザー softya(ソフト屋) on 2010年10月29日(金) 22:13 [ 編集 1 回目 ]
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
KEYONN_
記事: 70
登録日時: 13年前

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

#2

投稿記事 by KEYONN_ » 13年前

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

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

アバター
tana
記事: 33
登録日時: 13年前

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

#3

投稿記事 by tana » 13年前

TKOZさんがまずはどんなことをやってみたいのかを教えて頂けるとアドバイスしやすいかもしれません。

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#4

投稿記事 by softya(ソフト屋) » 13年前

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
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
KEYONN_
記事: 70
登録日時: 13年前

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

#5

投稿記事 by KEYONN_ » 13年前

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で記述してみて、
どんな信号がでるかな?とわくわくしながらやってみたいと思います。

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#6

投稿記事 by softya(ソフト屋) » 13年前

あっ混乱しているみたいなので補足を。
ハードウェア記述言語(Hardware Description Language)=HDLの言語の中に2大言語としてVHDLとverilogがあります。この2つはBASICとC言語のように違う言語です。他にもAHDLやABELなど様々な言語がありますよ。

私の紹介したのは、そのうちのverilogです。
http://ja.wikipedia.org/wiki/Verilog
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
tana
記事: 33
登録日時: 13年前

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

#7

投稿記事 by tana » 13年前

初期投資が高いと言っても¥5,000程度です。
http://akizukidenshi.com/catalog/g/gK-02018
元を取れるくらい使えば安いと言えますかね(^^;

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

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#8

投稿記事 by バグ » 13年前

回路とか全然分からずに(一応プログラマなのでソフト屋さんなのです)いきなりVHDLでのコーディングを仕事でやらされた私・・・w

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

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

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

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#9

投稿記事 by バグ » 12年前

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#10

投稿記事 by softya(ソフト屋) » 12年前

ルネサス製の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
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#11

投稿記事 by バグ » 12年前

HEWの評価版の60日縛りは、RunAsDateでゴニョゴニョすればいけそうな気もしますが・・・w

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

アバター
tana
記事: 33
登録日時: 13年前

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

#12

投稿記事 by tana » 12年前

自分の場合、HEWはμITRONのプログラムをやりたい時に使ってますね。
μITRONを使わない場合はGCC Developer Liteを使っています。
http://www.besttechnology.co.jp/modules ... php?bid=95

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#13

投稿記事 by バグ » 12年前

今回は質問させてください。
まず、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秒にも満たないほどの時間で出力が終わってしまいます。何か使用方法を間違えているのでしょうか?

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#14

投稿記事 by softya(ソフト屋) » 12年前

調べるのに時間下さいね。
あと質問ですが、timerの何番を使ったのでしょうか?
出来れば初期化周りソースコードも欲しいところです。

あと出力端子の時間をロジアナかオシロで計測するとタイマーの動作時間の正確な時間がわかるので、タイマーがどう動いているか推測できるかと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#15

投稿記事 by バグ » 12年前

タイマーは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)
	{
	}
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#16

投稿記事 by softya(ソフト屋) » 12年前

これって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とか入れてみるとはっきり分かるのでは無いでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#17

投稿記事 by バグ » 12年前

リファレンスを見る限りでは、16bitタイマーの設定用関数のようですので、16bitだと思われます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#18

投稿記事 by softya(ソフト屋) » 12年前

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

「追記】
こういう時にリファレンスを鵜呑みにするとだいたい間違っています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#19

投稿記事 by バグ » 12年前

ボードの仕様を見てみると、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度の割り込みを実現できるということかな?
ちょっと実験してきます。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#20

投稿記事 by バグ » 12年前

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

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#21

投稿記事 by バグ » 11年前

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#22

投稿記事 by softya(ソフト屋) » 11年前

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

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

あ、H8-3069Fという基板を使ってます。
よろしくお願いしますm(_ _)m
HEW辺りってROMの読み出し機能って付いてませんでした?
読み出せればファイルコンペアで解決かなと。
ただ、ROMの読み出しプロテクトが掛かっていると問題ですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#23

投稿記事 by バグ » 11年前

おぉ・・・HEWにはそんな便利な機能があるのですか・・・
HEWを使ったことがないので、知りませんでした。
HEW無しでは難しいのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#24

投稿記事 by softya(ソフト屋) » 11年前

肝心なことをお聞きしていませんでしたが、書き込みはどんなツールをお使いでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#25

投稿記事 by バグ » 11年前

コンパイラはgccで、書き込みにはH8Writeという基板についてきたCDに収録されていたツールを使用しています。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#26

投稿記事 by softya(ソフト屋) » 11年前

バグ さんが書きました:コンパイラはgccで、書き込みにはH8Writeという基板についてきたCDに収録されていたツールを使用しています。
H8Writeは読み出し未対応みたいです。
残念ながらHEW関連のツールは探せませんでした。

H8がROMライタ装置を使えば読み出せるらしい・・・。との情報もありますが装置がないと話しになりませんね。
読み出しも可能であるという風にマニュアルも読めますが肝心のツールが見当たりません。
ちょっと試すには難しので手詰まりです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
バグ
記事: 130
登録日時: 13年前
住所: 愛媛県
連絡を取る:

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

#27

投稿記事 by バグ » 11年前

ありがとうございました。
とりあえず、全バージョン試してみることにします(^_^;)
動作を確認してみて、それっぽいものを現行バージョンとすることにします(苦笑)

返信

“マイコン/FPGA電子工作部” へ戻る