X



トップページ電気・電子
1002コメント332KB
AVRマイコン総合スレ Part41
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
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/
0289774ワット発電中さん
垢版 |
2018/11/07(水) 06:13:33.03ID:JwDfvxHX
なんかサンプルと違うんでしょ? まったく同じもの作れって言ってるのに。
0290774ワット発電中さん
垢版 |
2018/11/07(水) 07:48:15.55ID:o3noaeiN
sd_write() がゼロ以下を返してくる原因が知りたいのか?
ソース付いてくるのになぜ読まないのか 最近の若いモンは… いやジジイかもしれんが

sd_write() の実体は sd_L3_write() だ
sd.h でそう define されている
返しているのはゼロで初期化している wd の値だ
それがゼロのままリターンする経路は見たらわかるな?
sd_errno にエラー値をセットしているのも見えるな?
0291774ワット発電中さん
垢版 |
2018/11/07(水) 08:06:07.47ID:o3noaeiN
ざっと見たけどこれ
オレなら使わない

そもそも sd_open() から怪しくないか?
ポインタ返してるのにサンプルはゼロ未満しかエラーにしてない
sd_L3_open() ではエラー時にゼロを返すようにしているっぽいが
sd_errno = SD_E* して break してる箇所では「ゼロ超」返すケースありそうな?
0292774ワット発電中さん
垢版 |
2018/11/07(水) 19:54:51.80ID:nRc9+mZv
>>288
mega328pの動作環境も有るのなら、FatFsが動作するか確認してみては?
問題がハードに有るのか、ソフトにあるのか見当が付くと思いますよ。
0293774ワット発電中さん
垢版 |
2018/11/07(水) 21:56:12.54ID:myGAIZfB
なんか昔、FatFsにAVRのローレベルデバドラ書いて
同じような症状が出た覚えがあるんだけど
どうしたんだったかな?
FatFs付属の奴と同じ感じに書き直した様な…??

まぁ良いや…
0294774ワット発電中さん
垢版 |
2018/11/08(木) 00:06:03.28ID:jqL1cyeE
avrで力不足で、16bit 、今時では、32bit系に行こうと思ったら、どのマイコンがオススメなんでしょう。
avrstudioの環境が無償なのに、なかなかよく出来ていて、
そんな都合の良い環境のものが、存在しているのかどうか知りたいです。
0298774ワット発電中さん
垢版 |
2018/11/08(木) 00:18:51.28ID:aoml9DDu
>>297
???
Atmel Studioが使いたいんじゃないの???
インストールするときに32bitAVRのチェックわざわざ外したの?
0300774ワット発電中さん
垢版 |
2018/11/08(木) 00:26:43.40ID:aoml9DDu
ちなみにだが
AVRにこだわりなければARMのCortex-Mシリーズもおすすめだから
どうせインストールしなおすならARMパッケージもいれとけよ
0301774ワット発電中さん
垢版 |
2018/11/08(木) 00:41:21.54ID:Ue77TVD9
AVRスレで堂々とCortexに誘導するとは
曲者だ!!出合え!出合え!
0303774ワット発電中さん
垢版 |
2018/11/08(木) 00:48:35.85ID:jqL1cyeE
>>300
凄いですね。ところで、avrstudioで使えるのは、元atmelの Coretex-Mだけですか?
0304774ワット発電中さん
垢版 |
2018/11/08(木) 00:50:25.88ID:v0V4WJGd
AVRは好きだけど…
これから32bit勉強したいって人にAVR32とARMでARM勧めるのは文句言わないよ俺…
0310774ワット発電中さん
垢版 |
2018/11/09(金) 18:29:34.35ID:m2sRRRqR
>>283
>>284
WS2812BのLEDを制御するコントローラーです。
SDカードにビットマップファイルを入れて、mp3プレイヤーの音楽を流しながら、LEDパネルとLEDテープを同時制御させようかと。
https://i.imgur.com/XQiYjmn.jpg

ATMEGA1284Pの16MHz駆動ですが、簡単にプログラム書いてみたら20fps位は出るので、まじめに書き直せば30fps位はなんとかなるかなーと期待してます。
https://i.imgur.com/x40Yur8.jpg

