X



トップページ電気・電子
1002コメント298KB
AVRマイコン総合スレ Part37
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん 転載ダメ
垢版 |
2016/02/10(水) 01:38:42.26ID:kLm1nPXV
個人でも手軽に使えるAtmelのAVRマイクロプロセッサを中心に語るスレッドです

<公式サイト>
Atmel AVR 8-bit and 32-bit Microcontrollers
http://www.atmel.com/products/microcontrollers/avr/  英語表記
http://www.atmel.com/ja/jp/products/microcontrollers/avr/ 日本語
・AVR Libc Reference Manual: http://www.atmel.com/webdoc/AVRLibcReferenceManual/

<参考になるページ>
・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マイコン総合スレ Part36(c)2ch.net
http://wc2014.2ch.net/test/read.cgi/denki/1445006186/

テンプレみたいなものは以上です
0629774ワット発電中さん
垢版 |
2016/05/08(日) 07:39:37.95ID:9Ecoe0gl
だってメガ382とかパッケ大きすぎじゃん
IOピンもっと少なくていいからもっと小さいパッケが欲しいときとか
どうんすのよ?
0632774ワット発電中さん
垢版 |
2016/05/08(日) 10:01:59.84ID:LrcSRUjG
私はメモリ容量ではなくて、I/Oで決めることが多い。
AVRはDIPの2313、328、1284の何れかをよく使う。
値段はあまり気にしない(値段で迷った事は無い)
0633774ワット発電中さん
垢版 |
2016/05/08(日) 10:18:50.01ID:6yB2f0Yk
おれもI/Oピン数で決めるな
たまに40P DIPで、ほとんどの場合20P、28Pで足りる
AD必要ならMEGA328 無しなら2313
0634774ワット発電中さん
垢版 |
2016/05/08(日) 11:44:19.11ID:XbK4KNjX
Tinyはとにかく小さくしたいときに便利です。
8PINはインドアプレーンなどに使ってます
0635774ワット発電中さん
垢版 |
2016/05/08(日) 12:54:44.78ID:C3YcuSfk
一度 米粒を使ってみたいが そういう具体的用途がないんだよね
ないなら作るか・・・
0636774ワット発電中さん
垢版 |
2016/05/08(日) 13:55:12.43ID:MZk+D4FO
俺も同じtiny10いつか使ってみたいが用途がない
Flash少ないし何ができるかな?
0637774ワット発電中さん
垢版 |
2016/05/08(日) 13:56:20.54ID:CIB+e4AY
他励式圧電サウンダに発振プログラム仕込んで、自励式にしちゃいなよ。
0638774ワット発電中さん
垢版 |
2016/05/08(日) 13:58:28.45ID:/s75JYRo
市販のLEDライトを改造して、PWM制御で明るさを調整出来る様にするとか
0640774ワット発電中さん
垢版 |
2016/05/08(日) 14:26:54.43ID:QKffndVU
CPUだからと大げさに考えずに定番タイマー555の代用として
外付け部品1個で、fとか時間幅を決められたら便利かも? 制限つきでもムリか?
555だと最低でもC,R、4個程度必要。 これすら面倒で秋月のキットを買ってしまう性分。
0641774ワット発電中さん
垢版 |
2016/05/08(日) 14:46:49.90ID:+DdooxL/
CR外付けで555と同じ動作させてみたら?
555のドライブ能力には勝てないけど。
0642774ワット発電中さん
垢版 |
2016/05/08(日) 15:16:40.33ID:QKffndVU
そうだな。2個でもDuty 50% 発振器作れるか。
まとめてプログラム書き込んでおく。
精度要らないし1K~0.1Hzで大体間に合うから十分だな。
0643774ワット発電中さん
垢版 |
2016/05/08(日) 15:33:36.13ID:4Y/jvBb5
ユーロサイズのユニバーサル基板に部品をガッツリ載せるほうが好きだなw
0644774ワット発電中さん
垢版 |
2016/05/08(日) 18:15:30.01ID:GTTB9ax9
エッジ検出にCPUパワー取られるけどI2Cスレーブ化するとか
tiny13Aと違って16bitタイマー積んでるから色々できる
0645774ワット発電中さん
垢版 |
2016/05/08(日) 18:19:49.18ID:LrcSRUjG
発振器で思い出したのだが、
先日、生まれて初めてスタックを使わないプログラムを書いた。
スタック無くてもそれなりに作れるもんだなと、我ながらビックリした。
もちろんアセンブラで。

