AVRマイコン総合スレ Part41

1774ワット発電中さん2018/09/29(土) 13:25:04.41ID:NVU21ZtG
個人でも手軽に使えるAtmelのAVRマイクロプロセッサを中心に語るスレッドです

<公式サイト>
http://www.microchip.com/design-centers/8-bit/microchip-avr-mcus
・AVR Libc Reference Manual:
https://www.microchip.com/webdoc/avrlibcreferencemanual/install_tools_1install_avr_libc.html

<参考になるページ>
・AVRWiki: http://avrwiki.sourceforge.jp/cgi-bin/wiki.cgi?page=AVRWiki
・AVR情報多い-chanさんのpage: http://elm-chan.org/
・avrfreaks.net avrgccその他AVR関連の総本山(英語): http://www.avrfreaks.net/
・TAP-Config: http://ww2.tiki.ne.jp/~maro/
・AVR.jp 日本語のAVR資料他: http://www.avr.jp/
・ATMega168日本語データシート(翻訳中): http://awawa.hariko.com/chira-ura/
・AVR アセンブラのマニュアル(ユーザーズガイド): http://www.atmel.com/Images/doc1022.pdf
・インストラクション(命令セット)の解説: http://www.atmel.com/Images/doc0856.pdf
・条件付きアセンブルの解説(アセンブラ ver. 1.74対応):http://www.atmel.com/Images/doc2550.pdf
・アセンブラとCの連携方法: http://www.atmel.com/Images/doc1234.pdf

前スレ
AVRマイコン総合スレ Part40
https://rio2016.5ch.net/test/read.cgi/denki/1517019258/

533774ワット発電中さん2019/01/17(木) 11:30:54.75ID:dyZV2em2
>>530
RL78とかは、24bit ADC とか、OPAMP x4 とか、機能が満載のMPU揃ってるけど、
小口での入手性や、開発環境考えるとAVRと、外部ADC,OPAMPというのが、妥当なんだろうなと思っています
。今度、仕事で使うけどね。

PICも比較的、機能充実しているけど、それなりのノウハウが必要な感じですね。

534774ワット発電中さん2019/01/17(木) 12:32:16.02ID:jSkYbzg1
RL78のことは全く知らないけどマイコンなら電源は5Vか3.3Vでしょ?
24bitのADCとか周辺回路も含めてどうやってローノイズ化するの?
温度変化や機械衝撃だけでも下位数bitはグラグラ動きそう。。

535774ワット発電中さん2019/01/17(木) 12:38:32.13ID:YBAu5xav
>>534
0.1uVオーダーって帯域にもよるけど
熱雑音の方が大きいな
普通の実装では全く意味を持たない世界

536774ワット発電中さん2019/01/17(木) 12:54:12.03ID:jSkYbzg1
>>535
そう、アンプ無しで脳波計ができる。

537774ワット発電中さん2019/01/17(木) 13:12:18.43ID:JAqxnnR+
レスありがとうございました。
しかし、ど素人レベルでも読めるAVRの参考書籍がAmazonみてもほとんどありませんでした。
H8系は、これはいけそう!って本が何冊か見当たりました。
PICの本、多いけシステムにど統一性が無いですし。
とりあえず、AVRとH8系を見ていきたいと思います。

538774ワット発電中さん2019/01/17(木) 13:18:09.28ID:GjkWII95
>>526
ふむFWのUpdateにMAPLABが必要だっただけで、対応FWを持ったPICkit4は
最初からAS7で使用可能なのですね。 

539774ワット発電中さん2019/01/17(木) 14:12:22.60ID:YvVo9clC
クロックの周波数変えたいだけなのにヒューズビットの決め方がわからん。
アホなのでPICに変えます。

540774ワット発電中さん2019/01/17(木) 15:54:13.78ID:tlH0JF1y
クロックの周波数を変えたいならCLKPRレジスタでは?

541774ワット発電中さん2019/01/17(木) 16:08:39.27ID:sQRL5cMf
ヒューズビット計算機とか
http://www.engbedded.com/fusecalc

542774ワット発電中さん2019/01/17(木) 16:41:49.92ID:rOsqwnuw
Arduino IDEから適当な周波数を選んで「ツール」→「ブートローダを書き込む」では?

543774ワット発電中さん2019/01/17(木) 16:54:32.43ID:jge/9xRH
>>542
後半は何となくわかる。
前半の
>Arduino IDEから適当な周波数を選んで
を具体的に頼む。
現行のボードの中から選ぶってことなら選択肢ほとんど無いような。

544774ワット発電中さん2019/01/17(木) 17:11:19.22ID:rOsqwnuw
>>543
じゃあ、IDEに付属の「avrdude.exe」を使う方法かな

545774ワット発電中さん2019/01/17(木) 17:18:30.65ID:rOsqwnuw
>>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
とかにする。引数はだいたい分かると思う

546774ワット発電中さん2019/01/17(木) 17:19:19.28ID:rOsqwnuw
ヒューズの書き換えは慎重にね

