AVRマイコン総合スレ Part41
■ このスレッドは過去ログ倉庫に格納されています
ここでいんじゃね
Arduinoあるならそれがライターになるよ ライターもデバッガも初心者に勧められるものはないのでできれば避けてください 自分が最終的に落ち着いたのは
uno,nanoは内蔵シリアル
pro mini, attinyはAliExpressで150円ぐらいのUSBasp
pro miniでシリアル通信が必要なときは、これまた150円ぐらいのシリアルコンバーター >>468
一回書き換えると元に戻せないヒューズだけは、高電圧で書き換え
どのヒューズがってのは状況によって変わった記憶が
うろ覚えでごめん、なんか俺もそれで困った記憶があって、道具無くてそのときだけチップ書い直した 具体的にこのライターでってのが一向に出てこないんだなAVRの場合。
みなさん自作なの?
それとも>>483の言ってるのが正しいってこと? なんの話してるんだ??
AVR ISPなんていっぱい出てるじゃないか。
互換品もいっぱいあるが不安なら純正品にしとけばいいじゃん。 2011年くらいからずっと AVRISPmk2 使ってて困ってないけど、「今一番」かどうかなんか知らんし >>486
アホには無理だから他の石使え
そして此処には来るな
と言ってるんだよ >>481
マイコン初心者なので、余計なトラブル回避したくて、
純正ライタ->純正ICEと来て、デバッグ環境まで手に入りました。
ただ、debugwireのヒューズ切り替えがめんどいので、
atmega328から移行を考えてます。
良さげな石ありますか? 最近、avrを堪能しようと思って、atmel-ice 買った。
ところで、ispで、tool から電源供給できるライターってあるのですか?
また、コマンドラインから、atmel-iceを使って、書込み実行する方法ってありますかね?
毎回 ctrl-shift + P で画面開いて、toolをiceに選択しなおして、memory開いて、flash,eeprom と
順番にボタン押していくのが面倒なんです。 純正のAVRISPmk2ってとっくに販売終了していて互換品しかないんだがな。
>>492
DIP限定ならjtagのあるmega644とか。
SOPでもいいなら、俺的にはUPDIが使えるtiny1シリーズやmega0シリーズが快適すぎる。
UPDIのやつはリセットピンをIOにしても戻すは割と簡単だし。(ただし出力設定にしてない場合に限る)
>>493
atprogramでググレ 俺は純正のライタが高くて買えないので、泣きながら自作した。
https://i.imgur.com/Sysi65t.jpg
裏側
https://i.imgur.com/lYHRHZP.jpg
書き込み後にリセットさせたくて、少し改造。
https://i.imgur.com/fREePYf.jpg
RTS-CTSの直結ラインを0.1μFで優しく受け止め、リセットピンに接続。
パーツは秋月で全部揃う。
1300円くらい。 ちゃんと AVRISPmk2が昔の製品って解るように書いたつもりなんだがなぁ >>495
atprogram 初めて知りました。ありがとうございます。
ところで、以下のような fuse 設定をソースに記述しているのですが、
これを、どうやって、writer 書き込めるのかわかりません。
.elf ファイルにあるとは思うのですが。 -fs -f xxxx.elf では設定できませんでした。
FUSES =
{
.low = LFUSE_DEFAULT,
.high = (FUSE_SPIEN & FUSE_WDTON & FUSE_BODLEVEL1),
.extended = (EFUSE_DEFAULT),
}; 下手に抜粋すると間違いが起きそうなので、俺が実際に使用してるバッチ内容をコピペするから適当に変更してくれ。
atprogram -f -t atmelice -i UPDI -d atmega4808 program -c --flash --fuses --verify --file mega4808.elf
推測だが、コマンドの「program」が抜けてるんじゃないかな。
コマンド内にサブコマンドがあってさらにそれに対するオプションと書式がややこしいんだ。
-fsは--fusesと同じ、-fは--fileと同じだからそのままでいい。
atprogramの直後にある-fはツールのファームバージョンが違っても強制するオプションでかぶるから俺は--fileで書いた。 atprogramってavrdudeとどう違うの?似たようなもの? AtmelStudioに付属してる純正のコマンドラインツールだよ。
基本的には純正ライタ・デバッガでしか動かない。 >>491
貴方のご意見の通りのようですね。
AVRはやめてPICを始めることにしました。
開発環境も書き込み器もすぐにこれだなというものの目星がつきました。
開発環境はすでにインストールし、PICとライターはもう注文しました。
感謝しています、ありがとうございました。 >>488のようなのが今の置き忘れられたAVRを象徴してるね。
面倒な初心者はディスり扱いで排除する貧相な度量。
Arduinoの構成パーツに成り下がり、単体では依然PICに追いつけず、こともあろうにそのライバルに買収された。 MPLABでAVRも開発できるし書き込みもできるんだけど、
新しすぎて情報が少ないんだよね。 >>499
完璧にうまくいきました。 助かりました。
fuses の設定を間違えて、1個 ispできなくなったけど...
高電圧ライターは、入手するか、、、買うかどうしようかな。 いつか役立つかもしれないユニバーサルライタを買うというのもあり >>505
気になって最近の情勢を調べてみたら、
どうやら、これからの初心者用はMPLAB IDEとこれ
http://akizukidenshi.com/catalog/g/gM-13854/
ということのようだね。
新参を拾い上げる度量もない古株にはいろんな意味で無縁なんだろうけど…。 >>509
それ買わせて結局PIC使いに化けさせるという戦略だなw
さすがに良く考えてある。 >>511
おっしゃる通り。
初心者だからこそ両方使って、両方使えるようになれて、適材適所に使い分けてもらいたい。
MicrochipのおかげでAVRの新シリーズも安価なんだし。 >>511
そういうことですね。
有益な、情報が得られれば、それだけでありがたいです。
別に正しくなくても、きっかけとして、自分で検証すればいいだけなので。 私は、PICとAVRが目の前に置いてある状況で、
「どちらを使っても構いませんよ」
と言われたとたら、どうしてもAVRを選んでしまう。
何と言えばいいのか、PICファンの皆様、PICは私の特異体質に合わないんですよ。
昔、PICを始めた時にアセンブラでプログラムを書いていたら頭痛がしてきて、
それでもライタなどの初期投資代金がもったいないので、
我慢して、さらに2本目も書いたのだが、頭痛はひどくなり、
このまま続けていたら、PICのアホが私に乗り移ってしまいそうな恐怖に駆られてw
3本目はとうとうPICを諦めてAVRに乗り替えてしまった。
もちろんISPライタなどの金がまた掛かったが、プログラミング中の頭痛はなくなった。
AVRは良い。私のナスがママ、胡瓜がパパ、意のままに動く。
私の特異体質のせいだと思うから誰の参考にもならないだろうな。
(御精読を感謝します。怒っちゃヤーよ、ほら笑って笑って) Arduino NanoをライターにしてATmega328PにLチカをさせるところまで来ました。
>>482さん、アドバイスありがとうございます、ライター関連出費ゼロで済んでますw
外付けの16MHzのセラロックで動かしてるんですが、半部くらいの速度になってしまいます。
あと、内蔵クロックに設定すると動きません。
ま、ぼちぼち解明していくつもりです。
とりあえずお礼とご報告まで。 atmel-ice の他、
pic用で、pickit4 買ったんだけど、avrの対応はどうなっているのか良く分からんです。
UPDIだけの対応かな? 内部で12V生成していると思うので、avrの高電圧モードもあればいいんだけど。。。 PICKIT4はATMEL-ICEと同等の対応見たいで12VはUPDI/HVだけのようです。
snapのUser GuideにPICKIT4vsSnapの比較が出ていてわかりやすいです。
MALAB Xより次期AS7の方がさきにPICKIT4対応できるのではと期待してます。 >>518
おおAS7単体でなくMPLABも一緒にインストすればAS7で使えるようになるのですね。 TNX
snapもサポートしてくれないかな マイコン始めようと思ってる、AVRとH8と迷って中。
やっぱAVRがおすすめ? H8のボードでしょ?
Arduinoと迷ってんじゃないの? >>514
20年も過ぎればデバイスも開発環境も変わる、、、
とは限らないか >>520
今から始めるならH8じゃなくてRL78じゃねえの。せめてR8Cだわ。
デバッグ環境考えるとルネサスのほうがいいと思うがねえ。 >>495
mega644、tiny1、mega0ですか、メモしときます。
644、中々いい朝お値段しますね。
後二つはまだ詳細分かってないですが、調べてみます。
最近はDIPじゃない方がむしろ都合いいです 誘導ミサイルに頼りすぎるとドッグファイト能力が落ちるとかなんとか昔トップガンでやってた
誘導ミサイル:高性能デバッガ
ドッグファイト:基本的なプログラミング能力 >>529 そですね。
そういう意味でのマイコン選びなのですが…
アルデュイーノやラズパイは、できあがりすぎていると感じました。
ただ、PICは統一性がなく、余計な手間がかかりすぎる。
その上で、AVR、H8(RL78、R8C)、Z80あたりを探っているのですが。
H8系は面白そうですけど簡易工作レベルでは、高性能すぎると感じます。
ゆえに、AVRが妥当かと。 H8が高性能だって?
まあ、そう「感じた」んなら仕方ないけど・・・ AVRより高性能なのは間違ってない
コード見るとAVRはコンパイラがかなり苦しんでる >>530
RL78とかは、24bit ADC とか、OPAMP x4 とか、機能が満載のMPU揃ってるけど、
小口での入手性や、開発環境考えるとAVRと、外部ADC,OPAMPというのが、妥当なんだろうなと思っています
。今度、仕事で使うけどね。
PICも比較的、機能充実しているけど、それなりのノウハウが必要な感じですね。 RL78のことは全く知らないけどマイコンなら電源は5Vか3.3Vでしょ?
24bitのADCとか周辺回路も含めてどうやってローノイズ化するの?
温度変化や機械衝撃だけでも下位数bitはグラグラ動きそう。。 >>534
0.1uVオーダーって帯域にもよるけど
熱雑音の方が大きいな
普通の実装では全く意味を持たない世界 レスありがとうございました。
しかし、ど素人レベルでも読めるAVRの参考書籍がAmazonみてもほとんどありませんでした。
H8系は、これはいけそう!って本が何冊か見当たりました。
PICの本、多いけシステムにど統一性が無いですし。
とりあえず、AVRとH8系を見ていきたいと思います。 >>526
ふむFWのUpdateにMAPLABが必要だっただけで、対応FWを持ったPICkit4は
最初からAS7で使用可能なのですね。 クロックの周波数変えたいだけなのにヒューズビットの決め方がわからん。
アホなのでPICに変えます。 クロックの周波数を変えたいならCLKPRレジスタでは? Arduino IDEから適当な周波数を選んで「ツール」→「ブートローダを書き込む」では? >>542
後半は何となくわかる。
前半の
>Arduino IDEから適当な周波数を選んで
を具体的に頼む。
現行のボードの中から選ぶってことなら選択肢ほとんど無いような。 >>543
じゃあ、IDEに付属の「avrdude.exe」を使う方法かな >>541
このサイトで設定してavrdudeでヒューズを書き変える
ヒューズはL・H・E(Low,High,Extended)の3種類ある
例えば、Lヒューズを「0x7a」にしたければ
avrdude -C c:\avrdude\avrdude.conf -p m328p -P COM6 -c avrisp -b 19200 -U lfuse:w:0x7a:m
とかにする。引数はだいたい分かると思う フリーでGUI版があったりするから探してみて
連投すんません >>541
ありがとう、知らなかった。
これ使ってboards.txtを編集するという方法でやってみる。 >>547
うんそれそれ、ありがとう。
ID:rOsqwnuw
ありがとう。
コマンドラインはなんかとっつきにくいけど、慣れてきたらGUI版から試してみる。 存在しなければ、あるいは使いにくいなら、
自分で好きなようにヒューズ読み書きプログラムを作れば済む話しなのに。
>>474 前にAliでATtiny13A開発ボードとかいうよくわからん基板を買った(1枚60円くらいで5枚買った)
ISPがつなげられてLEDが2つ付いてるから13Aで遊ぶのにいいかなと思っていたけどずっと放置してた
https://i.imgur.com/EBrwfnS.jpg
なんでmicroUSBコネクタが付いてるのかどうも気になってたけどよく調べてみるとtiny85乗せてファーム書き込むとDigisparkになるらしい
https://s3.amazonaws.com/digispark/DigisparkSchematicFinal.pdf(この回路図D3の向き逆じゃね?) >>551
必ずこういう口調で殺伐と畳みかけてくる奴がいるよね、このスレ。 >>555
「殺伐と畳みかける」と受け取らせてしまったのなら申し訳無かった。
私としては雰囲気を悪くするつもりではなくて、ホントに純粋に単純に
「無いなら作ればいいのに」、「必要なら作ればいいのに」
なぜ作らないんだろ?と思ったんだよ。
作らなければ一生出来ないし、作ろうとすればいつかは出来る。
「なさぬは人のなさぬなりけり」
今後は「殺伐と」にならないように書く時に気をつける。
どう気をつけたらいいかよく分らないけどw >>556
悪意が先に立つから
>AVRのヒューズ/ロックビット読み書きソフトを作っていて、
が目に入らないんだろ。
人としての品格の問題だから気をつけようがない、あんたの場合は。 >>554
USBから電源を給電するのであれば逆だよね
JP2から給電した場合はUSBの5Vに接続する必要無さそうだし、回路図が間違っているのかもね AVRドラゴンの追加部品セットがあればライターやリセッタ周りの悩みはかなり減るんだが
自由度ありすぎて困る >>557
多分、勘違いしていると思う。
>>551 の > AVRのヒューズ/ロックビット読み書きソフトを作っていて
も
>>474 の > 自分で好きなようにヒューズ読み書きプログラムを作れば済む話しなのに。
も私が書いたんだよ。
そうか、だから、
>>552 の > いや、だから作ってたって話なんだろ?
という私にとっては意味不明のレスになったのか?
私のレス方針は「和を以て貴しとなす」と「アホの相手はしない」なのでw
怒られたのならとりあえず謝っておこう、と >>553 を書いた。
なお、私に人としての品格が無いかどうかはよく分らない。
人に言われたことはないけど、考えてみます。
(他の人には何の興味も無いでしょうから、この話題はこれで終わりにします)
私がAVRを始めた時の製作順序は、
1)秋月で購入したライタで1作目、2作目のプログラムを作る
AVRが気に入ったので使い続けることを決める
2)回路に影響されないROMエミュレータ方式のライタを作る
3)ブラックボックスがイヤなのでデバッガを作る
4)ヒューズ・ロックビットのGUIソフトを作る
5)パラレルライタを作る PICの場合、PWM AUTO-SHUTDOWN MODE があって、コンパレータのイベントで、
PWMのstop/startを自動的に制御できる機能がありますけど、
avrの場合、この機能のある品種ってありますか、割込みで制御すればいいだけなんですが、便利なので。 イベントシステムを搭載しているチップのA型カウンタは
イベントがHiの間だけカウント動作させる機能がある。
コンパレータ出力はイベントを発生できるので目的の動作ができるでしょう。 >>564
ありがとうございます。
tinyだと、
attiny1607 が該当しているみたいですね。
QFPしかないのは、残念。 >>564
attiny412も8pinでevsys対応してますね。 AVRみたいなマイコンでprintfってコマンド打つとどうなるの?
PCみたいにディスプレイが標準端末ならまだしも
マイコンに標準端末って無いじゃん >>567
何もおきない
標準出力をシリアル出力に設定しておくとターミナル等のアプリに文字列が出力されて便利 >>567
ArduinoみたいにPCとUSB接続してクロス開発するような処理系だとPC側に仮想端末を持たせて、これにprintf他の出力関数で文字列を出力(キーボード入力も)できる。
Arduino内で無くてもPCで起動されてる汎用端末のアプリとも同様に入出力できる。 >>567
printfが呼び出す先、つまり putc とかを自分で作ってあげないとリンカーエラーでコンパイル
できない場合が多い。
たいていはUARTなんかを出力先にしてデバッグしたり。
もちろんディスプレイを付けてあげればパソコンのようなこともがんばればできるし、
Arduinoなんかは出来合いのもあるんではないか。 >>567
>>569 の他にもbluetoothユニットを介してスマホの仮想端末アプリとも同様の入出力できる。
また有線LANボードを追加するとミニサーバーを立ち上げて、HTMLを書いとけばLAN上のPCやスマホのブラウザからアクセスできる。
自分はArduinoに取り込んだセンサー情報を端末から読むときに使ってる。 >>568
> 標準出力をシリアル出力に設定しておくと
そういうことか!
そういう設定ってプログラムの中でやるの?
それともヒューズビットか何かをいじるの? >>572
static int stdPutc( char c, FILE *stream );
static FILE suStream = FDEV_SETUP_STREAM( stdPutc, NULL, _FDEV_SETUP_WRITE );
static int stdPutc( char c, FILE *stream )
{
while ( !( UCSRA & (1<<UDRE) ) );
UDR = c;
return 0;
}
int main( void )
{
stdout = &suStream;
printf_P( PSTR("Hello world") );
}
ヘッダファイルとUSARTの初期化は省略しているので注意。(あくまでも標準出力を設定するサンプルなので) そもそも、Cにおいてprintf()ってのは関数を呼び出す以上の
意味はないからな…
printf()が具体的に何をするかは知らんもの コンソールアプリでC言語勉強はじめたばかりのガキ臭がする デバッガ使うまでも無い小さなプログラムならprintf()で変数の内容表示とか割と便利(出力先をLCDにしておいても良いし)
ただ標準のprintf()はコードが無駄に大きいので似たような関数を自作した方が良いと思う 何故画面に出力される事が標準乃動作と思ふのだらうか >>576
平気で、printf()は「画面に」出力する「命令」です
なんて教える教師や教科書があるからなぁ…
そう言うのに当たっちゃったら、やむを得ない気がする まぁパソコンのソフトウェア開発から入れば高級言語しか知らんだろうし… lcd繋げて、それに出力する様作っても良いんだよ! ■ このスレッドは過去ログ倉庫に格納されています