tiny2313で作った電子工作「猫撃退用音波発振器」の仕様
・I/O
入力1点:モーションセンサ
出力3点:赤色LED、緑色LED、発振出力
・動作
センサーオフの期間
>緑色LEDを0.5秒間隔で点滅、赤色LEDを消灯
>発振出力オフ(H出力)
センサーオンの期間
>緑色LEDを消灯、赤色LEDを点灯
>16KHz程度、デューティ比約1:2で発振出力オン(H/L反転出力)
セットアップを除く、メインループが28命令だった。

>>639
アセンブラやってみたら?
趣味ならコストや納期の制約が無いし、キラキラと輝く新しい世界が待っているよ。
0646774ワット発電中さん
垢版 |
2016/05/08(日) 18:26:20.86ID:CIB+e4AY
>>639
AVRのアセンブラは、やったほうがいい
PICのアセンブラは趣味以外の何物でもないが
0647774ワット発電中さん
垢版 |
2016/05/08(日) 18:28:58.25ID:Y9qTbety
まあ、どっちも趣味
人に勧めるようなもんじゃない、現代ではな
ジイの世代の認識は知らん
0648774ワット発電中さん
垢版 |
2016/05/08(日) 18:41:41.83ID:haqHXS1j
CASLできたらAVRはできるが、PICは意味不明だろうな。入門サイトググっても肝心なことが書かれてない。
本人たちはそれが常識で端折ってんだろうが、実は変態の常識なので説明されないと分からない。
0650774ワット発電中さん
垢版 |
2016/05/08(日) 19:22:23.08ID:gPLMLcSH
>>636
ライター作って、チャージポンプ作って、ライターにつけた。ほかには冷蔵庫開けっ放しアラームつくったぐらいだな。
0653774ワット発電中さん
垢版 |
2016/05/08(日) 20:24:30.25ID:lJqWBo+q
>>651
アセンブラとCとLチカの関係について
あなたのご高説をぜひ賜りたいです
0654774ワット発電中さん
垢版 |
2016/05/08(日) 20:51:06.04ID:sQ12DsY8
>>645
光利用はユニーク
要は驚かせればいいのだから効果高そうだね
市販品でも利用されている超音波はいまひとつだった
真似させてもらいます
0655774ワット発電中さん
垢版 |
2016/05/09(月) 13:26:52.00ID:+5BwBtFy
・I/O
入力1点:モーションセンサ
出力3点:赤色LED、緑色LED、発振出力
・動作
センサーオフの期間
>緑色LEDを0.5秒間隔で点滅、赤色LEDを消灯
>発振出力オフ(H出力)
センサーオンの期間
>緑色LEDを消灯、赤色LEDを点灯
>16KHz程度、デューティ比約1:2で発振出力オン(H/L反転出力)

PSoCだとPSoCブロック(内蔵ハードウェア)だけで全部出来そうだな。
0657774ワット発電中さん
垢版 |
2016/05/09(月) 21:54:32.10ID:r3KORGxi
Cypressがwin依存し過ぎだからだろう
開発ツールをOS限定した時点で流行るわけが無い
ルネサスも良い機種出してもWINしか対応してなかったから流行らなかった
技術者はUNIX系OS使用者の方が多いってことに気づくべき。
0658774ワット発電中さん
垢版 |
2016/05/09(月) 22:24:18.31ID:owJUfuVq
PSoCはハード屋から見ると分かりにくい。むしろFPGAのほうが見通しがいい。
0660774ワット発電中さん
垢版 |
2016/05/10(火) 05:27:53.15ID:QQdS5pnE
AVRのアセンブラに興味がある人もいるかもしれないし,
ほんの雰囲気だけになりますが、短かくても完結しているので(長いプログラムの一部ではない)
発振器 >>645 のスタック未使用プログラムのメインのリストを載せます。
何の興味も無い方、スミマセン、読み飛ばして下さい。

発振周波数を決めるLo_period=115、Hi_period=55で、
センサはアナログコンパレータで入力しています。
発振は内蔵OSCの8MHz、緑色LEDの点滅間隔は1秒です。
できれば他のCPU、たとえばPIC24などのアセンブラのリストも見てみたい。
0661774ワット発電中さん
垢版 |
2016/05/10(火) 05:29:38.33ID:QQdS5pnE
;***** main loop **********************
;===== sensor OFF: LED_green blink
LED_Blnk:
  wdr ;reset watch_dog timer
  sbi PInB,_LED_Gr ;toggle LED_green ON/OFF
  ldi YH,HIGH(1000) ;delay for 1Sec
  ldi YL,LOW(1000)
;
LED_Blnk1: ;delay for 1mS
  ldi ZH,HIGH(1989) ;adjusted by oscilloscope
  ldi ZL,LOW(1989)
