もう15時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]美人女性のお部屋をナマ体験[PR]  

AVRマイコン総合スレ Part11

1 :774ワット発電中さん:2008/06/07(土) 21:07:49 ID:cqoEj0zL
           _____
         /       /|
       /   ( ゚∀゚) /.∠フ   個人でも手軽に使える
     /       /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
   /  __    o/.∠フ ||    中心に語るスレッドです。
 ∠| ̄ ̄凵 ̄ ̄|∠フ ||     *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
 .|| |_____|/||


Atmel AVR 8-Bit RISC     http://www.atmel.com/products/avr/

608 :774ワット発電中さん:2008/08/31(日) 21:05:20 ID:MYzeuthJ
>>607
宿題終わった?

609 :774ワット発電中さん:2008/08/31(日) 22:39:05 ID:/ykfFC9g
以前、「USBASPの基板を設計します」と書き込んだものです。

たいへん遅くなりましたがだいたいできました。

http://www012.upp.so-net.ne.jp/momo55/GERBER.pdf

部品番号のシルクの仕上げと最後に整える作業、チェックが残っていますが・・・。

一番左がターゲット基板につなぐ6Pケーブル用のコネクタ
その右側のICが74LVC245(0.65mmピッチ)
その右側のICがATMEGA8(TQFP32ピン)
基板の右端が、USB-BコネクタとUSB-MINI-Bコネクタです。

基板サイズは60mm×20mmです。ちょっと大きいですか?

610 :774ワット発電中さん:2008/08/31(日) 23:07:50 ID:j4xRSBjT
出来れば幅をコネクタ位(18mm以内)に抑えると複数刺せて便利かな。

611 :610:2008/08/31(日) 23:10:19 ID:j4xRSBjT
あ、Bなのね、>>610は無視してください。

612 :774ワット発電中さん:2008/09/01(月) 00:10:39 ID:AtfxtYni
>>609
俺が作ったUSBspi(ChaN開発)の基板より一回り小さいですね。
・・・それ欲しいねw

613 :774ワット発電中さん:2008/09/01(月) 01:07:18 ID:1PXx/znG
USBaspの書き込みスピードはUSBspiの半分程度。
でもちっこいのはいいね。

614 :774ワット発電中さん:2008/09/01(月) 01:07:58 ID:SHETmfdi
ターゲット供給とかは考えてないのかな。
んー、供給電圧の切替+電流保護回路は欲しい所。

615 :774ワット発電中さん:2008/09/01(月) 01:32:59 ID:m/lYkJuR
PB1 につないだタクトスイッチの on/off (押すと ground になる) によって、LEDを光らせたいのですが、うまく動きません。
以下のプログラムを走らせると、赤LEDがつきっぱなしになります。
何がわるいのでしょうか?

#include <avr/io.h>
#include <avr/eeprom.h>
#include <string.h>

#define GREEN_DPORT (1 << PD3) /* PD3 */
#define RED_DPORT (1 << PD0)
#define SW_BPORT (1 << PB1) /* PB1 */

static void
morse_init(void)
{
/* pull up 許可 */
MCUCR &= ~(1 << PUD);
/* PB1 を入力に. */
DDRB &= ~SW_BPORT;
/* PB1 を pull up. */
PORTB |= SW_BPORT;
/* PD4 (geen LED) を出力に. */
DDRD |= (GREEN_DPORT | RED_DPORT);
}

#define led_on(led) PORTD &= ~(led)
#define led_off(led) PORTD |= led

static void
morse_poll(void)
{
if (PORTB & SW_BPORT) {
led_off(GREEN_DPORT);
led_on(RED_DPORT);
} else {
led_on(GREEN_DPORT);
led_off(RED_DPORT);
}
}
int main(void)
{
morse_init();
for(;;){ /* main event loop */
morse_poll();
}
return 0;
}


