X



トップページ電気・電子
1002コメント278KB
AVRマイコン総合スレ Part40
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2018/01/27(土) 11:14:18.02ID:yaXvNyvZ
個人でも手軽に使える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マイコン総合スレ Part39©2ch.net [無断転載禁止]©2ch.net
http://rio2016.5ch.net/test/read.cgi/denki/1499338233/
0304774ワット発電中さん
垢版 |
2018/06/07(木) 14:03:25.95ID:hmsA2/qg
枯れ木も山の賑わい、という事で許して貰って・・・
別スレで紹介したtiny2313用の最高速パルス出力プログラムを少し変えてみた。
リセットすると2種(カウンタで5MHz、ビットセット・リセットで2.5MHz)のパルスを
13、12番ピンから出力する。
https://i.imgur.com/j7dI0GL.jpg

;----- Port_B
C:000000 e0e6 ldi ZL,0b00000110 ;output bit2: CTC_A, bit1:sbi/cbi instruction
C:000001 bbe7 out DDRB,ZL
;----- timer0 for CTC_A
C:000002 e4e2 ldi ZL,0b01000010 ;simple-CTC mode, toggle output to OC0A:PB2 bit
C:000003 bfe0  out TCCR0A,ZL
C:000004 e0e1 ldi ZL,0b0000001  ;no pre_divide
C:000005 bfe3  out TCCR0B,ZL
C:000006 e0e1 ldi ZL,1        ;compare_A:1 for 5MHz
C:000007 bfe6  out OCR0A,ZL
MainLoop:            ;total clock 2+1+1+2+2=8
C:000008 9ac1 sbi PortB,1     ;50nS*8=400nS=2.5MHz
C:000009 0000 nop           ;adjust delay for duty 50%
C:00000a 0000 nop
C:00000b 98c1 cbi  PortB,1
C:00000c cffb  rjmp MainLoop
;
0305774ワット発電中さん
垢版 |
2018/06/07(木) 14:53:23.69ID:u75hmAOE
用途が全く分からん
システムクロックをプリスケーラで分周してCKOUTから出すだけでもいいよね?
0307774ワット発電中さん
垢版 |
2018/06/07(木) 20:58:10.53ID:ZVe1E5Ma
mainloop:
sbi PINB,1
rjmp mainloop
用途はとにかくループ内はこれで済むな
0309774ワット発電中さん
垢版 |
2018/06/08(金) 10:43:28.18ID:gZ5uV0HR
xmegaのタイマカウンタにロータリーエンコーダの自動計数やらせるのは便利に使ってる。
CPUパワー全く要らないのでプログラムとしてはつまらんけど。
0311304
垢版 |
2018/06/08(金) 13:24:11.57ID:G3cw1sc/
>>305
用途なんか考えていない。スレを埋めるためのただの遊びネタだよ。
最高速はCKOUT=0でクロックを出力すれば終わりだけど、それじゃ面白くないし、
分周だと周波数が細かく変えられないし、
そもそもシステムクロックを分周するのと、
出力周波数をプログラムを実行して変えるのとでは少し意味合いが異なると思う。

>>306
私が使用しているFuse・Lockビットのシリアルの読み書きプログラム(部分)
もちろんmega328などCPUを選択すればテーブルも自動的に変わる。
これを作ってから書き込み時のミスが無くなった。
https://i.imgur.com/lnnCGVV.jpg
パラレルのリセッタも作った(各種CPU用アダプタの画像は省略)
https://i.imgur.com/zd42iyG.JPG

>>307
「入力ポートのビットをセットすると出力ポートのビットが反転する」という
意味不明ニーモニックの命令を忘れたわけでは無い。
実を言うと、このSBIとRJMUPの2つの命令の組み合わせでも2.5MHZで変わらなかったんだよ。
(クロック2+2個で20MHz/4の5MHzを期待したのに何故?)
SBI命令よりもセット・リセットの方がデューティを変えられるという点も考慮して
セット・リセット方式を採用した。