LED_Blnk2:
  sbiw ZL,1 ;1mS elapsed ?
  brne LED_Blnk2 ;No, wait 1mS
;
  sbis ACSR,_ACO ;Yes, then comparator is Hi (sensor is OFF) ?
  rjmp OSC_Out ; No, goto output OSC wave
  sbiw YL,1 ; Yes, then 1S elapsed ?
  brne LED_Blnk1 ; No, wait 1S
  rjmp LED_Blnk ; Yes, loop again
;
;===== sensor ON: OSC output
OSC_Out:
  sbi PortB,_LED_Gr ;LED_green turn OFF
  cbi PortB,_LED_Rd ;LED_red turn ON ;
OSC_HL:
  wdr ;reset watch_dog timer
  sbi PortB,_AMP ;OSC High period (speaker ON)
  ldi YL,Hi_period
OSC_H:
  subi YL,1
  brne OSC_H
;
  cbi PortB,_AMP ;OSC Low period (speaker OFF)
  ldi YL,Lo_period
OSC_L:
  subi YL,1
  brne OSC_L
  sbis ACSR,_ACO ;comparator is Hi (sensor is OFF) ?
  rjmp OSC_HL ;No, OSC go on
;
  sbi PortB,_LED_Rd ;Yes, LED_red turn OFF
  rjmp LED_Blnk ;return to LED_green blink
;
0662774ワット発電中さん
垢版 |
2016/05/11(水) 15:39:27.13ID:fiGx+iem
>>658
FPGAよりずっとハード屋に優しいと思うけど。
ただ、デジタル一辺倒でアナログ回路的な思考ができないと
厳しいかもしれないね。
0664774ワット発電中さん
垢版 |
2016/05/12(木) 13:53:13.20ID:jjHYDMN0
AVRのアセンブラは良いね
メモリ効率が良くて実行速度が速くてまるで中級言語(?)みたいに分かりやすい
これを命令コード16bitで実現していることに感心する
0665774ワット発電中さん
垢版 |
2016/05/12(木) 14:26:18.88ID:eW+QTKM5
レジスタ番号の若い方半分は、制約がかなり多くてあまり使い道が無い
むしろレジスタ数 半分で、その分アドレッシングの強化にまわしてもらってた方が
俺的には便利だったな

まぁ欲を言えばきりが無いからな、素直な方だと思うよ。
0666774ワット発電中さん
垢版 |
2016/05/12(木) 15:37:23.51ID:et+JTHxn
下位チップはメモリがほとんどないからメモリの代わりに使うんだよ。
0667774ワット発電中さん
垢版 |
2016/05/12(木) 18:04:23.10ID:vxmkX/BO
I/O領域の扱いが不満。$00-$3Fまでの64バイトで収まってるうちは良かったけど
拡張I/O領域(メモリマッドI/O)が追加されてIN,OUT命令が使えなくなり
LD,ST系しか使えなくなった(SBI,CBIは元々I/O領域の前半$00-$1Fだけしか
対応していないのでもちろん使えない)
LD,ST系のメモリアクセスはXMEGAで改善されてるようだけど、それ以前の
Tiny,MEGA等だと2サイクル命令で遅い。
0668774ワット発電中さん
垢版 |
2016/05/12(木) 20:00:14.48ID:vGK+cvz4
>>665
ループカウンタとか変数格納用途だね R0~7 
俺の場合だけど  

