AVRマイコン総合スレ Part41

1774ワット発電中さん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/

270774ワット発電中さん2018/11/05(月) 16:12:45.49ID:1sJ44x4m
ブートローダーを読み込むためのブートローダーローダーをだな・・・

271774ワット発電中さん2018/11/05(月) 17:20:07.00ID:Hp/SynxC
そもそも>>265の言う通りATmega328Pのブートローダー領域は512B/1KB/2KB/4KBの4種類から選ぶ(ヒューズのBOOTSZ)しかない
ArduinoUnoのブートローダーはすでに最小容量設定の512Bに収まるように作られているし、ヒューズもそう設定されているはず
さらに容量の小さいブートローダーローダーを開発したとしても、空いた部分がプログラム領域として使えるようにはならんぞ

ArduinoNanoは前は2KBのブートローダー領域が必要なのが組み込まれてたが最近の変更で512Bになったんじゃなかったっけかな

2722422018/11/05(月) 20:28:09.65ID:hd05URoF
未使用ポート(DAT1, DAT2)も10kΩでプルアップしてみましたが相変わらず
ファイルの作成には成功しても中身の書き込みには失敗するようです。
自前のプログラム、サンプルプログラムどちらも同じです。

>>260
付属のサンプルプログラムが

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

としてあったのでそっくりコピペしました。
ソースを眺めてみるとSD_O_RDWRやSD_O_WRONLYというオプションも用意されてるようですが
どういうシチュエーションで使うんでしょうか

>>261
2GBのSDカードだとFAT16のクラスタサイズは32kBになるようです。
http://www2s.biglobe.ne.jp/~system/doc/winfile.htm

>>257
> sd_errno

ソース見てたらなんかありますね、sd_errno。
エラーのステータスコードでも返されるんでしょうか?
UARTでつないでPCにエラー番号を表示させてみますか

273774ワット発電中さん2018/11/05(月) 20:31:32.72ID:QsIzlwKf
素直にデバッガ買えば?

274774ワット発電中さん2018/11/05(月) 20:46:35.19ID:CShwKbeS
このソース、かなり古いコンパイラ使ってない?
昔とグローバル変数の扱いとか変わってるから
大丈夫か?
一度、最適化を全部はずして試してみたら?
(以前、嵌った…)

275774ワット発電中さん2018/11/05(月) 20:49:42.00ID:5Giw5llr
>>272
https://dotup.org/uploda/dotup.org1683940.png
回路図を見るとSDカードの電源にパスコンが入っていないけど、入れて試してみた?

2762422018/11/06(火) 00:08:34.51ID:w/FCkL3J
>>274
コンパイラの最適化は無しにしてみましたが相変わらずでした・・・

>>275
3.3Vの電源は三端子レギュレーターで作ってるんですが
その出力の近くに10uFの電解コンデンサを入れてます。
なのでSDカードの近くにはパスコンは入れてません。
でも入れた方がいいかもしれませんね。
SDカードは書き込み時に大電流流れると聞くので

277774ワット発電中さん2018/11/06(火) 01:22:44.51ID:5qqQrXCr
>>276
パスコン無しは論外

レギュレータ2次側のキャパシタはパスコンじゃなくて発振防止用
データシートを熟読して、安定領域に入るよう選択しないと、
トラブルの元(セラコン、ケミコン、タンタルコンのどれが
使用可能かまでレギュレータごとに指定されている)

パスコンは低ESRで自己共振がクロックより十分に高い物を
選択。一個で無理なら0.1,0.001uFパラとか。並べる時は
デバイスに近い順に自己共振周波数が高い物を…

278774ワット発電中さん2018/11/06(火) 06:42:17.74ID:srJWHmXs
>>276
>なのでSDカードの近くにはパスコンは入れてません。
オイオイw
まさかと思うけどAVRのパスコンも省いていないよね?
今の症状だと100%同じ個所で止まっているようなのでパスコンの影響ではないかもしれないけど、、不安要素は極力排除したいね
全回路図を晒して皆さんに添削してもらった方が良いんじゃない?

2792422018/11/06(火) 07:14:29.89ID:w/FCkL3J
>>277
>>278
SDカードのパスコン外しは論外でしたか^^;)
幸いAVRの近くには0.1uFのセラコンいれてます・・・
0.1uと1uのチップセラコンが手元にあるのでそれを付けてみますね

> 全回路図を晒して皆さんに添削してもらった方が良いんじゃない?

いまの回路はUARTポートにUSBシリアルをつないでいたり
I2Cポートに温度センサがぶらさがってたりといささか汚れた状況なので
いちど
・AVR
・ISPポート
・microSDカード
だけのシンプルな回路を組んでみようと思います