よううやく少しだけレスが進んだなw
0313774ワット発電中さん
垢版 |
2018/06/08(金) 15:20:58.05ID:gZ5uV0HR
>>310
xmega32E5だけど、エンコーダの初期化だけならこれだけ。

void enc_init(void){
// ポート設定
PORTA.PIN5CTRL = PORT_ISC_BOTHEDGES_gc; // A相
PORTA.PIN6CTRL = PORT_ISC_BOTHEDGES_gc; // B相

// イベント設定(フィルター 2x512 clk)
EVSYS.DFCTRL = EVSYS_PRESC_CLKPER_512_gc;
EVSYS.CH0CTRL = EVSYS_QDEN_bm | EVSYS_DIGFILT_2SAMPLES_gc | EVSYS_ROTARY_bm;
EVSYS.CH0MUX = EVSYS_CHMUX_PORTA_PIN5_gc;

// カウンタ設定
cli();
TCC4.CNT = 0;
TCC4.PER = 0xFFFF;
sei();
TCC4.CTRLD = TC_EVACT_QDEC_gc | TC_EVSEL_CH0_gc;
TCC4.CTRLA = TC_CLKSEL_DIV1_gc;
}

設定後は勝手にカウント値TCC4.CNTに入れてくれるので、適当に読みだせばいい。
周辺機能だけで動作するのでCPUは全く関係ない。

こんなエンコーダ使ってる。500CPRなんで1回転2000カウントもする。
回転軸を指でブンブン回しても1カウントもこぼさないよ。
https://jp.rs-online.com/web/p/rotary-encoders/7967840/

秋月のこれもたくさん使ってるなあ。
http://akizukidenshi.com/catalog/g/gP-05773/
0314774ワット発電中さん
垢版 |
2018/06/09(土) 00:15:12.36ID:JUYewZ27
xmega-A1はPWM出力が24個もあるので大量のサーボを使えてお気に入り。
0315774ワット発電中さん
垢版 |
2018/06/09(土) 13:49:04.60ID:ccF6qzIZ
>>313
こういう技を気まぐれでも公開してくれるといざって時の解決の糸口になって助かるわー
0316774ワット発電中さん
垢版 |
2018/06/09(土) 22:19:45.01ID:JUYewZ27
xmegaは面白い機能いっぱいあるけどユーザー少ないからね。
FatFsのSPIをDMA使って16Mbpsでアクセスすると読み出し爆速になるんだけどニーズ無いか。
0317774ワット発電中さん
垢版 |
2018/06/10(日) 04:36:49.08ID:/KozY0c5
ここにいないだけで使ってる人は多いでしょ
コケたUCシリーズも今から見るとそうなってるだけで
10年以上続いて動画再生や昔のゲーム機移植とかYoutubeにあるし

話題が出ないのはDIPがないってだけで、このスレの
年齢層にニーズがないんじゃいかな。
5V系って理由は今どきのIO考慮すると考えにくいし。
0319774ワット発電中さん
垢版 |
2018/06/10(日) 22:58:03.49ID:LpSBvTGr
こんな場所でネタや作品を晒してもどうせケチしかつかないから
ニーズがあると思っても他所でやったほうがいいよ
ここは大喜利と愚痴と世間話だけにしとき
0321774ワット発電中さん
垢版 |
2018/06/11(月) 03:29:00.65ID:bUAGSZjQ
fatfsをdmaって技術的にも内容的にも興味深いのに
出来ればこんなとこで馬鹿相手にしないでブログとかで書いて下さいm(__)m
xmegaは色々拡張してあってすごいパワフルな感じするけどxmega使うならarmって感じな流れなのが可哀想な子な感じ
0323774ワット発電中さん
垢版 |
2018/06/11(月) 13:57:38.54ID:VPtPHDiz
アホがたむろしているこんな所で人の反応を気にしてもしょうが無い
何を言われようと「天上天下 唯我独尊」の信念に従って我が道を進むだけだよ

