X



トップページ電気・電子
1002コメント331KB

AVRマイコン総合スレ Part42

■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2019/06/05(水) 14:41:54.37ID:/JRZ8+/i
個人でも手軽に使える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マイコン総合スレ Part41
https://rio2016.5ch.net/test/read.cgi/denki/1538195104/
0378774ワット発電中さん
垢版 |
2019/08/15(木) 03:02:39.98ID:aY9yJ0Dz
>>372
入力ピンにクランプダイオードあるなら適当な保護抵抗1つで5vの信号受け付けると思うが
0381774ワット発電中さん
垢版 |
2019/08/22(木) 17:26:41.67ID:xW9szFho
最新のAtmelStudioでATmega16U2をC言語で書こうとすると
自動でインクルードされるレジスタ名の定義ファイルからACMUXだけ抜けてるのを発見した
アドレス0x007Dのやーつ
0382774ワット発電中さん
垢版 |
2019/08/22(木) 23:32:35.83ID:jQZXmfxp
>>381
データシートにACMUXは存在していないし0x007DはDIDR2になっています
まずはデータシートを見るのが基本です
0386774ワット発電中さん
垢版 |
2019/08/23(金) 00:33:34.26ID:bCWi4Xbh
AvrFreaksの過去ログにも当たらん。
誰もU2でACなんか使ったことないってかw
0387774ワット発電中さん
垢版 |
2019/08/23(金) 00:41:53.16ID:UdDRrrYu
自分のPCに情報みっけた!w

今は使ってないが、昔のAVR Studio 4もまだ入れっぱなしでそこに古いtoolchainがあったから覗いてみたんよ
そしたら、同じくACMUXは定義されていなくて、DIDR1の定義に違いが…AIN0とAIN1しかビットが定義されてない!

つまり…昔はマルチプレクサが無かった(か、ついてたけどデータシートに漏れがあって無い事になってた)んじゃない?
そんでACMUXが出来て、DIDR1もAIN2〜AIN7が増えた…が、DIDR1のとこにビット増やしただけで終わったのでは
今の奴には>>385の通りDIDR1に0〜7までちゃんとあるわけで昔の奴とはちゃんと違ってる

しかしよく気が付いたなこんなのwww 16U2なんて何とも言えん絶妙なマイコンで何作ってんだ…
0389774ワット発電中さん
垢版 |
2019/08/23(金) 15:18:59.41ID:ky45jhd/
デバイスパックの更新もAS7の方はすでに止まってたから、順当なアナウンスやね。
まだMPLABにからだが馴染んでないんだが・・・
0390774ワット発電中さん
垢版 |
2019/08/24(土) 16:22:06.08ID:ALTHTjWD
DIPのAVR売ってるとこが少なくなってきたなあ…
秋月、送料が高いから欲しいものがまとまってから買おうと思ってたら
欲しかったチップがいろいろ消えてるし
0392774ワット発電中さん
垢版 |
2019/08/24(土) 17:18:39.47ID:ZSCc4sSv
dipとかデカくて邪魔なだけで必要性を感じない
プロトタイプなら変換基板で良いし完成品ならSMDでいいし
0394774ワット発電中さん
垢版 |
2019/08/24(土) 19:26:07.18ID:cAGgU5k/
そろそろ未知の力でフラット部品が固定できる
ブレッドボードが出てこないかなw
0395774ワット発電中さん
垢版 |
2019/08/24(土) 20:18:26.41ID:TW+ggqnd
抵抗、コンデンサのリード品の選択肢が相対的に狭くなってる
0398774ワット発電中さん
垢版 |
2019/08/25(日) 19:47:08.34ID:5XiAgGeH
>>392 >プロトタイプなら変換基板で良いし完成品ならSMDでいいし
趣味だと試作品と完成品の二つを作るのは面倒だし、
使っているうち改良点のアイデアが次々に湧いてきて、なかなか完成状態にならないんだよね。
と言うことで私はDIP+ユニバーサル基板派(QFPは変換基板を使う)
CPUの交換が簡単だし、回路の追加・変更もできる。
0400774ワット発電中さん
垢版 |
2019/08/25(日) 20:10:05.76ID:tGf9rnBs
DIPとブレッドボードで試作して回路図書いて面実装用の基板作成して面実装して完成
0402774ワット発電中さん
垢版 |
2019/08/25(日) 20:16:06.57ID:ybV0t7Vr
>>401
そうやってイキる人がブレッドボードでなんとかならない作品を披露してくれたためしがないw
0403774ワット発電中さん
垢版 |
2019/08/25(日) 20:18:07.50ID:A6GFhsTd
>>402
それな。