547774ワット発電中さん2019/01/17(木) 17:19:49.37ID:v+YVv32f
>>543
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
ここの Minimal Circuit
見れば載ってる

548774ワット発電中さん2019/01/17(木) 17:20:47.99ID:rOsqwnuw
フリーでGUI版があったりするから探してみて
連投すんません

549774ワット発電中さん2019/01/17(木) 17:21:49.59ID:EkGTa1uN
>>541
ありがとう、知らなかった。
これ使ってboards.txtを編集するという方法でやってみる。

550774ワット発電中さん2019/01/17(木) 17:25:42.59ID:EkGTa1uN
>>547
うんそれそれ、ありがとう。
ID:rOsqwnuw
ありがとう。
コマンドラインはなんかとっつきにくいけど、慣れてきたらGUI版から試してみる。

551774ワット発電中さん2019/01/18(金) 07:21:42.64ID:lx1J/wOG
存在しなければ、あるいは使いにくいなら、
自分で好きなようにヒューズ読み書きプログラムを作れば済む話しなのに。
>>474

552774ワット発電中さん2019/01/18(金) 09:33:16.20ID:RqV8m+ly
いや、だから作ってたって話なんだろ?

553774ワット発電中さん2019/01/18(金) 15:27:27.55ID:lx1J/wOG
そうか、そうれはスマンかった。

554774ワット発電中さん2019/01/18(金) 15:33:00.27ID:qcBWi2lF
前に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の向き逆じゃね?)

555774ワット発電中さん2019/01/18(金) 15:58:01.68ID:An6x4Zbc
>>551
必ずこういう口調で殺伐と畳みかけてくる奴がいるよね、このスレ。

556774ワット発電中さん2019/01/18(金) 16:37:15.96ID:lx1J/wOG
>>555
「殺伐と畳みかける」と受け取らせてしまったのなら申し訳無かった。
私としては雰囲気を悪くするつもりではなくて、ホントに純粋に単純に
「無いなら作ればいいのに」、「必要なら作ればいいのに」
なぜ作らないんだろ?と思ったんだよ。
作らなければ一生出来ないし、作ろうとすればいつかは出来る。
 「なさぬは人のなさぬなりけり」

今後は「殺伐と」にならないように書く時に気をつける。
どう気をつけたらいいかよく分らないけどw

557774ワット発電中さん2019/01/18(金) 16:53:59.43ID:cM9Rz04n
>>556
悪意が先に立つから
>AVRのヒューズ/ロックビット読み書きソフトを作っていて、
が目に入らないんだろ。
人としての品格の問題だから気をつけようがない、あんたの場合は。

558774ワット発電中さん2019/01/18(金) 23:31:46.07ID:egR6Lqh7
>>554
USBから電源を給電するのであれば逆だよね
JP2から給電した場合はUSBの5Vに接続する必要無さそうだし、回路図が間違っているのかもね

559774ワット発電中さん2019/01/19(土) 12:42:26.12ID:z83xjl0b
AVRドラゴンの追加部品セットがあればライターやリセッタ周りの悩みはかなり減るんだが
自由度ありすぎて困る

560774ワット発電中さん2019/01/19(土) 16:09:15.63ID:cnrSZwi7
>>557
多分、勘違いしていると思う。
 >>551 の > AVRのヒューズ/ロックビット読み書きソフトを作っていて

 >>474 の > 自分で好きなようにヒューズ読み書きプログラムを作れば済む話しなのに。
も私が書いたんだよ。
そうか、だから、
 >>552 の > いや、だから作ってたって話なんだろ?
という私にとっては意味不明のレスになったのか?
私のレス方針は「和を以て貴しとなす」と「アホの相手はしない」なのでw
怒られたのならとりあえず謝っておこう、と >>553 を書いた。
なお、私に人としての品格が無いかどうかはよく分らない。
人に言われたことはないけど、考えてみます。
(他の人には何の興味も無いでしょうから、この話題はこれで終わりにします)

私がAVRを始めた時の製作順序は、
1)秋月で購入したライタで1作目、2作目のプログラムを作る
AVRが気に入ったので使い続けることを決める
2)回路に影響されないROMエミュレータ方式のライタを作る
3)ブラックボックスがイヤなのでデバッガを作る
4)ヒューズ・ロックビットのGUIソフトを作る
5)パラレルライタを作る

561774ワット発電中さん2019/01/21(月) 08:43:24.09ID:rJaG0WOd
ny85の高精度版まだかよ

562774ワット発電中さん2019/01/22(火) 18:04:22.05ID:25ahaHrv
PWM AUTO-SHUTDOWN MODE

563774ワット発電中さん2019/01/22(火) 18:07:22.63ID:25ahaHrv
PICの場合、PWM AUTO-SHUTDOWN MODE があって、コンパレータのイベントで、
PWMのstop/startを自動的に制御できる機能がありますけど、
avrの場合、この機能のある品種ってありますか、割込みで制御すればいいだけなんですが、便利なので。