ところで >>311 >(クロック2+2個で20MHz/4の5MHzを期待したのに何故?)
について誰も言わないから私が言うけど「SBI PinB,1」命令は出力反転だから
1周期はクロック8個の400nSで2.5MHzは合っている
0324774ワット発電中さん
垢版 |
2018/06/11(月) 15:45:09.36ID:jPm4eCEt
レイヤを分かってない人はよくこういう表現して技術者がキレる。
0326774ワット発電中さん
垢版 |
2018/06/11(月) 17:47:51.10ID:VPtPHDiz
最新作でレイヤ姫が再登場したけど劣化していた
過去の美しいイメージが壊れたw
0327774ワット発電中さん
垢版 |
2018/06/11(月) 18:15:58.09ID:NHYKxr6Q
どんな美女も年をとれば劣化する
結婚はよく考えてからするように
0328774ワット発電中さん
垢版 |
2018/06/12(火) 14:17:57.68ID:NziqVZHM
もう亡くなったなぁ 姫
耳の所にドーナツ付けてたのが印象的だった
0330774ワット発電中さん
垢版 |
2018/06/13(水) 03:57:42.28ID:UfUI+XJV
>>328
安心しろ、銀魂の神楽で復活してるからw
0331宇野壽倫(青戸6-23-21ハイツニュー青戸202号室)の告発
垢版 |
2018/06/13(水) 20:54:49.13ID:Dx3Lsrcp
宇野壽倫(葛飾区青戸6)の告発
宇野壽倫「文句があったらいつでも俺にサリンをかけに来やがれっ!! そんな野郎は俺様がぶちのめしてやるぜっ!!
賞金をやるからいつでもかかって来いっ!! 待ってるぜっ!!」 (挑戦状)

■ 地下鉄サリン事件

     オウム真理教は当時「サリン」を作ることはできなかった。
     正確に言えば 「作る設備」を持っていなかった。
     神区一色村の設備で作れば 全員死んでいる。「ガラクタな設備」である。
     神区一色の設備を捜査したのが「警視庁」であるが さっさと「解体撤去」している。
     サリンは天皇権力から与えられた。
     正確に言えば オウム真理教に潜入した工作員が 「サリン」をオウムに与えた。
     オウム真理教には 多数の創価学会信者と公安警察が入り込んでいた。
     地下鉄サリン事件を起こせば オウムへの強制捜査が「遅れる」という策を授け「地下鉄サリン事件」を誘導したのは
     天皇公安警察と創価学会である。
     天皇は その体質上 大きな「事件」を欲している。
     オウム科学省のトップは 日本刀で殺された「村井」という人物だ。
     村井は「サリン」授受の経緯を知る人物なので 「日本刀」で殺された。

      http://d.hatena.ne.jp/kouhou999/20150224
0332774ワット発電中さん
垢版 |
2018/06/16(土) 20:17:55.45ID:aYsoT47g
>FatFsのSPIをDMA使って16Mbpsでアクセスすると読み出し爆速になるんだけど
>ニーズ無いか。

てか、普通にやるでしょ。
ディスクリプタ読みながら動作するタイプのDMAとか内蔵したマイコンもあたりまえなご時世だし。
0334774ワット発電中さん
垢版 |
2018/06/16(土) 22:11:49.01ID:e72vZr8X
>>333
割と使われている用途で傾向から考えれば、
「FatFsでSPI接続のSDカードを使う」じゃないのですかね…
0336774ワット発電中さん
垢版 |
2018/06/16(土) 22:30:45.42ID:EO3tL4K+
聞きたいことがあるなら
聞いたほうがいいと思いますよ。
0339774ワット発電中さん
垢版 |
2018/06/16(土) 23:52:13.56ID:XaldYGCu
>FatFsのSPIをDMA使って16Mbpsでアクセスすると読み出し爆速になるんだけど