マイコン使うような回路でブレッドボードじゃダメなのって
設計ミスかパーツ選びがダメダメなだけでしょ
0404774ワット発電中さん
垢版 |
2019/08/25(日) 20:50:29.53ID:VxyDqwFX
>>403
>マイコン使うような回路でブレッドボードじゃダメなのって
>設計ミスかパーツ選びがダメダメなだけでしょ

本当にそう思ってるんですか?
0405774ワット発電中さん
垢版 |
2019/08/25(日) 20:54:43.61ID:hqmiuuLy
その程度で済む人には、その程度では済まない状況を想像できない
0406774ワット発電中さん
垢版 |
2019/08/25(日) 21:19:55.33ID:tXssfmcB
>>405
だからお尋ねしてるんですよ、そんな回路ですかってね。
でも出て来ないのねえw
0408774ワット発電中さん
垢版 |
2019/08/25(日) 21:31:45.25ID:VxyDqwFX
>>406
提示してもらわないとどんな回路なのか、本当にわからないのですか?

仮にあなたが分からないとして、
提示を要求した相手の人が実は本当は何も作れない人だとして、
あなたが言うように「でも出て来ない」のだとしても、
それは単にあなたがその相手をやり込めただけのことで、
あなたの想像力のなさは何も解決していないのですよね?
0409774ワット発電中さん
垢版 |
2019/08/25(日) 21:37:32.74ID:yK9dHHii
ブレッドボードではどうにもならないマイコン回路まだあ?
0411774ワット発電中さん
垢版 |
2019/08/25(日) 22:00:26.56ID:eeoCZp3i
毎度思うんだけど、ブレッドボードの登場で仕事を失くした業種とかあるのかえ?
ブレッドボードと見ると必ず駆けつけてくる>>401の意図がよくわからん。
0412774ワット発電中さん
垢版 |
2019/08/25(日) 22:14:18.36ID:MEtgVkDi
ttps://shindanmaker.com/279396
> ニートを萌えさせることだってできる。
> そう、ブレッドボードならね。
って出た。
0413774ワット発電中さん
垢版 |
2019/08/25(日) 22:49:43.77ID:VxyDqwFX
>>401に対して、イキがっているとか、まるでブレッドボードを目の敵にしているかのような
言い方をしている人がいるけど、過剰反応に見える。

>>400の手法が使えるのはいいね… (多ピンデバイスを使うことが多いから俺にはちょっとできないな)

ぐらいの意味じゃないの?
0414774ワット発電中さん
垢版 |
2019/08/25(日) 23:03:05.25ID:nEryo5Db
>>411
いままで何でもちまちまハンダ付けしてたのが馬鹿らしくなって
その反動でつい駆けつけてくるんだろ
適材適所を知ってれば走り出さずにとどまれるのにかわいそうなヤツ
0415774ワット発電中さん
垢版 |
2019/08/26(月) 00:15:00.10ID:mHDCzxqK
そいやブレボって秋月とかで売ってる中国メーカー?な奴しか使ったこと無いけど国産のしっかりした物ってあるのかな?