280774ワット発電中さん2018/11/06(火) 07:31:56.24ID:GZCTED9H
ISPコネクタにプログラマ挿しっぱなしとかじゃ無いよね?

281774ワット発電中さん2018/11/06(火) 12:32:10.53ID:LiR4W6/C
#define SD_BUFSZ 512

282774ワット発電中さん2018/11/06(火) 16:48:05.02ID:rAye+unJ
似たようなことやって、似たようなトラブルで3日間無駄にしたよ…
昨夜にICSP差しっぱなしでSDカードが正しく動作しないと気づいたわ。

https://i.imgur.com/RZBLMAc.jpg
マイコンがATMEGA1284Pなんでちょっと違うけど、>>280さんの言う通りICSP差しっぱなしかどうか確認した方がいいかも。

283774ワット発電中さん2018/11/06(火) 17:08:14.62ID:4kwMi3so
>>282
なにこれ
下のmicroSDはmp3プレイヤーかな
上にもう二枚使ってるのは何だろう

2842532018/11/06(火) 19:03:01.56ID:srJWHmXs
>>280
253で紹介したサイトでも「SDカードと同じSPIバス上には他のデバイスは接続しない方が良い」って書いてあるし
マサカねw

>>282
面白そうな物を作っていますね
これは何をする基板ですか?

285774ワット発電中さん2018/11/06(火) 19:22:18.53ID:RpX5aZGF
32u4ちゃんは地味だけど出来る娘

2862422018/11/06(火) 20:26:27.36ID:w/FCkL3J
>>280
>>282
一応書き込みが終わるたびにコネクタは抜いてます。
microSDカードも書き込み中はちゃんとスロットから外してます^^;)

287774ワット発電中さん2018/11/06(火) 22:54:01.27ID:+S3mhM1b
予め空のファイルを作ってあってもダメ?

2882422018/11/07(水) 00:20:38.19ID:2Cws9u6C
>>287
空のファイルの作成には成功するんですが
そこから先の中身の書き込みに失敗してしまうようです。

289774ワット発電中さん2018/11/07(水) 06:13:33.03ID:JwDfvxHX
なんかサンプルと違うんでしょ? まったく同じもの作れって言ってるのに。

290774ワット発電中さん2018/11/07(水) 07:48:15.55ID:o3noaeiN
sd_write() がゼロ以下を返してくる原因が知りたいのか?
ソース付いてくるのになぜ読まないのか 最近の若いモンは… いやジジイかもしれんが

sd_write() の実体は sd_L3_write() だ
sd.h でそう define されている
返しているのはゼロで初期化している wd の値だ
それがゼロのままリターンする経路は見たらわかるな?
sd_errno にエラー値をセットしているのも見えるな?

291774ワット発電中さん2018/11/07(水) 08:06:07.47ID:o3noaeiN
ざっと見たけどこれ
オレなら使わない

そもそも sd_open() から怪しくないか?
ポインタ返してるのにサンプルはゼロ未満しかエラーにしてない
sd_L3_open() ではエラー時にゼロを返すようにしているっぽいが
sd_errno = SD_E* して break してる箇所では「ゼロ超」返すケースありそうな?

292774ワット発電中さん2018/11/07(水) 19:54:51.80ID:nRc9+mZv
>>288
mega328pの動作環境も有るのなら、FatFsが動作するか確認してみては?
問題がハードに有るのか、ソフトにあるのか見当が付くと思いますよ。

293774ワット発電中さん2018/11/07(水) 21:56:12.54ID:myGAIZfB
なんか昔、FatFsにAVRのローレベルデバドラ書いて
同じような症状が出た覚えがあるんだけど
どうしたんだったかな?
FatFs付属の奴と同じ感じに書き直した様な…??

まぁ良いや…

294774ワット発電中さん2018/11/08(木) 00:06:03.28ID:jqL1cyeE
avrで力不足で、16bit 、今時では、32bit系に行こうと思ったら、どのマイコンがオススメなんでしょう。
avrstudioの環境が無償なのに、なかなかよく出来ていて、
そんな都合の良い環境のものが、存在しているのかどうか知りたいです。

295774ワット発電中さん2018/11/08(木) 00:08:21.93ID:U27h/QdG
http://akizukidenshi.com/catalog/g/gI-07023/
AVRて8bitだけじゃないんだけど

296774ワット発電中さん2018/11/08(木) 00:11:34.72ID:aoml9DDu
>>294
その環境のまま32bitの開発するんじゃあかんのか?