564774ワット発電中さん2019/01/22(火) 19:28:35.39ID:YilKcmeD
イベントシステムを搭載しているチップのA型カウンタは
イベントがHiの間だけカウント動作させる機能がある。
コンパレータ出力はイベントを発生できるので目的の動作ができるでしょう。

565774ワット発電中さん2019/01/22(火) 19:49:44.39ID:25ahaHrv
>>564
ありがとうございます。

tinyだと、
attiny1607 が該当しているみたいですね。
QFPしかないのは、残念。

566774ワット発電中さん2019/01/22(火) 20:07:58.01ID:25ahaHrv
>>564
attiny412も8pinでevsys対応してますね。

567774ワット発電中さん2019/01/22(火) 20:36:53.51ID:4N5QGeD9
AVRみたいなマイコンでprintfってコマンド打つとどうなるの?
PCみたいにディスプレイが標準端末ならまだしも
マイコンに標準端末って無いじゃん

568774ワット発電中さん2019/01/22(火) 20:55:04.42ID:SUk48xYi
>>567
何もおきない
標準出力をシリアル出力に設定しておくとターミナル等のアプリに文字列が出力されて便利

569774ワット発電中さん2019/01/22(火) 20:58:27.98ID:NlURk6OK
>>567
ArduinoみたいにPCとUSB接続してクロス開発するような処理系だとPC側に仮想端末を持たせて、これにprintf他の出力関数で文字列を出力(キーボード入力も)できる。
Arduino内で無くてもPCで起動されてる汎用端末のアプリとも同様に入出力できる。

570774ワット発電中さん2019/01/22(火) 20:59:27.65ID:3DIxSH8u
>>567
printfが呼び出す先、つまり putc とかを自分で作ってあげないとリンカーエラーでコンパイル
できない場合が多い。
たいていはUARTなんかを出力先にしてデバッグしたり。
もちろんディスプレイを付けてあげればパソコンのようなこともがんばればできるし、
Arduinoなんかは出来合いのもあるんではないか。

571774ワット発電中さん2019/01/22(火) 22:01:19.35ID:NlURk6OK
>>567
>>569 の他にもbluetoothユニットを介してスマホの仮想端末アプリとも同様の入出力できる。
また有線LANボードを追加するとミニサーバーを立ち上げて、HTMLを書いとけばLAN上のPCやスマホのブラウザからアクセスできる。
自分はArduinoに取り込んだセンサー情報を端末から読むときに使ってる。

572774ワット発電中さん2019/01/22(火) 22:48:56.69ID:4N5QGeD9
>>568
> 標準出力をシリアル出力に設定しておくと

そういうことか!

そういう設定ってプログラムの中でやるの?
それともヒューズビットか何かをいじるの?

573774ワット発電中さん2019/01/22(火) 22:50:12.17ID:3DIxSH8u
自分で作るのだよ

574774ワット発電中さん2019/01/22(火) 23:14:01.59ID:SUk48xYi
>>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の初期化は省略しているので注意。(あくまでも標準出力を設定するサンプルなので)

575774ワット発電中さん2019/01/22(火) 23:14:14.87ID:2i7aTnu5
そもそも、Cにおいてprintf()ってのは関数を呼び出す以上の
意味はないからな…
printf()が具体的に何をするかは知らんもの

576774ワット発電中さん2019/01/23(水) 05:24:20.01ID:caq2itq4
コンソールアプリでC言語勉強はじめたばかりのガキ臭がする

577774ワット発電中さん2019/01/23(水) 06:41:25.57ID:lu5gAxuI
デバッガ使うまでも無い小さなプログラムならprintf()で変数の内容表示とか割と便利(出力先をLCDにしておいても良いし)
ただ標準のprintf()はコードが無駄に大きいので似たような関数を自作した方が良いと思う

578774ワット発電中さん2019/01/23(水) 07:16:10.17ID:Oqfjg8Jf
>>577
書式指定の処理が大変だもの…

579774ワット発電中さん2019/01/23(水) 12:22:20.49ID:32G9oJar
何故画面に出力される事が標準乃動作と思ふのだらうか

580774ワット発電中さん2019/01/23(水) 18:33:17.75ID:M/OW0BAx
>>576
平気で、printf()は「画面に」出力する「命令」です
なんて教える教師や教科書があるからなぁ…
そう言うのに当たっちゃったら、やむを得ない気がする

581774ワット発電中さん2019/01/23(水) 18:34:57.56ID:jPd+aunc
まぁパソコンのソフトウェア開発から入れば高級言語しか知らんだろうし…

582774ワット発電中さん2019/01/23(水) 18:36:45.59ID:i+LgiMn2
lcd繋げて、それに出力する様作っても良いんだよ!

583774ワット発電中さん2019/01/23(水) 18:38:28.80ID:HnGB1zOM
>>580
おまえらの世代はパンチカードだったかもしれんが、
入門者には画面と教えて問題ないだろ

新着レスの表示
レスを投稿する