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/
0169774ワット発電中さん
垢版 |
2018/10/17(水) 23:22:53.12ID:oEzmqi7Z
FAではなぜ24vが使われているのか???
電気の世界では「一番心臓の弱い人は42Vで死ぬ。これを死にボルトという」
という説がありました。
(これが医学的に正しいかどうかは、私には判断できません)
それで、その半分程度の24Vなら大丈夫だと決まったらしいです
(低すぎるとノイズの影響を受けやすいので、本来は高いほうが良いのです。)
しかも、電気の世界ではいまだに電池の1.5vの呪縛があってその倍率の電圧が
使われていることが多いようです
(いざという時に電池でバックアップできると考える人がいるようです)
0170774ワット発電中さん
垢版 |
2018/10/18(木) 02:38:32.08ID:cnvlpKlP
いや、1.2V でしょ
鉛バッテリーから来てるんじゃないか
(メタル電話線48Vとかもだ)
0171774ワット発電中さん
垢版 |
2018/10/18(木) 06:13:42.40ID:+vUYN9XP
電気椅子やってる国はその辺のデータ持ってるんだろうなあ
0174774ワット発電中さん
垢版 |
2018/10/18(木) 07:21:22.76ID:cIMsnrLK
1.5Vと2Vと1.2Vの丁度良さげな公倍数が6Vで
その倍数になる様に選んでるってのはあるよね
0178774ワット発電中さん
垢版 |
2018/10/19(金) 03:06:53.29ID:ek1xwOBP
>>176
なに、ということは電話線で感電すると死ぬ可能性があるの?よくわかんないけど
前から回線切って首吊って死ねなんて煽りがあるけど
回線(物理的に)切って咥えて死ね、みたいな感じになるのだろうか…
0179774ワット発電中さん
垢版 |
2018/10/19(金) 10:13:58.75ID:4IiTZZHK
>>178
電話の配線を口で剥いていて感電して1時間ほど気を失っていました
その衝撃は死を意味するほど強烈で目の前で何かが爆発して強い光を
発したように感じました
その後もしばらく動くことができず這って行って助けを求めました
当然声もほとんど出せませんでした。
たぶんその電流が心臓を通過していれば死んでいた可能性は十分あります
0180774ワット発電中さん
垢版 |
2018/10/19(金) 11:13:22.84ID:AEr3gmFv
だれか女タレントでもそんなことやって感電したのがいたな
人体モデルでどれくらい電流流れるんだろうね
感電するのにはそんなに電流要らないけど
0181774ワット発電中さん
垢版 |
2018/10/19(金) 11:33:01.34ID:nXvuIY4F
「電話線が切られいて、外部と連絡が出来ない!」ってシチュエーションがあるけど、電話線くらい繋げよ。
0183774ワット発電中さん
垢版 |
2018/10/19(金) 14:43:40.21ID:f3o6aTGz
ちょうど呼び出し音が鳴ったりすると、信号阻止用の大容量Lでとんでもない電圧に…
0184774ワット発電中さん
垢版 |
2018/10/20(土) 05:46:45.14ID:UkZpqu/L
オンフックでは直流カットのコンデンサとベルしかつながってないはず
0185774ワット発電中さん
垢版 |
2018/10/20(土) 14:16:28.96ID:l61Tf4nn
microSDカードにファイルを書き出す簡易データロガーっぽいものを作ろうと思って
ChaN氏のFatFsを使ってみようかと思ったんだけどこれってATmega8とかATtiny2313に収まると思う?

モジュール絞ればメモリ節約できるっぽいこと書かれてた。
・ファイルの新規作成
・ファイルの追加書き込み
さえ出来れば満足。