297774ワット発電中さん2018/11/08(木) 00:16:40.90ID:jqL1cyeE
>>295
ホントだ。いきなり解決?開発環境はどうなるのですか?

298774ワット発電中さん2018/11/08(木) 00:18:51.28ID:aoml9DDu
>>297
???
Atmel Studioが使いたいんじゃないの???
インストールするときに32bitAVRのチェックわざわざ外したの?

299774ワット発電中さん2018/11/08(木) 00:22:19.40ID:jqL1cyeE
>>298
そういうことですか。。。ありうがとうございます。

300774ワット発電中さん2018/11/08(木) 00:26:43.40ID:aoml9DDu
ちなみにだが
AVRにこだわりなければARMのCortex-Mシリーズもおすすめだから
どうせインストールしなおすならARMパッケージもいれとけよ

301774ワット発電中さん2018/11/08(木) 00:41:21.54ID:Ue77TVD9
AVRスレで堂々とCortexに誘導するとは
曲者だ!!出合え!出合え!

302774ワット発電中さん2018/11/08(木) 00:47:44.57ID:OhLhYaww
AtmelもSAMとか出しちゃってるんだしいいじゃんもう

303774ワット発電中さん2018/11/08(木) 00:48:35.85ID:jqL1cyeE
>>300
凄いですね。ところで、avrstudioで使えるのは、元atmelの Coretex-Mだけですか?

304774ワット発電中さん2018/11/08(木) 00:50:25.88ID:v0V4WJGd
AVRは好きだけど…
これから32bit勉強したいって人にAVR32とARMでARM勧めるのは文句言わないよ俺…

305774ワット発電中さん2018/11/08(木) 06:25:45.86ID:b0jiHQet
AVR32はメーカーでもレガシー扱いだからやめとけ

306774ワット発電中さん2018/11/08(木) 06:48:25.61ID:1qDHbeVn
>>304
は?おじいちゃんなにモグモグ言ってるの?

307774ワット発電中さん2018/11/08(木) 07:12:41.48ID:GPfjCdEV
だからARMでいいじゃんて言ってるわけだが

308774ワット発電中さん2018/11/08(木) 07:55:34.84ID:cr5vfwqT
今ならESP32やろ

309774ワット発電中さん2018/11/08(木) 08:09:35.10ID:f91uuRYj
あっちこっちに沸いてくるESP32厨って有名人?

310774ワット発電中さん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

写真ってどうやって撮れば綺麗に写るんですかねぇ、発色がイマイチに見えて、どうすれば良いのやら…

311774ワット発電中さん2018/11/09(金) 20:34:48.62ID:E3YpFziV
>>310
竹書房?

312774ワット発電中さん2018/11/09(金) 21:32:41.54ID:45Yd2Tpz
>>310
LEDをそのまま写真にとると白っぽく映ってしまうのはあるある
スモークなどのフィルタを使うとかカメラの露出をかなり下げて撮るといいかも
赤や青の単色のLEDなら専用の濃い目の単色フィルタがかなりいいが、フルカラーは難しいかも

313774ワット発電中さん2018/11/09(金) 21:50:10.83ID:C7onjmwA
カメラって光りを出してるものは見た目通りにいかないからね。
目にはうす〜く光ってるくらいでちょうどいい。

314774ワット発電中さん2018/11/10(土) 22:01:10.38ID:lK5RUwKc
カメラよりディスプレイの方が不完全

315774ワット発電中さん2018/11/10(土) 23:41:38.25ID:dSE7UYtz
マニュアルレベル補正で
白いところを登録すると撮影時に結構落ち着くよ
最近までこの方法を知らなくて、室内で何撮影しても青くなるんで悩んでた

316774ワット発電中さん2018/11/12(月) 11:10:18.43ID:gVgRV+eV
丁寧で感動した

下に映ってる水色のカッターシートがダイソーなのは
わかる

317774ワット発電中さん2018/11/13(火) 17:58:13.74ID:LOgGCUbw
>>310
夜景モードでやってみるとか。

318774ワット発電中さん2018/11/13(火) 20:03:53.19ID:wNf4rbbM
ぽぷてぴぴっくわろたw

319774ワット発電中さん2018/11/13(火) 20:04:26.10ID:wNf4rbbM
>>315
それレベル補正じゃなくて ホワイトバランスじゃね?

320774ワット発電中さん2018/11/13(火) 20:48:07.58ID:6cfKDAPS
光ってると何色でも白く写っちゃうんだよな
赤外線も・・・

新着レスの表示
レスを投稿する