写真ってどうやって撮れば綺麗に写るんですかねぇ、発色がイマイチに見えて、どうすれば良いのやら…
0312774ワット発電中さん
垢版 |
2018/11/09(金) 21:32:41.54ID:45Yd2Tpz
>>310
LEDをそのまま写真にとると白っぽく映ってしまうのはあるある
スモークなどのフィルタを使うとかカメラの露出をかなり下げて撮るといいかも
赤や青の単色のLEDなら専用の濃い目の単色フィルタがかなりいいが、フルカラーは難しいかも
0313774ワット発電中さん
垢版 |
2018/11/09(金) 21:50:10.83ID:C7onjmwA
カメラって光りを出してるものは見た目通りにいかないからね。
目にはうす〜く光ってるくらいでちょうどいい。
0315774ワット発電中さん
垢版 |
2018/11/10(土) 23:41:38.25ID:dSE7UYtz
マニュアルレベル補正で
白いところを登録すると撮影時に結構落ち着くよ
最近までこの方法を知らなくて、室内で何撮影しても青くなるんで悩んでた
0316774ワット発電中さん
垢版 |
2018/11/12(月) 11:10:18.43ID:gVgRV+eV
丁寧で感動した

下に映ってる水色のカッターシートがダイソーなのは
わかる
0317774ワット発電中さん
垢版 |
2018/11/13(火) 17:58:13.74ID:LOgGCUbw
>>310
夜景モードでやってみるとか。
0318774ワット発電中さん
垢版 |
2018/11/13(火) 20:03:53.19ID:wNf4rbbM
ぽぷてぴぴっくわろたw
0319774ワット発電中さん
垢版 |
2018/11/13(火) 20:04:26.10ID:wNf4rbbM
>>315
それレベル補正じゃなくて ホワイトバランスじゃね?
0320774ワット発電中さん
垢版 |
2018/11/13(火) 20:48:07.58ID:6cfKDAPS
光ってると何色でも白く写っちゃうんだよな
赤外線も・・・
0321774ワット発電中さん
垢版 |
2018/11/15(木) 21:18:29.65ID:BYfm/hVc
pic屋だけど、avrの性能とC言語との相性の良さにひかれたのと、環境を整備してるけど、
ChaNさんのところの、FFTとFAT
0322774ワット発電中さん
垢版 |
2018/11/15(木) 21:21:20.62ID:BYfm/hVc
途中で切れちゃった。
ChaNさんのところの、FFTとFATを試すために、開発環境を整備してるけど、そのあと、何を作ろうか、迷ってる。
今使ってるPICのリプレースといっても、PICで事足りてるところで、メリットが無いなーと。
0323774ワット発電中さん
垢版 |
2018/11/15(木) 21:25:38.74ID:BYfm/hVc
PICのADCのVREF 2.048V使えるとか、OPAMP付とか、便利なんだけど、
avrでそういうのあるのかしら?初心者なんで、うまく探せなくて。。。
0325774ワット発電中さん
垢版 |
2018/11/15(木) 22:25:05.68ID:Zusnso5B
Vrefは内部1.1Vとかあるよ。デバイスによっては複数から選べるものも。
アナログアンプは積んでるの見たこと無いな。
どっち使うかは好みとしか言いようがないねえ。簡単なことならどっちでもできちゃうし。
0326774ワット発電中さん
垢版 |
2018/11/15(木) 22:39:59.41ID:6/L1axAR
>>323
PICの方がペリフェラルは豪華なんじゃないの
内蔵RCの精度も高いし
AVRは多少パワーがあってgcc使えるぐらいの利点しかないと思う
0327774ワット発電中さん
垢版 |
2018/11/15(木) 22:54:52.43ID:0I7mCKSH
Future Product
Tiny1627のピン数の違うパッケージ出るようです。 1626/20pin 1624/14pin
さらにFlashサイズ拡張で TinyAVR 2-Seriesになるのかな?

XmegaやTiny1627の12bitADCにはProgrammable Gain Ampが付いてるようです。

arduino UNO WiFi REV2のmega4809クロックは内蔵RCだって。
0328774ワット発電中さん
垢版 |
2018/11/15(木) 23:02:28.81ID:kF33pJEa
アプリを作るのも楽しいけど、システムプログラムを作るのも面白い。
私は純粋にプログラミングが好きなので、
(アプリを作っても、ほとんどの作品は完成したら押し入れに突っ込んで終わり)
AVR用の真のISPを作ったり、デバッガを作ったり、マルチタスクを作ったりして楽しんだ。
(もっともこれは私がAVRを始めた時の制作順だけど)