この意味不明なレスをエスパーするとだな。彼女ができたと言いたいのだと思う。
0341774ワット発電中さん
垢版 |
2018/06/17(日) 01:23:05.71ID:oZItUFgv
> fatfsをdmaって技術的にも内容的にも興味深いのに
> 出来ればこんなとこで馬鹿相手にしないでブログとかで書いて下さいm(__)m

> アホがたむろしているこんな所で人の反応を気にしてもしょうが無い

> てか、普通にやるでしょ。

> 聞きたいことがあるなら 聞いたほうがいいと思いますよ。

> >>335さんはどこで躓いてるのかな?

> 何がわからないのかもっと明確に質問しなきゃな

> もしかして冗談じゃなく本気でわからないの?


これ、全部本人だろ。本人が説明する気がまったくないのだからスルーしたほうがよい。
0342774ワット発電中さん
垢版 |
2018/06/17(日) 01:40:27.50ID:6XrHe8wy
本人ではないが何も説明してもらわなくても何を言ってるかすべてわかるし・・・
0344774ワット発電中さん
垢版 |
2018/06/17(日) 02:23:39.91ID:6XrHe8wy
十分わかった上で言葉尻遊びしてるだけじゃない。
楽しいか?
0345774ワット発電中さん
垢版 |
2018/06/17(日) 05:18:53.39ID:DR0Mq+U0
xmegaよく使ってたけど特有の機能はあまり利用してなかったな
ピン数あるからパラレルモジュールを気にせずぶら下げてた

megaから強化されたのってクロック・割込み・スリープとか
システム管理周りだっけか
バッテリ動作とか狙わないならmegaとあまり変わらないって
言われてた気がする
0347774ワット発電中さん
垢版 |
2018/06/17(日) 08:25:03.04ID:QwyL/GOE
FatFs、SPI、DMAがわからんって話は当面無視します。
0350774ワット発電中さん
垢版 |
2018/06/17(日) 17:25:07.28ID:PkdI6NoM
DMA、つまりハードウェア処理は天下無双に強力だよね。
AIもハードウェアで実現出来ればとんでもないものになるだろうな。
0352774ワット発電中さん
垢版 |
2018/06/18(月) 15:58:23.06ID:hA9C8Nwg
xmegaの多段割込みは気に入ってるな。
割り込み処理の中でcliやseiを使うのに最初は違和感だけどw
0357774ワット発電中さん
垢版 |
2018/06/19(火) 00:13:03.32ID:Ga9Lv2/s
megaやtinyでも多重割り込みは出来る。
megaやtinyに多段割り込みの機能は無い。
0358774ワット発電中さん
垢版 |
2018/06/19(火) 00:21:51.59ID:3FV23PIy
AVR用語か?
一般的なソフトウェア用語じゃない方言は
ちゃんと定義してから使ってくれ
0359774ワット発電中さん
垢版 |
2018/06/19(火) 00:29:24.06ID:Ga9Lv2/s
すまんな、多重はMultiple interruptで、多段はMultilevel Interruptの事だ。
詳細はxmegaのデータシートでも読んでくれ。
>>352はそれが便利だと言っているし俺もそう思う。
xmega独特な機能の話の流れなんだから空気読んでくれよ。
0360774ワット発電中さん
垢版 |
2018/06/19(火) 00:57:51.38ID:3FV23PIy
Atmelのxmegaのデータシートを見たけど
普通の多重割り込みに見える
どの辺が特別?

多段割り込みで検索しても出てこないし
0363774ワット発電中さん
垢版 |
2018/06/19(火) 07:00:32.40ID:mTClTbYp
多段割込みを使った事がないけど、
自分で割込み処理の優先順位を決められるって事じゃないか?
ラウンドロビンも出来るみたいだし。

でも私としてはそんな事よりレジスタを複数組み持つとか、
1命令で全レジスタを退避できるとかそういう機能を付加して欲しい。
できれば10進演算命令も。
0364774ワット発電中さん
垢版 |
2018/06/19(火) 07:19:37.81ID:mTClTbYp
ゴメン、少し言葉足らずだったかな。