>>661
CPUのクロック周波数を幾らに設定しているの?
0669774ワット発電中さん
垢版 |
2016/05/12(木) 20:37:10.56ID:vGK+cvz4
未だにDOSで遊んでいるせいか MOV と LD の使い分けで時々混乱してアセンブラに
怒られています
0670661
垢版 |
2016/05/13(金) 10:56:49.55ID:xDkUvVAR
>>668
CPUのクロックは内蔵RC発振器の8MHzです。分周はしていません。
0671774ワット発電中さん
垢版 |
2016/05/13(金) 16:33:31.47ID:+1JsybVo
>668
>ループカウンタとか変数格納用途だね R0~7 
誰も指摘しないけど、即値系の命令が使えない等の制限があるのはR0〜R15では?
0675774ワット発電中さん
垢版 |
2016/05/13(金) 19:45:20.41ID:+2v5nt9U
概要に 16 general purpose working registers って書いてあるやつだよ。
0676774ワット発電中さん
垢版 |
2016/05/13(金) 19:46:12.90ID:+2v5nt9U
かぶっちまった。すまぬ。
0678774ワット発電中さん
垢版 |
2016/05/14(土) 06:52:25.68ID:k1HmgCBO
>>667
AVRも16bitなんてケチ臭いことにこだわってないで
AVR24上位コンパチ品とか出してくれれば
そういう使いづらいところが解消できたのにね
残念ッ!
0679774ワット発電中さん
垢版 |
2016/05/14(土) 14:52:45.22ID:rWdMMye9
>678
>AVR24上位コンパチ品とか出してくれれば
それがXMEGAシリーズなのかも・・・。
AVRは最初の90Sシリーズから素晴らしいアーキテクチャだった、その後のTiny,MEGA,XMEGAも
良い出来だとは思うけど素晴らしいアーキテクチャの上にあぐらをかいて改良を怠った感がする
0682774ワット発電中さん
垢版 |
2016/05/14(土) 23:55:32.28ID:qhJ50mHr
え〜xmega使える子だよ
0684774ワット発電中さん
垢版 |
2016/05/15(日) 00:15:40.88ID:x74NUJLh
>682
使えないと言ってるわけじゃなくてXMEGAに期待が大きかったのにあまりMEGAから改良されてないからじゃないか。
時期的にMicrochipがPIC18からPIC24,dsPICで凄い改良してきた時だし
0685774ワット発電中さん
垢版 |
2016/05/15(日) 20:30:22.29ID:7S+OI5ec
>>671,672
訂正、フォローありがと
そうでした
つい半年前にプログラム組んだのにもう忘れた

>>670
レス、ありがとう
対象物を検出したときの、スピーカーに与える信号は 
オン、オフの繰り返しになるのですか?
変調のやり方がポイントという印象ですね
0686774ワット発電中さん
垢版 |
2016/05/18(水) 22:27:30.82ID:ld4pbySq
>>680
使ってる人少ないけど良いよね
mp3デコード行けるパワー持ってるし
RX62と同等くらいか
0691774ワット発電中さん
垢版 |
2016/05/25(水) 05:59:54.61ID:N5tG+rd0
>>689
比較的最近実装された機能であるしWebに載ってる記事が新しい機能を
使いこなしてるとも限らないのでPROGMEMで書いてることも多いんじゃ
ないの。
素人に限ればAVRの最大派閥だと思うArduinoがちょい前まで古いGCC
使い続けてたのも大きいんじゃないかと思う。
0692774ワット発電中さん
垢版 |
2016/05/25(水) 06:44:54.41ID:Xa8KrV4x
>>690
CPUの命令やデータのビット数、プログラムの仕様で変わるだろうから
全く同じ条件での比較はできないと思うけど
とりあえず、仕様が書いてある >>661 のプログラムを他のCPUでも書いてみて
必要なバイト数を比べてみたらどうかな?
0694774ワット発電中さん
垢版 |
2016/05/25(水) 12:29:06.09ID:IQszzXQW
コードサイズは概ね32bit<16bit<8bit
要はレジスタ幅と本数が多い程コード効率は良くなるってだけ
例えば8bitで32bit演算なんてしたら4ワード掛かる
0696774ワット発電中さん
垢版 |
2016/05/25(水) 12:57:22.89ID:eNv7rIpW
>>689
古い開発環境だと通らないってのが大きいんじゃない
コピって来るような古いコードは古い環境で書かれてる訳だしな
ついでにputsとかで使う文字列ならPSTRの方が楽かもだし

新しいgcc入れても、新しいライブラリ向けに
リンクスクリクプトとスタートアップコードを変更すれば
古い開発環境でも使えるかもだけど、めんどいし…
0697774ワット発電中さん
垢版 |
2016/05/25(水) 13:34:21.37ID:Xa8KrV4x
>>693
AVRにはメモリデータ相手の演算命令は無いからね
(そういう設計方針のCPUだから、と言うしかない)
でも例えばSRAM上の受信リングバッファ処理などでは
アドレッシングも特に問題は無いと思う