厳選材料で導電性たかいとかそんな感じの。
0417774ワット発電中さん
垢版 |
2019/08/26(月) 02:27:42.93ID:qPrhwe+x
DIPが使いまわしが利いていいんだよ
そりゃAVR使い捨てするような金持ちはどうか知らないけど
0418774ワット発電中さん
垢版 |
2019/08/26(月) 02:31:14.11ID:GMlDh2Bj
まだ回路設計もほとんどしたことない初心者です
akaiのs6000のような高機能サンプラ+DAWのといった感じのものを作ろうと思ってるんですがブレッドボードでできるんですか?いきなり基板を発注するのは怖いのでできれば試したいのですが、ブレッドボードじゃきつそうだしと困っていました…
ソフトウェアは少しだけ書いたことがあるので問題ないと思っていますが、回路がとにかく心配なので、基本的にはFPGAでどうにかしようと思っています
0420774ワット発電中さん
垢版 |
2019/08/26(月) 15:55:23.49ID:x4ppfhCh
>>402 >>403
良かったらレス番21の7セグメントLED数字表示器の制御基板を見てください。
試作品をブレッドボードで作るのは難しいと思う。
https://rio2016.5ch.net/test/read.cgi/denki/1566099702/

ただし同じものをもう一度ユニバーサル基板で作るのは、考えただけでウンザリするので、
複数枚数が必要なら面実装+PCBでやる。
私はこの1枚しか作りませんでしたので、この試作品がすなわち完成品です。
0422774ワット発電中さん
垢版 |
2019/08/26(月) 19:21:05.43ID:JosmeL6H
>>420
みんなが言ってるブレッドボードでは難しいの意味があなたのとはたぶん違う。
わたしならそれこそブレッドボードで試作する。
0423774ワット発電中さん
垢版 |
2019/08/26(月) 19:39:43.25ID:9N6EJwYE
>>420
ブレッドボードで作るのは難しくないが
この程度ならブレッドボードで試作する必要すら無いと思います
0425774ワット発電中さん
垢版 |
2019/08/26(月) 22:51:38.87ID:qA7uaY71
8bitのAVRだとSPIもせいぜい8MHzとかまでだしブレッドボードでもいけるいける
AVRではないけどesp32で40MHzのSPIで液晶つけたらブレッドボードとジャンパーワイヤーではあかんかった
0426774ワット発電中さん
垢版 |
2019/08/26(月) 22:59:52.96ID:jkJFc3Fn
>>425
ADCは全然ダメだった。あとPWMも
アクティブLPFの特性がシミュレータ
とかけ離れて無理。あげく発振まで
するし…

どちらも結局はPCB起こして試作したら
まともに動いたけど、アナログ回りが
入るとブレッドボードではきつい
0427774ワット発電中さん
垢版 |
2019/08/26(月) 23:21:05.79ID:jEYUw9ME
初めての、MPUや、ペリフェラルの確認程度には、ブレッドボード使うけど、
規模が大きくなったり、アナログ処理が入ったり、MOSFETでモータ回すとか
するときは、ユニバーサル使うことが多い、不用意に、ピン刺し間違えて焼いちゃうこともあるので。
0428774ワット発電中さん
垢版 |
2019/08/26(月) 23:38:40.43ID:jkJFc3Fn
>>427
ブレッドボードは接触抵抗でかいから
POWER MOSとか使うと溶けることが
あるよな
0429774ワット発電中さん
垢版 |
2019/08/27(火) 07:31:58.09ID:iQmVsOPC
>>421
>この試作品がすなわち完成品です。
を実現するのがブレッドボードでは難しいってことじゃないかな。
両面配置でコンパクトに実装する時点で門前払いなんでしょうね。

たいていのことは適材適所、ケースバイケース。
ブレッドボードでなんでもできる、なんてことはないわけだし。