ちなみにメモリ節約版の「ぷちFatFs」もあるけど
これはファイルの追加書き込みができない(ファイルサイズの変更ができない)から
残念ながら使えない。データロガーは1分で終わることもあれば1年かかることもある。
最初からログファイルのサイズはどのくらいになるかは分からないからファイルサイズを
変更できないと困るのね。
0188774ワット発電中さん
垢版 |
2018/10/21(日) 16:27:05.60ID:dSudywkn
>>185
なんで328を使わないの?
開発にかかるコストの差を、数十円のチップの価格差で取り戻す方が大変だと思うのだけどな。
0190774ワット発電中さん
垢版 |
2018/10/21(日) 17:20:47.22ID:ZhmC2NrT
一言ログと言っても恐らく日時情報は必要だからRTCや代替の手段が必要になるだろうし
そういうの諸々入れていくマージン考慮して選別しないと後悔するよ
ちなみにtiny2313はどう考えても無理、mega8なら余裕で入ると思う
0191774ワット発電中さん
垢版 |
2018/10/21(日) 17:37:25.20ID:71oGeRKe
データロガー作ってSDに保存、RTCで時刻情報を取得して…とかいろいろやった。
その過程でChanさんのFatFsもプチの方もいろいろ試したりした。
けど、ESP8266で取ったデータをサーバーに送ることにしたら
そういうのが全部一挙に必要なくなってシンプルになてしまった。
0193774ワット発電中さん
垢版 |
2018/10/21(日) 22:24:54.19ID:zEXxWJ24
>>190
> ちなみにtiny2313はどう考えても無理、mega8なら余裕で入ると思う