ラウンドロビンも出来るみたいだし。
→逆に優先順位を付けないラウンドロビンも出来るみたいだし。
0366774ワット発電中さん
垢版 |
2018/06/19(火) 08:03:58.65ID:A72Mw6CB
>>363
そこまで行っちゃうと、tinyのコア4個入チップとかの方が
安上がりだったりして…
0369774ワット発電中さん
垢版 |
2018/06/19(火) 08:54:10.96ID:zfEUbcJR
優先順位を設定出来ない多重割り込みってあまり意味が無いよな
0372774ワット発電中さん
垢版 |
2018/06/19(火) 22:54:03.06ID:Ga9Lv2/s
xmegaのタイマーと言えば1usの32bitカウンターが
割り込み無しで作れるのには感心したな。イベントシステムは面白い。
0373774ワット発電中さん
垢版 |
2018/06/28(木) 22:06:57.35ID:9m2b10Fz
SPI通信を利用するDDS用IC AD9833の設定を手動スイッチで行いたいのですが、
可能でしょうか?
ICの反応が全然なくて困っています。
0376774ワット発電中さん
垢版 |
2018/06/28(木) 23:40:42.00ID:dQXqbk8D
>>373
理論上可能だろうけど、
チャタリングがあるから相当に難しいと思う

その労力考えたらMCU入れた方が、遥かに楽だと思う
0378774ワット発電中さん
垢版 |
2018/06/29(金) 01:44:36.53ID:iAyrVQzF
手動スイッチをトリガーにしてAVRから送る
って事だよな?

本当にスイッチで1ビットずつ送るつもり?

そんな事をしなくても
デバッガのステップ実行でゆっくり動作できるけど
0381774ワット発電中さん
垢版 |
2018/06/29(金) 08:52:47.15ID:+ULtLby1
センターオフのトグルスイッチ使ってラッチ通して入力したなぁ
SPIじゃないシリアル入力のPLLだったが
0382774ワット発電中さん
垢版 |
2018/06/29(金) 09:06:21.05ID:6EsmlsDT
しかし、手動でゆっくり送ると何かいいことがあるんかね?
とりあえず配線確認して、プロトコルアナライザーで見たほうがいいよ。
0383774ワット発電中さん
垢版 |
2018/06/29(金) 11:44:12.91ID:OZwQZXXm
道具が無いときには意味がある
テスターでもLEDでもわかる
0385774ワット発電中さん
垢版 |
2018/06/29(金) 14:59:15.47ID:6EsmlsDT
>>383
せっかくのマイコンなんだから
それぞれの時点でポート読み出しして
シリアル出力するとか考えようよ。
0386774ワット発電中さん
垢版 |
2018/06/29(金) 15:06:59.27ID:N8vUYB3/
>>384
おれに言うな
お前が買ってやれ

>>385
SPIもまともに動いてない状況で
他が正しく動いてるっていう発想がそもそもおかしい
0388373
垢版 |
2018/06/29(金) 20:58:36.90ID:7lPwPuiw
皆さんに原理的に可能だと教えてもらえたので、上手くいかない原因は自分にあると確信を持って、
問題解決に当たったところ、チャタリングが原因でした。
TTL信号を送る回路にシュミットトリガインバータとローパスフィルタを入れてから、
スイッチをカチカチ押してSPI通信したところ、上手くDDS ICを制御できるようになりました。
ありがとうございました。
0389774ワット発電中さん
垢版 |
2018/06/29(金) 23:31:42.39ID:PBj9AVFr
チャタリングは、そういう現象があるんだって最初から知ってる場合以外は、わりとハマるよね
0390774ワット発電中さん
垢版 |
2018/06/30(土) 09:37:16.49ID:V0dcvzu3
チャタリング除去って割と基礎的で重要なことだと思うんだけど、
アマチュアではあんまり触れる人いないよね。
仕事でやってる人でもCR任せでソフトで全くやらない人いるし。
0391774ワット発電中さん
垢版 |
2018/06/30(土) 13:18:59.30ID:UfIKkNFP
仕事でやってて
数ms〜数10ms オーダーをCR任せにする人がいるとは
本当?それ
0392774ワット発電中さん
垢版 |
2018/06/30(土) 13:41:21.38ID:SNslrPiY
適切な回路で(R×2+C)、ちゃんとしたスイッチなら
十分にいけるよ