616 :774ワット発電中さん:2008/09/01(月) 03:32:51 ID:cQirOKVk
>615
if (PORTB & SW_BPORT) {

↑よくある間違いだけど、入力はPORTBじゃなくてPINBだよ。

617 :615:2008/09/01(月) 07:43:47 ID:m/lYkJuR
>616
super thanx!! 動いた。

618 :774ワット発電中さん:2008/09/02(火) 00:35:53 ID:t4epJFXb
// 来週のゼミで発表

619 :774ワット発電中さん:2008/09/02(火) 01:13:41 ID:fN50FgqM
>>615
初期化で |= や &= を使うのは意味がなくて美しくないと思うのは俺だけかな。


620 :774ワット発電中さん:2008/09/02(火) 01:37:03 ID:Uy80BEdk
まぁ、AVRはともかくとして、最近のI/Oは書き込み専用も多い訳で、
読み出しを伴う!=や&=を不用意に使うのは危険だからね…。

621 :774ワット発電中さん:2008/09/02(火) 02:23:53 ID:Eh1BOccg
>>619
初期状態のビットを覚えてなくてよいので手抜きするときはよくやらない?


622 :774ワット発電中さん:2008/09/02(火) 08:53:14 ID:JOajqouR
>>621
初期状態のビットに頼るような初期化はしたくないなあ。
AVRの場合、cbi命令やsbi命令が使えるポートだと1命令・1レジスタ節約できるメリットはあるけど。


623 :774ワット発電中さん:2008/09/02(火) 15:10:39 ID:j49Rb45f
>620
最近に限った話なのか知らないが、
書き込んだ値を保持するレジスタが存在すると明記された事例を除けば、
こういう危険行為はダメだろうな。

なんか昔、MZだったかX1だったかの8ビットPCで、
読み込んだときに、書き込み値と違う値が出てくる構造の例を見た希ガス。

いや、MZの例は忘れたがX1ではパレット設定ポートだったっけか。

624 :774ワット発電中さん:2008/09/02(火) 15:27:47 ID:txtq0gXu
ポートに書き込んだ時ストローブ信号が出てくやつは、
危険な場合もあるだろうな。

625 :774ワット発電中さん:2008/09/02(火) 17:10:23 ID:zo1kXwR6
後期のMZで、I/Oポートのアドレス数の不足への対策として、
同一アドレスに、読み込み時と書き込み時で異なるデバイスを割り付けるという離れ業をしでかしたヤツもあったな。
当然、読み込んだ時には書き込んだときとは違う内容のデータが入る。

626 :774ワット発電中さん:2008/09/02(火) 18:51:54 ID:JOajqouR
>>625
離れ業というか、構造を考えるとあり得る話ではあるよな。
PINBとPORTBとかはむしろそうであったほうが間違う人は少ないんだろうなあ。
入力時はPORTBでプルアップ制御ができるおかげでいろいろ楽しめるわけだけど。


627 :774ワット発電中さん:2008/09/02(火) 21:20:53 ID:81STJydD
http://uproda11.2ch-library.com/src/11115205.jpg.shtml
おれのUSBasp できるだけ小さく作ったつもり

628 :774ワット発電中さん:2008/09/03(水) 00:04:49 ID:8Ys26M/S
>>614

> ターゲット供給とかは考えてないのかな。
> んー、供給電圧の切替+電流保護回路は欲しい所。

回路図をアップしました。
http://www012.upp.so-net.ne.jp/momo55/USBASP-CIRCUIT.PDF

5Vと3.3Vをジャンパーで切り替えてISPコネクタ(10PIN)に供給するという理解で良いでしょうか。
(回路図の赤い箇所) いちど見てもらえませんか。

>>627
おお、ちっこい。すごいですね。
もうちょっとシュリンクしようかな。



629 :774ワット発電中さん:2008/09/03(水) 04:33:44 ID:qfcDfSWQ
>>628
-VLC245から電流引っ張っちゃうのは頂けない。

CN2-2
>5Vと3.3Vをジャンパーで切り替えてISPコネクタ(10PIN)に供給するという理解で良いでしょうか。
6pinでも出来た方が良いかと。

CN2-2-VCCに対し、0.1mA位のポリフューズ、
GNDとの間に定電圧ダイオード。

630 :774ワット発電中さん:2008/09/03(水) 06:34:39 ID:VYbb8O+F
>>627
GJ!!!

631 :774ワット発電中さん:2008/09/03(水) 08:25:16 ID:ScyDBf4M
これくらいの基板なら、ユニバーサルよりトナー転写で簡易基板作った方が早いよ。
レーザープリンタとなまき板+スケベ汁 基 エッチング液 で30分ぐらいで出来るよ

632 :774ワット発電中さん:2008/09/03(水) 10:35:59 ID:XCnGzoeb
>>627

USB信号でセラロックって危なくネ?
水晶の方が夏でも冬でも安心できる。


633 :774ワット発電中さん:2008/09/03(水) 10:41:37 ID:0O9zAsP3
>>632
コンデンサさえどうにかすれば水晶の方が小さく済むしね。


634 :774ワット発電中さん:2008/09/03(水) 12:47:15 ID:7Y8T/QWa
>>632
もう数年使ってるけど不具合なしです。
なんとかなるみたい。

635 :774ワット発電中さん:2008/09/03(水) 12:52:34 ID:S5Ls0oC4
>>632
Lowスピードだし大丈夫じゃね?

636 :774ワット発電中さん:2008/09/04(木) 08:00:14 ID:GPnPu2/9
>> 629
こんにちは。
回路図を修正しました。

http://www012.upp.so-net.ne.jp/momo55/USBASP-CIRCUIT001.PDF
赤が追加した箇所です。

JP2をショートするとターゲットボードに対して電源を供給する、外すと供給しません。
低電圧ダイオードは何ボルトのやつが適正かな?

先日ATMEGA8がDIGIKEYから届いたんですが、なんと型番を間違えて(発注ミス)しまいMLFパッケージが届きました!



637 :774ワット発電中さん:2008/09/04(木) 08:04:25 ID:GPnPu2/9
636です。

いまJP2は不要なことに気づきました。
(JP1にジャンパーを刺さなければ良いだけ)

後でJP2を削除します。

638 :774ワット発電中さん:2008/09/04(木) 09:53:21 ID:pUCyAiFC
>>631
どうだろう、逆にこれくらいだとユニバーサル基板の方が
ちっちゃくなる気がするけど。

トナー方式は位置合わせが難しいから、リャンメンにするのは
相当割り切らないといけないし、せいぜいピン間一本でしょ?

極細の配線材ならひとつの穴に3,4本は通せるし、交差し放題だからねぇ。
まぁ手間はユニバーサルの方がかかるだろうけど。


639 :774ワット発電中さん:2008/09/04(木) 10:53:47 ID:6CTOwzV5
>>636
- u2-6からD5 のライン不要では?、というか出力ぶつかってる。
 MEGA側から、コントロールが必要ならFETとかTrで。
 D5は5v maxなので RD5.6E位で。
- POWER LEDはD5,F1間で表示した方が確実かも。
 ついでに、D5,F1間でGNDとの間に0.1u位入れた方が良いかも。

etc

-USBバス側から、電源供給を考えているのだろうから、レギュレータの出力側では無く
CN1やCN4のVCCの側に10u(Ta)以上を入れて、安定計ったほうが吉。
-レギュレータの出力V3.3と入力VCCの間に スイッチングダイオードを
現在10uの所は1u程度で、出力はLVLCとかが常時使うのでR16不要。


640 :774ワット発電中さん:2008/09/04(木) 14:26:50 ID:lGjN2tGq
AVRを使わずにAVRライターを作る方法(サイト)ってあるのでしょうか?
あとAVRって「エーブィーアール」であっているのでしょうか?w

641 :774ワット発電中さん:2008/09/04(木) 14:42:49 ID:ECgj3Ptz
>>640
http://www2s.biglobe.ne.jp/~cama/france/lecon/lecon.html

642 :774ワット発電中さん:2008/09/04(木) 15:14:57 ID:5YvS5Gyd
>>641
ATMELはドイツ発祥じゃなかったか?

>>640
前者についてはいくつかあるよ。
テンプレのELMさんとことか、でんし研さんとこのオーディオ出力を使う方法とか。

でもあまり凝ると>>40になるから、市販品を買ってさっさと作りたいものを
じゃんじゃん作って楽しむのが最も正しいと思われ。

643 :774ワット発電中さん:2008/09/04(木) 16:11:18 ID:pUCyAiFC
Atmelはノルウェイじゃなかったっけ?

AVR無しのライタは、パラレル直結が簡単でおすすめ。
シリアル直結もあるけど、リセットがかからん感じ。
手動リセットなら動くというwebの記事はみたことある。


644 :774ワット発電中さん:2008/09/04(木) 16:15:18 ID:zTcXj6ZD
質問させてください。
avr-gccを使ってATmega32のブートローダを作っています。
ブートローダのサイズが予想外に大きくなりそうなので、応用領域の未使用部分にも
プログラムを置きたいと考えています(できれば、応用プログラムと共用で使いたい
です)。
なんとなく、

void func_hoge(void) __attribute__ ((section (".hoge")))
{
/* 関数の中身 */
}

みたいな感じでセクション名を付けて、リンカに割付け先のアドレスを指定して
やればいいのかなと思っているのですが、そういった事は可能なのでしょうか?
また可能だった場合、リンカへの指定方法は、リンカオプションを

-Wl,--section-start=.hoge=0x6000

のように指定すればよいのでしょうか?

よろしくお願いします。


645 :774ワット発電中さん:2008/09/04(木) 18:25:59 ID:KyZ+fXPz
>>640
ttp://homepage2.nifty.com/denshiken/AVW019.html
今回はAVR入門用にAVRライターを持ってない人でも作れるライターです。

こういうのが必要ってことかな?



646 :774ワット発電中さん:2008/09/04(木) 21:32:44 ID:9dJjh5Vt
今回のエレキジャックにATtiny2313が付いてるよ。ついでにブレッドボードまで付いているw
タイトルが「1冊まるごとマイコン入門だ!」なんだけどね・・・
tiny2313以外にも、uPD78F0503DA、MSP430F2013、MC9S08QG8CPBE、温度センサLM73基板
付きにしちゃった所為で、いつもより1000円高くなっちゃってるのが残念なところだけど。

にしても、エレキジャックってどんな読者層を狙ってるのかイマイチわからん。

647 :774ワット発電中さん:2008/09/04(木) 21:35:30 ID:+hi9nhzY
ブレッドボードに水晶とかセラロック刺して、安定動作は望めるのかね?

648 :774ワット発電中さん:2008/09/04(木) 21:42:08 ID:9dJjh5Vt
>>647
そのための、内部クロックではないかw

マジレスすると、セラロック4MHzを使ってみたことあるけど特に問題は無かった。
オシロでモニタしてもさほど劣化が無い程度には使えるみたいよ。

649 :774ワット発電中さん:2008/09/04(木) 23:40:42 ID:S0GSnHoj
>644
可能です。
そこまで調べたのならなぜやってみないのか?
示したサンプルでビルドすれば可能かどうかはここで聞くより早くわかるはず。
それ以前に2Kワードで収まらないブートローダーってSDカードでも扱うの?
MEGA644じゃだめ?

650 :774ワット発電中さん:2008/09/05(金) 08:54:07 ID:3miUSf1x
>>647
AVRに使う程度の周波数だと大丈夫じゃない?
実際試作レベルの範囲では安定して動いているし。
長時間動かすとわからんし、不要輻射問題とかは無理でしょうけど。


651 :774ワット発電中さん:2008/09/05(金) 22:49:22 ID:YUAwIJSU
>> 639
アドバイスありがとうございます。
助かります。

先ほど回路図の修正を行いました。
http://www012.upp.so-net.ne.jp/momo55/USBASP-CIRCUIT002.PDF
変更箇所は赤色です。

> - u2-6からD5 のライン不要では?、というか出力ぶつかってる。
>  MEGA側から、コントロールが必要ならFETとかTrで。
>  D5は5v maxなので RD5.6E位で。

U2-6からD5につながる配線ですが、ある方のホームページに公開されている回路をそのまま使わせてもらっています。
電源のON/OFFをコントロールするのではなく、ターゲットボードに電源が入っているかどうかを検出するための回路だと
思われます。(ホームページにくわしい解説が無いので想像なのですが)
そもそもファームウェアがターゲットボードの電源の検出に対応していなければ無駄ですね。

> - POWER LEDはD5,F1間で表示した方が確実かも。
追加しました。

>  ついでに、D5,F1間でGNDとの間に0.1u位入れた方が良いかも。
同じく追加しました。

> -USBバス側から、電源供給を考えているのだろうから、レギュレータの出力側では無く
> CN1やCN4のVCCの側に10u(Ta)以上を入れて、安定計ったほうが吉。
反映しました。

> -レギュレータの出力V3.3と入力VCCの間に スイッチングダイオードを
> 現在10uの所は1u程度で、出力はLVLCとかが常時使うのでR16不要。
反映しました。R16削除しました。


USBASPのCPUにファームウェアを書き込む手段ですが、74LVC245の入出力を逆にしてCN2にライターを接続することに
しまいした。(JMP2をショートする、とライターとの接続はクロスケーブルのようなものを用意しなければならない?)
うまくいくかな。

こんな感じで基板をつくろうかと考えています。



652 :774ワット発電中さん:2008/09/06(土) 20:49:26 ID:K772dh1z
どうぞ

653 :774ワット発電中さん:2008/09/06(土) 22:58:46 ID:dP5c0SqA
始めまして、AVRに関してはよく分からないけどサンプルプログラムと一緒にして貰えるなら、>>651さんのボードをいくつか買わせて頂きたい。
自作コントローラ作るたびにパラレルポートに接続する為のコネクタ弄りまわしたり、USBのコントローラのガワがゴロゴロしてるのもアレなんで…
欲しいサンプル
・デジタル入力をそのままジョイパッドのボタン入力として出力する
出来れば
・アナログ(可変抵抗)入力をジョイパッドの軸として入力する

ところで過去ログ探してったけれども単価について書いてないようですがどれぐらいになりそうなんでしょうか?
余り高いならそこらのUSBコントローラバラし続けるつもりなので…

654 :774ワット発電中さん:2008/09/07(日) 00:03:16 ID:tzeWvri+

日本語でお(ry

655 :774ワット発電中さん:2008/09/07(日) 08:47:53 ID:SCRRRDGx
>>653
>>651の人のボードはAVRをプログラムするためのボードなので、
そういった用途には利用できません。
上手く改造してもデジタル4入力が関の山です。

656 :774ワット発電中さん:2008/09/07(日) 14:05:22 ID:7bIY/0c9
>>655
それすらわかってないんだから、
>>653 に説明しても理解されないのでは。

それはそうと、QFPより、間違って発注された
MLFやQFNタイプのほうが俺はほしいなw

657 :774ワット発電中さん:2008/09/07(日) 14:44:02 ID:OB5I2z4d
>>653
gingerだな
ttp://web.mac.com/kuwatay/morecat_lab./ginger.html

202 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

取りに行ったけどなかった。次は一時間後に取りに行くです。
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.3 2008/07/26
FOX ★ DSO(Dynamic Shared Object)