多分私みたいなのは変人奇人で、正しいCPU道から外れていると思う。
アセンブルで作っているので、CPUはPICよりも脳内アセンブルが可能なAVRの方が好き。
0330774ワット発電中さん
垢版 |
2018/11/15(木) 23:22:28.30ID:BYfm/hVc
>>325
PICの2.048Vというのが、なんとなく気持ちいいんです。変換値10bitで,2倍すれば直接電圧に
なる。
vrefが中途半端な値だと、スケーリングしなければならないですから。もちろん乗算器があればそんなに
オーバーヘッドないし、電圧計作るような用途じゃない限り、あえて、変換する必要も無いですけどね。
0332774ワット発電中さん
垢版 |
2018/11/15(木) 23:42:36.16ID:PO+NU/nw
>>330
実力は±4%精度なのに2.048Vとか0.1%オーダーの
有効数字で表記するのはどうかと思う…
0333774ワット発電中さん
垢版 |
2018/11/15(木) 23:52:57.04ID:Zusnso5B
mega0シリーズやtiny1シリーズはパワーの割に安いのがちょっとうれしいかな。
0334774ワット発電中さん
垢版 |
2018/11/15(木) 23:55:45.08ID:BYfm/hVc
>>332
確かに、精度出そうと、外部ADC使うとか、外部vrefを使うのであれば、
この点でのPICのメリットはなくなりますね。
0335774ワット発電中さん
垢版 |
2018/11/16(金) 07:42:21.00ID:KDri+4Jn
昔、FA用に±15V電源の外部ADCを絶縁したりして使っていた頃、
CPU内蔵ADCが出てき時は、
 高速パルスが飛び回っているCPU内にADCを同居させるのか、
 CPUと同じ電源を使うのか、
と驚いた事があったけど、今は内蔵ADCは普通になってしまった。
0336774ワット発電中さん
垢版 |
2018/11/16(金) 12:05:58.45ID:Da6hUrfJ
今更ですが、
ChaNさんのFFTライブラリを移植してシミュレータで検証してみたら、
一連の処理で、
atmega32@16Mhz (一部アセンブラ) 16msec
atmega32@16Mhz (C言語のみにポーティング) 68msec
PIC18@16Mhz (C言語のみにポーティング) 200msec
PIC16@16Mhz (C言語のみにポーティング) 420msec

と、AVRの方が圧倒的です。
ただ、PIC18は、64Mhzまで動くので、そうすると、
使えなくも無い、ということになってしまうんです。
PIC16は、乗算器ないから圧倒的に不利。
0340774ワット発電中さん
垢版 |
2018/11/16(金) 15:15:10.02ID:Da6hUrfJ
>>337
sin,cosテーブルと、窓用の配列を用意して、演算していくけど、
PICは、インデクスアクセスがavrに比べて弱い、特にプログラム領域に確保したテーブルアクセスは
avrの方が効率よくアクセスできる。
avrでもアセンブラが優位だったのは、複数配列のアクセスのときに、C言語では、
毎回インデクスを再計算してしまうケースがある。
アセンブラでは、固定小数点演算で、fmuls命令を使うのと、汎用レジスタで一時的な計算結果を
うまく使いまわして、オーバーヘッドを防いでるのが早い理由かな。
クロック速度でなく、ステップ実行速度が同じであれば、PICが優位なケースもあり、
適材適所感がありそうです。
0343774ワット発電中さん
垢版 |
2018/11/17(土) 09:21:51.89ID:1apcbNh3
結局、一つの命令にかかるマシンサイクル次第なわけで、CPUのパフォーマンスを
語る上でクロック周波数なぞ参考程度にしかならない
0345774ワット発電中さん
垢版 |
2018/11/17(土) 11:31:51.03ID:O+G2Ya7l
PICとAVRのコアの違いは、グローバルレジスタ方式とワーキングレジスタ方式の
差によるものが大きいと思う。
命令16ビット固定長という制限があるのに、
32個のグローバルレジスタ方式を採用したAVR設計者の方針に、
AVRファンの私としては感謝したいw

例えば、8ビット即値命令(LDI R31,$FFなど)は32個のレジスタ指定で5ビット、
即値で8ビット使うので、残りは3ビット、つまり8種類の命令だけでコード空間を
使い果たしてしまう。

もちろんそんなCPUは有りえないので、
あーでもないこーでもないという制約だらけの状態にはなっているが、
この方式の違いが、結果的にPICに対するAVRのアドバンテージにつながっているのでは?
命令コード24ビットのAVRを出してくれれば、これらの命令上の制約も大分解消されて、
ますます使いやすくなるだろうが、残念ながら出ないと思うw
以上、Cプログラマには関係の無い話しでした。
0347774ワット発電中さん
垢版 |
2018/11/17(土) 16:21:53.65ID:O+G2Ya7l
そうだよ、制約がイヤで、まず最初に
 RESETピンに大容量のCや外部リセット回路がつながっていても、
 SCKピンやMOSIピン、MISOピンに何がつながっていても、
 (たとえ5VやGNDと直結されていても)書き込みOK