>>426
GNDが弱いから、アナログまわりは弱いね。
スイッチングレギュレータは動作確認でさえしんどい。
ユニバーサル基板のメッシュ基板(シールドタイプ)みたいに、
ブレッドボードにもべたグランドがあればそれだけで結構違うかも。
0430774ワット発電中さん
垢版 |
2019/08/27(火) 07:44:48.34ID:0qNbYbS9
ブレッドボードに沢山のパーツを付けて何十本もワイアーを挿すのはイヤだな。
信頼性が下がるし、同じ時間を掛けるなら、さっさとハンダ付け配線してしまう。
ただし私も部分的なアナログ回路のテスト、セラロックの発振周波数の調査、抵抗とLEDの明るさの確認などで
ブレッドボードを使用している。
時にはユニバーサルボードとブレッドボードをワイアでつないでテストする時もある。
私はこれをハイブリッド方式と呼んでいるw
0432774ワット発電中さん
垢版 |
2019/08/27(火) 09:30:42.73ID:RUZBiAZ1
>>423
じゃあ、どうすればいいの?
試作なしに製品基板作るってのはアリかもしれないけど。
0435774ワット発電中さん
垢版 |
2019/08/28(水) 00:10:16.81ID:WOsAAQUv
発振回路とか高速シリアルとかはブレッドボードじゃまともに動かなくね?
具体的にはMCUのクロック発振回路とかUSB(LSなら何とかなる?)とか
0437774ワット発電中さん
垢版 |
2019/09/05(木) 07:04:14.37ID:2pAQHXAX
AVRを使い始めた頃の話しだけど、

A)初めてプログラムを組み始めて、
多くの命令で対象レジスタに制限があることを知った時には、
ガッカリして「何だよ、サギみたいだなCPUだな」と思った。

B)「スイッチが押されたらLEDを点灯し、もう一度押されたら消灯する」という動作が
LoopSW:
 SBIC   PINB,SW  ; スイッチは押されたか?
 RJMP  Loop1    ; いいえ
 RCALL DelayLoop ; はい、チャタリング除去のディレイ
 SBI    PINB,LED ; LEDの点灯・消灯を反転
 RJMP  LoopSW   ; スイッチ入力待ちへ
の5命令、高速クロックで実行出来る事を知って「このCPUはすごいな」と思った。
0439774ワット発電中さん
垢版 |
2019/09/05(木) 14:36:49.05ID:2pAQHXAX
C)「10進演算補正命令が無いじゃないか、8ビットPICにだって有るのに」と思った。
存在しない命令の多くは2、3個の命令で実現出来る。
たとえば、<EORI R16,$FF>は<LDI R17,$FF>と<EOR R16,R17>で。
だけど2桁の10進演算はめんどい。
(メーカーのサンプルAVR204では加算19命令、減算13命令)
対象レジスタがR0固定でもいいから<ADC R0,R16>、<DAA R0>なんてのが欲しかった。
(DAA:Decimal Add Adjust)

D)全レジスタ32個、あるいは半分の16個でいいから、
まとめて退避・復帰できる命令が欲しかった。

ま、どんなCPUでも100%満足できるなんてのは有り得ないわけで、
気に入ってるかどうかで言えばYesです。

>>438
AVRのDI/Oは使いやすい、という一つの簡単な例ですよ。
0440774ワット発電中さん
垢版 |
2019/09/05(木) 14:55:57.48ID:zcI1WJsf
>>438
Lチカの為だけにAVRを極めたって良いじゃない。
0441774ワット発電中さん
垢版 |
2019/09/05(木) 18:12:09.98ID:iFzBkRus
5命令じゃないけどな。
ところで、押しっぱなしでバコパコしない?
0442774ワット発電中さん
垢版 |
2019/09/05(木) 18:17:24.53ID:XNQ8d09L
>>441
delayによるだろうけど
duty50% で高速点滅→ナチュラルPWM
だったりして…
(点灯するか消灯するかは確率50%)

もちろん、チャタリングキャンセラがリリースを見てれば
そんな事にはならないと思うけど
0443774ワット発電中さん
垢版 |
2019/09/05(木) 18:43:48.62ID:iFzBkRus
>>442
なるほど、そうなるね。