私が思うにCPUなんて用途・状況によってどれも一長一短で
8bitが常に32bitに負けるわけでも無いし
どんなCPUでもプログラムを組んでるときに
「あぁ、XXという機能があればなぁ」と思ったりするのでは?
0698774ワット発電中さん
垢版 |
2016/05/25(水) 14:12:44.75ID:0w4CQxGw
>>696
古い環境にこだわるやつがそんなにいるかね?
紹介してるやつがいないから広まってないだけでしょ。
AVRLibcの機能だけでも使ってるの見たこと無いのいっぱいある。
0699774ワット発電中さん
垢版 |
2016/05/25(水) 15:04:06.87ID:eNv7rIpW
>>698
そこら辺は人によるんじゃね
個人的にはさすがにWin10-x64で動くライタ類は用意したけど
新しい開発環境の構築や学習、練習なんて
ちょうめんどいことは後回(ry

でも文字列定数へのPSTR挿入/削除や
const宣言に対する_flash空間等への追加書き換えとか
統合環境なんだしエディタにマクロ等用意して欲しい…とか思(ry
0701774ワット発電中さん
垢版 |
2016/05/31(火) 22:46:55.48ID:6l875ZMG
どうよ最近?やってる?
0702774ワット発電中さん
垢版 |
2016/05/31(火) 23:38:26.05ID:Qqyh09Ua
タイマをPLLで動かしたいのにPLL対応してるのがtinyばっかで苦労してるよ
0703774ワット発電中さん
垢版 |
2016/06/01(水) 01:18:06.91ID:zyBVTvSe
SDメモリからwav読み出して再生するのにDMA4チャンネル使い切ったりして遊んでるよ。
CPU使用率が限りなく0で何していいかわからん。
0705774ワット発電中さん
垢版 |
2016/06/02(木) 21:45:45.79ID:7JgyS4+/
中華サイトで1番安いavrisp stk500を買ったらusbシリアル器だった
予備用にと思ったが、高い買い物なり
0706774ワット発電中さん
垢版 |
2016/06/02(木) 23:04:55.77ID:9YgO4wR7
一方俺はISPシールドを買った
これでarduinoなattinyがお手軽に量産出来るぜ
0707774ワット発電中さん
垢版 |
2016/06/03(金) 20:33:23.70ID:gXvx8AUQ
うちは、ミナトエレクトロニクスのユニバーサルプログラマ
0713774ワット発電中さん
垢版 |
2016/06/04(土) 17:19:57.95ID:UlwzGA3m
しばらくUSBBASPを使ってたんだけど何故かマイコンが3個連続で壊れたのでAVRWRTに回帰した
書き込みはメチャメチャ安定してるし、ヒューズビットの設定がラク


しかしただでさえボッタ栗な共立価格なのに、
今のはライタ基板だけじゃなくていろんな物がごちゃごちゃ付いてくるのが難点
0714774ワット発電中さん
垢版 |
2016/06/04(土) 22:38:51.34ID:iiOD7ojL
Hidaspxばかり使っていますが、壊れたことは一度もありません
0715774ワット発電中さん
垢版 |
2016/06/08(水) 01:36:45.02ID:46YbsPOs
UNOで焼いてるが問題なし
tiny85便利やね。普通にソフトシリアル使える
0716774ワット発電中さん
垢版 |
2016/06/08(水) 12:40:44.95ID:Lx9q7aCM
ソフトシリアルなんかを使わなきゃいけない時点で全然便利ではない
0719774ワット発電中さん
垢版 |
2016/06/10(金) 16:40:50.52ID:q/kctToh
今日もAtmel-Iceに助けられた。
データブレークポイントが無けりゃ簡単には捕まえられないバグだったわ。
0720774ワット発電中さん
垢版 |
2016/06/10(金) 19:17:27.78ID:er2SPYuA
デバッグ用のライン引いてる時だけ出ないバグとかあるからなぁ…
おっかねぇよ
0723774ワット発電中さん
垢版 |
2016/06/18(土) 12:16:58.75ID:TTdLfpHD
ATMEGA168用に公開されてるHEXファイルをそのままATMEGA328に書き込んでも
問題なく動きますでしょうか?
0724774ワット発電中さん
垢版 |
2016/06/18(土) 14:22:27.31ID:gUQbdz4Q
デバイスなんて2クリックで変えられるもん何で変えないのか解せんがLチカレベルの単純なI/O程度なら動かなくはないはず
割り込みとかしてたら動かんものと見た方が良い
0725723
垢版 |
2016/06/18(土) 21:23:48.23ID:TTdLfpHD
>>724
すいません

>デバイスなんて2クリックで変えられる

これはどういうものでしょうか?ちょっと分かりませんでした
0726774ワット発電中さん
垢版 |
2016/06/18(土) 21:42:41.26ID:qaga05UG
ふつ〜にエスパーすりゃ
AVR Studioのプロジェクト辺りを前提にしていて
プロジェクトコンフィギュレーションを呼び出してDevice変えてリビルド
って事なんじゃね〜の?

ソースもプロジェクトも公開されてない、手元にあるのはHEXだけってなら
そりゃ無理な話だろうぜ
0728774ワット発電中さん
垢版 |
2016/06/27(月) 10:27:29.81ID:OEE56bWH
マイコンソフト悩み事相談室スレにTiny2313の並列処理ソフトが紹介されているけど、
誰か動かした人いる?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況