というシリアル・ライタを作った。
0349774ワット発電中さん
垢版 |
2018/11/17(土) 21:33:32.31ID:jZ52th6p
てかAVRはArduino需要やろ
あれが出る前は特に日本での認知度はH8とPICやった
Microchip自体がPICの改良諦めてる状況やし
0350774ワット発電中さん
垢版 |
2018/11/18(日) 07:41:25.31ID:QR0Cw0zN
>>349
その理屈だとArduinoに使われてる商品だけってことになっちゃうな。

さらに特需と言えるほど広まってるかい?君の周りの人が皆Arduino買ってるかい?
0351347
垢版 |
2018/11/18(日) 15:26:36.49ID:fzYgJRjO
>>348
今まで2回ほどライタの画像をアップしたし、
特に2回目は、このジャンパーは5V/3.3V切り替えで、
あのジャンパーはSPI/PDI切り替えで・・・などと詳しく書き、
オプションの量産書き込み用ZIP(ゼロインサートプレッシャ)ICソケットボードや
ICクリップ方式書き込みアダプタなども紹介した記憶がある。
画像探したけど見つからないし、勘弁して下さい。
昔の外部メモリ用CPUで使われていたROMエミュレータからヒントを得て作りました。
原理は簡単です。
0355774ワット発電中さん
垢版 |
2018/11/19(月) 11:53:37.89ID:PryS2GV0
>>352
確かに私(351)が作ってアップしたものですが、それはライタではありません。
懐かしいな、一時期、I2CやSPIに凝っていた時期があって色々作りました。
最後に作ったのはmega328を2個使ったI2C/SPI通信モニタで、
トリガ条件を逆ポーランド記法で組み合わせて色々演算できるように工夫した。
https://i.imgur.com/32qxbLz.jpg

だけど、パラレル液晶や4桁7セグLED数字表示器用のI2C/SPI/UART変換器や
I2C/SPI通信モニタなどは完成して動作確認後、押し入れの棚に入れてから
一度も使った事がありません・・・。
ここは反省した方がいいのかな?w
0356774ワット発電中さん
垢版 |
2018/11/19(月) 12:20:02.38ID:PryS2GV0
(ついでに連投)
そうそうI2Cと言えば、現在進行中で制作しているものはtiny2313と
秋月の小型液晶AQM0802AとAitendoのJJY受信モジュールを使用した
JJY受信+電波ブースターです。

ブースター部の製作と動作確認までは順調に進んだのですが、
予想外のトラブルがいくつか重なったり(5V-3.3Vレベル変換ICが壊れていたとか)、
tiny2313をI2Cマスターで使うのは初めてだったりで、
受信した0/1/マーク信号を液晶に表示するまで時間がかかってしまいました。
(旧ATMELのtiny2313の資料のTWIの説明は分りにくいぞっ!
 疑心暗鬼になってしまって、
 本当に出力がオープンドレインになっているかの確認までやってしまった)w

これは完成したら押し入れにしまい込まないで、ちゃんと使い続ける予定です。
家族から、最近電波時計の時間がずれて困る、とクレームが来ているので。
自分の好き勝手にやれる、趣味のプログラミング、ハード製作はとてもとても楽しいです。
止められまっしぇ〜んw
0357774ワット発電中さん
垢版 |
2018/11/19(月) 13:56:58.94ID:UzAxUZJQ
PIC16,PIC18を常用してるけど、スタックは、基本CALLでしか使えないので、
パラメータをPUSH/POPするような、C言語には向かないんだな〜としみじみ。
printf的なものを実装しようとして気づいた。
picのcoreだけでも、avrが仕込まれたらどんなに便利なんだろう。。。。
0359774ワット発電中さん
垢版 |
2018/11/19(月) 16:44:56.83ID:X0JJMtRd
>>355
凄ぉーっ!
こんなの作れるなんて、羨ましいし畏れ入ります。

>>356
JJYブースターも自分はAmazonで買おうかと思ってたけど自作なんて、これまた凄い。
0360774ワット発電中さん
垢版 |
2018/11/19(月) 21:02:37.68ID:EynYbcKf
>>357
PIC18Fならスタックは普通に使えまっせ。
データスタックはPOSTDECn, PREINCnというレジスタが何のためにあるのか考えれば分かる。