ただし、経年劣化でスイッチの接点がへたると危ないけど…
0393774ワット発電中さん
垢版 |
2018/06/30(土) 14:48:53.27ID:qOtiJd6W
そんな所にわざわざ金と面積をかける
競争の少ない業界は良いねえ
0395774ワット発電中さん
垢版 |
2018/06/30(土) 19:11:28.56ID:V0dcvzu3
回路設計とファームは自社でやって、基板のアートワークと製造は外注というところはたくさんあると思う。
タクトスイッチ数十個をマイコンのポートにつないだ基板と言うのも良く来る。
キーマトリクスなんて使わずに多ピンマイコンを使う。
全キーにCR入れる。ダイオードは入れない。
値からして明らかに静電気対策ではなくチャタリング対策。
しかも交換しやすいようリード品指定するところもある。

>>393
スキマ製品だと思うだろう?
大量生産品からインフラ機器までどこにでもあるんだよ。
0396774ワット発電中さん
垢版 |
2018/07/01(日) 00:00:24.62ID:hgtDM6XO
そうなのか勉強になった
ありがとう

うちはまともな方だってこともわかって良かった
0397774ワット発電中さん
垢版 |
2018/07/01(日) 02:11:29.03ID:c+vB9JXa
まともならハードとソフトの両面で対策すると思うぞ

ソフトでどうとでもできるからと、たかを括った結果、
大量の不具合発生で「特別キャンペーン」やらざるを
えなくなった棒アジとかあるからなぁ
(あれって、韓国メーカーのOEMでしょ?)
0398774ワット発電中さん
垢版 |
2018/07/01(日) 02:21:31.62ID:Da/lpSfJ
ほほう、ソフトで対策のできないチャタリングってどんなものがあるの?
0399774ワット発電中さん
垢版 |
2018/07/01(日) 02:33:24.36ID:zSrUYbwv
セットリセットのラッチ使って
セットに入ってバウンド起こしても
セットはセットなのですから
チャタリングしようが何しようがセットでラッチ
リセットに入れたら、ラッチ解除で
即座にOFF!コレ最速最強。是非お勧め♪
by単極双投無双
0400774ワット発電中さん
垢版 |
2018/07/01(日) 02:56:09.77ID:T2PPOj12
      (6 lゝ、_ .ノ ヽ、__ノ |!/
         |     ,.'  i、     |}
       ',     ,`ー'゙、_    l
       \ 、'、v三ツ   /
        |\ ´  ` , イト、
       /ハ ` `二 二´ ´ / |:::ヽ
     /::::/ ',   : . . :  /  |:::::::ハヽ
https://twitter.com/ibuki_air
09058644384
0401774ワット発電中さん
垢版 |
2018/07/01(日) 07:14:15.69ID:ar+mTCEr
スィッチも色々あるので、これでOK、と言うような万能の解決方法は無いと思う。
たとえば、単純なプッシュSWでもオルタネートとモメンタリがあるし、
使い方としても、プッシュオン(立ち上がり)でA処理、長押しでB処理、
プッシュオフ(立ち下がり)でC処理など組み合わせるときがある。

私はハードのCR積分回路と、自由度が高い(応用範囲が広い)ソフトのシフトレジスタ方式で
チャタリング除去している。
0403774ワット発電中さん
垢版 |
2018/07/01(日) 11:49:29.51ID:Da/lpSfJ
ピンポイントな例でも構わないので、
CR積分回路が無かった場合の不具合例を教えてくださいませんか?
■ このスレッドは過去ログ倉庫に格納されています

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