リリースのチェックまでやると、今度は押した時に点灯じゃなくて、
離した時に点灯になるのが気持ち悪いんだよね。
0444774ワット発電中さん
垢版 |
2019/09/05(木) 20:50:44.79ID:R0Csawcw
そうすると結局パルス作って
そのパルスでビット反転させた方がシンプルに使える
0445774ワット発電中さん
垢版 |
2019/09/07(土) 21:43:49.17ID:DJdjWeuk
>>439
>たとえば、<EORI R16,$FF>は<LDI R17,$FF>と<EOR R16,R17>で。
COM R16ではダメですか。そうですか。
0446774ワット発電中さん
垢版 |
2019/09/07(土) 22:52:32.99ID:2BZUFJS7
初心者スレにモーメンタリ→オルタネート変換*7ってネタがあるけど、どう組む?
0448774ワット発電中さん
垢版 |
2019/09/07(土) 23:36:18.23ID:g8QPNnrn
俺流のいつものやり方でマジレス。
tick基準で10ms毎にポート読み取り、過去4回分評価でデチャタリング。
メモリ上にデチャタリング結果とオルタネート結果を仮想入力値として用意。
アプリケーションはその仮想入力だけを見る。
定番かどうかは知らん。
0449437
垢版 |
2019/09/08(日) 01:46:34.56ID:3SFKL+Dn
>>441
AVRによるI/O操作の一つのシンプルな例として書いたのですが、
「スイッチが押されたらLEDを点灯し、もう一度押されたら消灯する」
をより正確に動作させたいなら、 >>442 の方法になるのかな?
LoopSW_ON:
 SBIC   PINB,SW  ; スイッチは押されたか?
 RJMP  LoopSW_ON  ; いいえ
 SBI    PINB,LED ; はい、LEDの点灯・消灯を反転
LoopSW_OFF:
 RCALL DelayLoop ; SWオン時のチャタリング除去
 SBIS  PINB,SW  ; スイッチは離されたか?
 RJMP  LoopSW_OFF ; いいえ
 RCALL DelayLoop ; SWオフ時のチャタリング除去
 RJMP  LoopSW_ON   ; スイッチ入力待ちへ
0451439
垢版 |
2019/09/08(日) 02:37:11.38ID:3SFKL+Dn
>>445
申し訳無い、深く考えずに書いた$FFという数値が悪かったね。
0452774ワット発電中さん
垢版 |
2019/09/16(月) 08:37:54.67ID:uO2ICPN7
WinAVR環境でビルドしていたAVRのCプログラムをAtmel Studio 7環境へ移行させてるのだが
ATtiny85は新環境でビルドしたコードが問題なく動作
ところがATmega168Pは新環境でビルドしたコードがまともに動作しない
旧環境で改めてビルドすると動作
#define F_CPU 周波数
はソースに移行済み
一般的にありがちトラブル原因とかありますか?
0453774ワット発電中さん
垢版 |
2019/09/16(月) 09:01:08.64ID:H7fpJf/o
>>452
・最適化の違い
・(上記に関連して)グローバル変数の扱い
(割込で使う変数などはvolatile修飾が必要)
・適切なライブラリがリンクされていない
(特にprintf周り)


あたりは?
まぁ、WinAVRがAtmelStudioになったせいってより
gccのバージョンが変わった事が大きい
0456774ワット発電中さん
垢版 |
2019/09/16(月) 09:43:39.51ID:uO2ICPN7
warningしっかり確認したところ割り込み名称が違うんでねえのと指摘あり
修正したところ、しっかり動きました
どうもでした
0461774ワット発電中さん
垢版 |
2019/09/24(火) 22:35:25.90ID:iExbETml
>>460
AVRでUPDI使うときはチップ外しが必須なのか…
だったら、しばらくはATtiny416-XNANOでいいや
1000円で買えるし…
0462774ワット発電中さん
垢版 |
2019/10/15(火) 19:52:09.60ID:gGcGvdCk
>>461
え、そうなの?
0465774ワット発電中さん
垢版 |
2019/10/16(水) 22:25:10.59ID:/vuURpPR
Atmel Studio 7.0起動できなくなった。
visual studio 2019のせいだろうか?
mac版があれば保険になるのだけど。。。
0471774ワット発電中さん
垢版 |
2019/10/20(日) 08:04:13.01ID:7UrfWYjz
デバッガは誘導ミサイルみたいなものロックオンして発射ボタンを押すだけ、漢ならドッグファイトしてバグは機銃で撃ち落とせってじっちゃんが言ってた
■ このスレッドは過去ログ倉庫に格納されています

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