コールスタックにもデータを積むこともできるけど、これは12ビット幅でちょっと使いづらい。
0367774ワット発電中さん
垢版 |
2018/11/23(金) 06:16:04.74ID:ydsdr5Hn
>>363
ATMEGA328Pに23LC1024(1MのSRAM)なら付けたことあるよ。
https://i.imgur.com/gTxFMS1.jpg

入手も容易、接続も簡単、制御もお手軽、値段も高くない。
https://i.imgur.com/Kriy1ef.jpg

この時はグラフのフレームバッファ領域に使ったけど、実用的なスピードは出たよ。

気をつけることは、ATMEGA328Pのメインメモリそのものが増えるわけではないことと、シリアル接続なのでアクセス速度がそんなに速くないこと、使い方によってはSPIを占有しちゃうことかなぁ。

お金とプリント板の領域に余裕があるのなら、SRAMの大きいATMEGA1284Pにした方が幸せだとは思うよ。
0368774ワット発電中さん
垢版 |
2018/11/23(金) 07:18:24.30ID:mrhqwuVf
メモリいる用途なら素直に32bitにしたほうが楽なんだよね。
0369774ワット発電中さん
垢版 |
2018/11/23(金) 09:51:51.05ID:uT+DaZst
>>367
なるほど、この場合
SPI->I2Cという
フレームバッファからのディスプレイへの書き出しに、連続read/writeが出来るからですね。

もし、ディスプレイも spiだったら、
spiが2本あるか、メインメモリで大きめのバッファを格納しない限り、
毎回アドレス指定で、小さなバッファ単位の書き出しになり、パフォーマンスが出せませんね。
0370774ワット発電中さん
垢版 |
2018/11/26(月) 08:38:05.15ID:y6Tk2Iuy
LEDの撮影のこと、色々と教えてくれてありがとう。
試行錯誤の結果、ホムセンで安かった塩ビの板を暫定的に乗っけました。
スマホの撮影だと、ホワイトバランスとかフィルターとかあまり弄れませんでした。

とりあえず動画
https://i.imgur.com/hp5V3rl.mp4

CLASS4の古いSDカードに動画ファイルを入れて連続再生すると、特に頑張らなくても40fpsくらい動きました。
ただ、標準のsd.hの仕様なのかよくわかりませんが、遅い時がありますね。
フォルダー内のファイルが多くなってくると、後半に入れたファイルを見つけにいくだけで0.5秒もかかります…
一度、オープンしちゃえば素早く読み書きできるのですが。

>>369
おっしゃる通りです。
今回もSDカードから連続読みして、WS2812Bへだらだらと書き込んでます。
0371774ワット発電中さん
垢版 |
2018/11/26(月) 10:23:23.44ID:gkYBJv6f
外から入った光はほとんど吸収して中からの光は出てくる
液晶みたいな真っ黒LEDを売ればいいのにといつも思う
0372774ワット発電中さん
垢版 |
2018/11/26(月) 18:33:12.49ID:c8Kj+9xu
表示を隠す1ドットの液晶は欲しいな
光らない表示のスイッチは離して実装できないし・・・
0373774ワット発電中さん
垢版 |
2018/12/03(月) 18:40:35.28ID:/yNcey4B
知らん間にAVR32がNRNDなってた。
0375774ワット発電中さん
垢版 |
2018/12/03(月) 19:24:37.59ID:5CadpQpg
ATMEL時代からLegacy扱いだったんだから当然だろう。
AVR8とは別物だ。
0380774ワット発電中さん
垢版 |
2018/12/03(月) 22:12:38.21ID:sY+IHBy5
MicrochipがPICのみにしたかったらコスト競争でAVR潰しただろ
吸収合併したってことは欲しかったんだよ、AVRが
0381774ワット発電中さん
垢版 |
2018/12/03(月) 22:30:38.29ID:hqYPNvO+
ARMだけがほしかったというのが本音だろうね・・・・
他は価格的に魅力がないからな〜〜〜〜
0383774ワット発電中さん
垢版 |
2018/12/04(火) 00:30:04.51ID:6OSsIaMK
ARMが欲しいだけなら、わざわざAtmelからマイコン事業を買う必要もなく、ARMと契約すれば済むわけで。
(実際Microchipは特殊用途向けに、ARMマイコンを出してたこともあるし)
0384774ワット発電中さん
垢版 |
2018/12/04(火) 06:51:51.60ID:vCwLw6Gj
コアだけで1チップマイコンが成り立つなら、それもあると思うが。(反語)
■ このスレッドは過去ログ倉庫に格納されています

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