meta8でいけるかな?
328に浮気せず、8でガンガル(`・ω・´)
0194774ワット発電中さん
垢版 |
2018/10/22(月) 02:35:08.28ID:VT69PF/D
「ぷち」じゃない方のFatFSはR/W可能な最小構成プログラムが8.4KBとある。
どこまで削れるか頑張れ。
0198774ワット発電中さん
垢版 |
2018/10/22(月) 21:53:13.84ID:ADQsnjl7
chmateアップデート後に板の表示に待たされる様になったが、同じ人いる?
0200774ワット発電中さん
垢版 |
2018/10/22(月) 22:23:27.07ID:Xt2uBsOe
>>195
> 自分でlseek()してread/writeしてやればいいだけじゃねぇの?

ぷちFatFSのlseek()はファイルサイズの変更に対応してない残念さ
0201774ワット発電中さん
垢版 |
2018/10/24(水) 14:07:26.95ID:HtZLfyGA
ずっと、PIC16,18を使っていて、力不足でpic32に行きたいけど、cc5x,cc8e で対応せず、
高価なxc8-pro が必要で、迷っていたら、avrgccが、結構使えそうなので、avrも使うことにしました。
avrのライター何がいいんでしょう?
pickit4 , avrisp ,atmel-ice
atmel-ice のデバッグ機能は重視してません。
0202774ワット発電中さん
垢版 |
2018/10/24(水) 14:33:35.25ID:Vn2TSUUS
力不足ってならarmとかに行けばいいのに何でこんな近場に・・・
0203774ワット発電中さん
垢版 |
2018/10/24(水) 15:32:11.84ID:khOkl0xH
デバッグ機能が要らんのなら作ればいい。
単なるライターは純正ではもう無い。
PICやってきたんなら小物の作成くらいできるんでしょ?
0206774ワット発電中さん
垢版 |
2018/10/24(水) 16:21:30.55ID:MkTY874o
>>201
XC32のフリー版じゃだめなの?
そもそも、cc5x,cc8eとか使ったことも無いんだが、
cc5x,cc8e>XC8フリー版
ということなの?
よろしければ向学のために教えてください。
0207774ワット発電中さん
垢版 |
2018/10/24(水) 16:45:21.36ID:HtZLfyGA
https://www.t4f.org/articles/optimization-of-microchip-pic-xc8-compiler-in-free-and-pro-mode/
4年前の記事なので、現行は不明ですが、free版は増長なコードをはくようですね。
cc5x と avrgcc は、最適なコードをはきます。
cc5xは、算術ライブラリしかないので、不便なところも多々ありますが、
もう、20年近く使用しているので信頼感がありますね。
0208774ワット発電中さん
垢版 |
2018/10/24(水) 17:03:44.52ID:3lkw4YRW
>>207
4年前の記事ですが、
個人ならフリー版使って5セント高いチップに換えた方が安上がり。
と結論していますね。
現状の私の見方と一致しています。

cc5xの方の客観的な比較記事は見つかりませんか?
あと、XC32の検討結果はいかがでしたか?
0209774ワット発電中さん
垢版 |
2018/10/24(水) 19:48:48.12ID:HtZLfyGA
>>208
現行の xc8 free だと、記事のとおりでした。
cc5x,cc8e は有料版使っていて、xc8よりも、半額以下ではありますが安いわけではないので、
特別優れているというつもりはないです。
ただ、avrは、gccがかなり使えそうな印象なので、好印象なんです。
0210208
垢版 |
2018/10/24(水) 20:02:25.35ID:JKTGcdsI
>>209
私はただXC32を避ける積極的な理由があるのかを知りたいだけなんです。
スレチなのでもうやめます。
ありがとうございました。
0212774ワット発電中さん
垢版 |
2018/10/24(水) 23:59:21.30ID:WuCAmzGq
はまった。データシート読んだら書いてあった。がっくし。
0213774ワット発電中さん
垢版 |
2018/10/25(木) 07:33:30.59ID:1sFfn+od
私はライタもデバッガも自作
ライタは回路の影響を受けない完全なISP
デバッガはパッと起動しサクサク動く
0215774ワット発電中さん
垢版 |
2018/10/25(木) 14:47:37.05ID:KJi5fKWZ
>>210
pic純正開発環境の MPLAB X が嫌いということが大きいですかね。

普段 visualStudioも使っているので、atmelStudioは、違和感がないということが大きいです。
あと、avrgcc はコマンドラインも使えますしね。、
GUIの統合開発環境は、便利ですが、どんどん進化?していくので、
成果物の管理まで考えると、開発環境は絞り込みたいのです。
0217774ワット発電中さん
垢版 |
2018/10/26(金) 04:35:46.54ID:c/1KzpmB
お前らついに来る時が来た
MPLABIDEの最新版でAVR統合版が出てる

まぁ俺にとっては便利以外の何物でも無いのだがw
0220774ワット発電中さん
垢版 |
2018/10/26(金) 22:31:01.42ID:9eYd0Keg
そうそう
Windows2000とavr-gcc、コマンドプロンプトだけで良い
エディタはVz
鱈セレ256MBメモリでも快適
0228774ワット発電中さん
垢版 |
2018/10/30(火) 11:01:59.14ID:yXGe+geE
この板って、こういうサブイやりとりするやつが必ず3人はいるよね
0233774ワット発電中さん
垢版 |
2018/11/01(木) 12:56:33.28ID:jJqptFOI
微妙な違いのバリエーション出してくるなあ
ニーズ探ってるんだろうか
0235774ワット発電中さん
垢版 |
2018/11/01(木) 17:42:59.70ID:1vx2fJ0I
下手な鉄砲も数撃ちゃ当たる?

何て言うかもっと根本的な改造をやって欲しい。
0236774ワット発電中さん
垢版 |
2018/11/01(木) 17:48:02.59ID:VpImAwsd
mega128のクロック上げて
PWMを861相当もしくはpll付きタイマーに変更して
usb128系相当のピン状態変化割り込みにして
mega64aと同じようにタイマー起動でのadcできる様にした
mega128bを作って欲しい
0239774ワット発電中さん
垢版 |
2018/11/02(金) 16:40:53.14ID:LENfkMph
私が望むのは
 レジスタセットのバンク化、BCD演算命令やマルチタスク用命令の追加、DMA機能など・・・
 ただ一つだけしか望めないなら「オペランドの対象レジスタの制限の廃止」かな。
 (たとえば<LDI Rd,K>でd=0〜31)

I/Oをいじくり回した「年寄りの厚化粧」CPUではなくて、
ベースを改良した「スッピン美人」CPUを望む。
なんて書いたけど、そんなAVRは実現しないと思って諦めている。
0240774ワット発電中さん
垢版 |
2018/11/02(金) 16:53:30.31ID:DZ1WvS0A
Microchipにアーキテクチャ改良出来る技術者は居ない
PICアーキも何年放置されてると思うか
0241774ワット発電中さん
垢版 |
2018/11/02(金) 17:14:52.61ID:Edy+aJ+G
それも半分はxmegaで実現されてるけどやっぱりニーズ無いんだろうな
0242774ワット発電中さん
垢版 |
2018/11/03(土) 00:20:08.84ID:Bg9g6hKX
ATmega8でmicroSDを使うべく

Easy SDcard FAT Library for AVR
http://www.suzume-syako.jp/personal/Tips/peji/Easy_SDcard_FAT_Library_for_AVR.html

上記のライブラリを使わせてもらいました。

Atmel Studio 6.2で言われたとおりヘッダファイル・ソースファイルをADDし、
sd_config.hとdelay.hの修正・・・は必要なさそうだったのでそのままにしておき、

#include <avr/io.h>
#include "sd.h"
#define F_CPU 1000000UL
int main(void)
{
int fd;
char fname[] = "test.txt";
char buf[16] = "0123456789\r\n";

SD_SET_DATE(2010,7,7);
SD_SET_TIME(12,34,56);

fd = sd_open(fname, SD_O_CREAT|SD_O_APPEND, 0);
sd_mount(0);
sd_write(fd, buf, 12);
sd_close(fd);
sd_unmount();

return(0);
}

このようなテストプログラムを組んでみました。
早速実行してみたところmicroSDカードにtest.txtファイルは生成されるのですが
肝心の中身が空のままです。どうやら
sd_write(fd, buf, 12);
のところでエラー(0以下の値が返される)が発生しているようです。
ファイルの生成までは成功するけど書き込みに失敗する場合は
どのような問題があると考えられますか?

ちなみにmicroSDカードは複数試しましたが同じ結果でした。
またSDカードはSPI接続でAVRと結びました。
0243774ワット発電中さん
垢版 |
2018/11/03(土) 06:02:09.54ID:n2az8PSd
>>242
AVRとその処理系は全く使ったこと無いけど普通はマウントしてからファイルオープンの手順じゃないの?
使ってるライブラリのサンプルコードもそうなってるようだし。。
0244242
垢版 |
2018/11/03(土) 11:12:56.51ID:Bg9g6hKX
>>243
すみません、5chに投稿するときにコピペミスで順番がずれてしまいました。
実際のプログラムでは本家サイトの指示通り

fd = sd_open(fname, SD_O_CREAT|SD_O_APPEND, 0);
sd_mount(0);
sd_write(fd, buf, 12);
sd_close(fd);
sd_unmount();

の順番でやってます。
0245774ワット発電中さん
垢版 |
2018/11/03(土) 13:16:36.07ID:wwnJ94pW
>>244
サンプルでは
mount してから open してるように読めるけどな
243 の言う通り

もし 243 も書き間違い(コピペミス)だと言うなら向いてない
0247242
垢版 |
2018/11/03(土) 19:56:25.97ID:Bg9g6hKX
再び同じコピペミスしましたorz・・・

sd_mount(0);

SD_SET_DATE(2010,7,7);
SD_SET_TIME(12,34,56);

fd = sd_open(fname, SD_O_CREAT|SD_O_APPEND, 0);

char buf[16] = "0123456789\r\n";

sd_write(fd, buf, 12);

sd_close(fd);

sd_unmount();

の順番で動かしてます。
0248774ワット発電中さん
垢版 |
2018/11/04(日) 12:54:48.76ID:jvAELQeQ
>>247
サンプルコードにはdelay関数を結構使ってるように見えるけど各ファイル処理の完了を待って次の処理に移る必要とかはないの?
各ファイル処理が完了してから戻ってくるんだったら関係ないけど。
0249774ワット発電中さん
垢版 |
2018/11/04(日) 12:58:23.92ID:W9PE9GhB
まあなんでもそうだけど、サンプルがあるのだったら、まずは完全コピペでとにかく
うごく状態を作ることからはじめないと、何が悪いかわからないよ。
それから少しづつオリジナル化。
0250774ワット発電中さん
垢版 |
2018/11/04(日) 14:35:24.76ID:vJUA1vQP
>>248
delay_1mTimes()はエラー発生時のみ実行されるから関係無いような気がします。

>>249
そうですね。
作者さんは "ATmega328P" で動作を確認しているみたいなので、まずは作者さんと同じ環境で動作確認した方が良いと思います。
0251242
垢版 |
2018/11/04(日) 17:34:39.40ID:Q6NaYHcq
オリジナルのサンプル回路を動かすべく週末にATMega328P買ってきました

早速オリジナルのelfファイルを328Pに書き込んでみました
結果はmicroSDカードにtext.txtファイルは作成されましたが中身は空という
全く同じ状況になりました。

回路の配線でミスしたのでしょうか?

ちなみにmicroSDカードスロットアダプタは秋月で買ってきた
http://akizukidenshi.com/catalog/g/gK-05488/

それをAVRとSPIモードで接続しました。
参考にしたサイトは、http://www.robotsfx.com/robot/robohow/RoboHow91/RoboHow91.html
実際に組んだ回路は、https://dotup.org/uploda/dotup.org1683940.png
CLKのみ直結、CS, DI, DOは10kΩの抵抗で+3.3Vの電源にプルアップ。
未使用ポート(DAT1, DAT2)は未接続です。
AVRの内蔵プルアップは一切使ってません。

10kΩの抵抗値が少なすぎたんでしょうか・・・
47kΩくらいにしたほうが良かったですかね?
0253774ワット発電中さん
垢版 |
2018/11/04(日) 17:43:32.36ID:vJUA1vQP
>>251
https://www.npyo.net/oboe/sd/sd.html
以前私が参考にさせて頂いたサイトですと全端子にプルアップ・ダウン抵抗が入っています。
以来、この構成でAVRとSDカードを接続していますが問題は発生してないです。
回路を見直してみた方が良いかもしれませんね。
0254242
垢版 |
2018/11/04(日) 17:53:01.91ID:Q6NaYHcq
>>252
microSDの容量は2GB。
PanasonicのSD Formatterを使ってフォーマットしたのでFAT16でフォーマットされてると思います。

>>253
あら、未使用ポートのDAT1, DAT2もプルアップされてるんですか・・・
念には念を入れて(CLKを除く)全ポートプルアップ抵抗入れておいた方がいいかもしれませんね。
0255774ワット発電中さん
垢版 |
2018/11/04(日) 19:06:21.44ID:N2qrvJcb
空きポートにLED+抵抗を付けてopen,writeがちゃんと終わってるか表示させてみたら?
0256242
垢版 |
2018/11/04(日) 19:45:10.90ID:Q6NaYHcq
>>255
sd_open関数までは成功していて
sd_write関数を実行すると負の値(失敗)が返ってくるところまでは確認しています。
0258774ワット発電中さん
垢版 |
2018/11/04(日) 21:16:45.83ID:YVwstBqQ
クラスタサイズは?
windowsがつかえるなら
diskpart使って一度パーティションをクリアしてから
512MBくらいのプライマリパーティション作ってから
FAT16でフォーマットしてみるとか
0259242
垢版 |
2018/11/04(日) 22:23:38.14ID:Q6NaYHcq
>>258
> クラスタサイズは?

DISKPART> filesystem

現在のファイル システム

種類 : FAT
アロケーション ユニット サイズ : 32K

クラスタサイズは32kなのでFAT16であってるかと思います。
0260774ワット発電中さん
垢版 |
2018/11/04(日) 23:53:21.42ID:N2qrvJcb
SD_O_RDWRかSD_O_WRONLY付け忘れとかいうマヌケはないよな、さすがに
0261774ワット発電中さん
垢版 |
2018/11/05(月) 01:32:41.97ID:zWZuFTdR
>>259
どう実装しているかソース読んでないから
わからんけど、32kなんて巨大なクラスタ
サイズ扱えるのか?
0262774ワット発電中さん
垢版 |
2018/11/05(月) 09:01:18.76ID:8K0hdNr/
Arduinoのbootstrapを外付けEEPROMに書き込むのは出来るん?
AVR内蔵のFlash領域を節約したく
0264774ワット発電中さん
垢版 |
2018/11/05(月) 11:15:04.30ID:NcoUR1JJ
ブートローダーの事かね?
AVRはフラッシュ領域以外からのコード実行はできないから無理
0265774ワット発電中さん
垢版 |
2018/11/05(月) 12:05:56.36ID:we8VFUr/
ブートローダーの事を言いたいんじゃないの
電々板でブートストラップって言うとハイサイドドライバのフローティング電源の変わりに付ける回路が出てくるが

ブートローダを有効にした時点でブートローダ領域がFLASH内に勝手に定義されるが
どんくらいの容量をブートローダ領域として割り当てるかは何パターンかから選べたはず…
でも現行UnoはOptibootが標準になってて最小容量になってるんだっけ?

あと外部ROMは無理
0267774ワット発電中さん
垢版 |
2018/11/05(月) 14:44:34.55ID:KhCDKs37
>>266
昔は「ブートストラップ・ローダー」(bootstrap loader)って言ってたな。
CP/Mの時代にメモリのゼロ番地からOSのフロッピーディスクの最初のセクターだけを読み込む小さなプログラムを書き込み、そのセクターにはOS全体を読み込むプログラムローダーが入っていてOSが起動する仕組み。(もちろん実用システムではBIOS ROMに入ってる)
これがブーツの紐(bootstrap)を自分で持ち上げて全身を空中に浮かべるようなイメージなので、この名前が付いたって何かの本で読んだ気がする。
0269774ワット発電中さん
垢版 |
2018/11/05(月) 15:44:36.00ID:NcoUR1JJ
足りないんじゃなくてどこまで節約できるのかやってみたいだけなんじゃ?
■ このスレッドは過去ログ倉庫に格納されています

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