AVRマイコン総合スレ Part11at DENKI
AVRマイコン総合スレ Part11 - 暇つぶし2ch600:774ワット発電中さん
08/08/30 16:08:58 4HNBRE+z
でもC++な機能使ってコンパイルされた結果を見るとどうも・・ね


601:774ワット発電中さん
08/08/30 21:10:18 ReYVkpox
>>600
それはコメントを//で記述できることかああああああああああああ


602:774ワット発電中さん
08/08/30 22:58:40 pgEXnTv9
>>601
あ、それはむちゃくちゃ便利。

603:774ワット発電中さん
08/08/30 23:26:07 yddkBAMi
大文字/小文字を区別するのがどうも好きになれなくて

604:774ワット発電中さん
08/08/30 23:40:21 QzfFPeki
BASICでもCでも、「高級」言語を使う時にめんどいのは、
割り込みの記述が言語でも違うし「どのCを使うか?」でも違うってことじゃないかなぁ。


605:774ワット発電中さん
08/08/31 07:47:56 sX3Tzg7K
たいてい関数に適当な属性指定するだけだろ。
マニュアルちゃんと読める奴なら問題ないと思うが。

606:774ワット発電中さん
08/08/31 08:47:27 1S6WQbiJ
>>604
割り込みとかはハードウェア依存の話だから、ライブラリとかコンパイルオプションとかに依存するよな。
そのへんは仕方ないのでは。

607:774ワット発電中さん
08/08/31 20:05:16 ve3JZXVn
まっ、電子工作なんてやってるのは英文マニュアルは言うまでもなく、
日本語マニュアルを読む力もないような落ちこぼればっかりだからな

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

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

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

URLリンク(www012.upp.so-net.ne.jp)

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

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

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

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

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

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

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

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

615:774ワット発電中さん
08/09/01 01:32:59 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ワット発電中さん
08/09/01 03:32:51 cQirOKVk
>615
if (PORTB & SW_BPORT) {

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

617:615
08/09/01 07:43:47 m/lYkJuR
>616
super thanx!! 動いた。

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

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


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

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


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


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

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

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

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

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

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


627:774ワット発電中さん
08/09/02 21:20:53 81STJydD
URLリンク(uproda11.2ch-library.com)
おれのUSBasp できるだけ小さく作ったつもり

628:774ワット発電中さん
08/09/03 00:04:49 8Ys26M/S
>>614

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

回路図をアップしました。
URLリンク(www012.upp.so-net.ne.jp)

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

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



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

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

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

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

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

632:774ワット発電中さん
08/09/03 10:35:59 XCnGzoeb
>>627

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


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


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

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

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

URLリンク(www012.upp.so-net.ne.jp)
赤が追加した箇所です。

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

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



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

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

後でJP2を削除します。

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

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

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


639:774ワット発電中さん
08/09/04 10:53:47 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ワット発電中さん
08/09/04 14:26:50 lGjN2tGq
AVRを使わずにAVRライターを作る方法(サイト)ってあるのでしょうか?
あとAVRって「エーブィーアール」であっているのでしょうか?w

641:774ワット発電中さん
08/09/04 14:42:49 ECgj3Ptz
>>640
URLリンク(www2s.biglobe.ne.jp)

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

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

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

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

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


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

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

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

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

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

よろしくお願いします。


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

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



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

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

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

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

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

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

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


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

先ほど回路図の修正を行いました。
URLリンク(www012.upp.so-net.ne.jp)
変更箇所は赤色です。

> - 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ワット発電中さん
08/09/06 20:49:26 K772dh1z
どうぞ

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

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

654:774ワット発電中さん
08/09/07 00:03:16 tzeWvri+

日本語でお(ry

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

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

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

657:774ワット発電中さん
08/09/07 14:44:02 OB5I2z4d
>>653
gingerだな
URLリンク(web.mac.com)

658:774ワット発電中さん
08/09/07 17:40:15 O5vmc2fT
>>655
分りやすい説明有難うございます。
>>656
お恥ずかしいながら>>655さんに説明されるまでで全く理解出来ていませんでした。
>>657
これは出力があるみたいですが…?
出力付きのHID準拠のジョイパッドは無い筈なので自分が求めているのとは違うと思われます。

どうせだからAVRの単語も加えて探し回ってみたら
URLリンク(www.flightsim.com)
見つけてしまいました。6軸1ハット24ボタンのジョイスティック用ドライバ
とりあえずこのハードを頑張って作ってみることにします。
答えていただいた方、ありがとうございます。

659:USBasp
08/09/07 22:14:28 CN9kQSww
はじめまして、質問させてください。
USBaspを作っているのですが、WindowsXP&2000で接続してみましたが認識されません。
いろいろ試しましたがどうしても認識されません,どなたがアドバイスいただけないでしょうか。

環境について
・DELL-Vostro1000 WindowsXP_SP3
・DELL SC430 Windows2000_SP4
・回路は以下を参考に作成しました。本の中ではクリスタルとコンデンサ22pFを2つで発振するように設計されていますが、クリスタルが無かったのでEXO3の12MHzを使っています。
あと、本ではATmega8で作成されていましたが、手に入らなかった為、ATmega88で作成しています。
武藤佳恭著「超低コスト インターネット・ガジェット設計」(オーム社)
・ファームウエアはAVRwikiにおいてあった、usbaspx113_m88.hex
を使用。verifyまで成功したので書き込みは大丈夫なはず。

Fuzeは以下のように書き込みました。
avrsp -fh11011101
avrsp -fl11010111
avrsp -fx11111001

聞きたい事
・セラロック12MHzではUSB機器は作れないのか?水晶必須でしょうか?
・EXO3は水晶と同等の精度があるのか。
・EXO3の接続方法。
 ATmegaの9pin(XTAL1)→EXO3のF
 ATmegaの10pin(XTAL2)→EXO3のDをつなげばOK?
 それとも
 9pin(XTAL1)→EXO3のFだけでよいのか
(EXO3の電源は4pin,8pinにUSBの5Vを供給してます)

以上

660:774ワット発電中さん
08/09/07 22:50:04 xmFJ3h93
セラロックは無理が多い(安全係数低い)。
ex03は水晶じゃないの?
EX03を基準発振出力にすること。mega88のヒューズは外部クロックに設定すること。
原理がわかればEX03で使えると思う。
意味が分からなければわかるようになるまでは原回路どおりに進めること。


661:774ワット発電中さん
08/09/07 23:03:07 pdeHFLdF
>659
mega88に書き込めたということは、mega88と書き込み用ヘッダまでの
結線は正しかったということ。だからといって全体がUSBaspの回路として
正しく出来上がってるとは限らない。

原回路と違う部分から疑うのは当然っちゃ当然だけど、
クロック周り以外には問題がないとは限らないから、念のため。

つーか書き込めてるならクロック周りは動いてるんじゃないの?
クロックがちゃんとしてないとAVRって書き込みできないよ。


662:USBasp
08/09/07 23:16:02 CN9kQSww
すいません、ターゲットボードにISPで書き込みしたわけではなく
mega88は別回路で書き込みました。
説明不足でした。
ChanさんのRS232CのISPライタでmega88に書きこみました。
ここまでは成功しているはずで、ターゲットのUSBaspボード上で動いていないので
切り分けかたがわからず困っています。

>セラロックは無理が多い(安全係数低い)。
>ex03は水晶じゃないの?
セラロックはやっぱりだめそうなんですね、了解しました。
本をよく読んだらEXO3はクリスタル・オシレータで
9pin(XTAL1)→EXO3のFでよさそうです。
今、回路を直して見ます。


663:774ワット発電中さん
08/09/07 23:35:56 +z93X8tz
>>662
>切り分けかたがわからず困っています。

まずは全く同じに作って見る。
動いたら一箇所だけ変更して動かして見る。

664:USBasp
08/09/07 23:41:39 CN9kQSww
>663
了解しました。
同じ部品を発注してみます。

9pin(XTAL1)→EXO3のFにしてみましたが動きませんでした。
12MHzの水晶発振子はどこで買えばよいか教えてもらえますか?
自力では共立電子の12.8MHzしか見つけられませんでした。

665:774ワット発電中さん
08/09/08 00:42:48 lF2ESa4k
秋月でもサトー電気でもマルツでも、お好みの店でどうぞ。むしろ共立が置いてないだけ

666:774ワット発電中さん
08/09/08 00:56:00 x+K2l7ER
ヒューズ設定してないってオチじゃね?

667:774ワット発電中さん
08/09/08 02:17:00 AvzqV5YH
>559
ヒューズ設定は何を基準に決めましたか?
というのは-FLの下位4桁が 0111 は外部クリスタル指定です。
12MHzの水晶を繋いでいるときは正しい設定ですが、EX03をXtal1に繋ぐときは
外部クロックですから 0000 になるはずです。
また、EX03は分周回路付きのようですから 12MHz で発振するように設定が必要です。
GNDに落とさないといけない端子があったように思いますから注意してください。
いずれにしてもデータシートを読むようにしてください。


668:774ワット発電中さん
08/09/08 02:40:19 cHO4Am3h
>667
試してないのに書くが、EX03のような発振器からの入力時、
外部クリスタル設定でも実は動いてしまうと思う。
正しく設定するのは当然としても、動かない理由はきっとそこじゃない。


669:774ワット発電中さん
08/09/08 06:23:25 aU5oIDxj
>>659
私はセラロックで何台か作りましたがすべて動いてます。
参考にした本の回路がどうなってるかわかりませんがUSB回路に3.6Vのツェナーダイオードは入ってますか?
これが無いと不安定になったり認識できなかったりします。


670:774ワット発電中さん
08/09/08 09:17:57 lF2ESa4k
(セラロック時点では)RESET周りが不安定な気がするが、外部クロックにしてから
余計に問題が複雑になってる。
とりあえず最初は素直に12MHzの振動子で動かしたほうがいいって。
一から組み直すのが吉。

671:774ワット発電中さん
08/09/08 09:39:44 pdWmolsj
ちなみに3.6Vツェナーが無ければ青色LEDでも使えるよ
USBから通信があると点滅するから動作が見えるメリットもある


672:USBasp
08/09/08 12:47:18 HrFo/Ndv
>666
>667
確認したらヒューズビット間違えてました。
おっしゃるとおり外部発振は0000にするようにmaga88のデータシートにありました。
機能の夜0000に直して見ましたが動かなかったので
EXO3の設定が間違っているかも知れません。
STをH(3pin→8pin)に接続する必要があるみたいです。
STがLだとOutputFがLになると書いてありますが、Lとは発振しないということでしょうか?
とりあえず実験してみます。

>669
ツェナーダイオードは入れていません。
TA48M033Fレギュレータで3.3Vにしています。
とりあえず買って見ます。
>670
セラロック12MHzにしていた時も今もResetPinは接続なしで使っています。
AVRWikiではResetはプルアップしておいたほうがいいって書いてあったので気になってました。
初心者なので1から組みなおしたほうがよさそうですね。
>671
1から組みなおしてできそうだったら。
やってみます。

皆さんアドバイスありがとうございます。
水晶発振子とダイオードとLEDを買ってみます。

673:774ワット発電中さん
08/09/08 13:04:27 rqKOZv+T
>>672
ST=Lは発振停止とデータシートに書いてありますね。


674:774ワット発電中さん
08/09/08 20:40:16 lF2ESa4k
ツール・ド・フランスって。
トライアスロンやってる暇あったら自転車やれよw

675:774ワット発電中さん
08/09/08 21:11:55 5i3OmXUu
( ・∀・)つ0 とれたての~た~ま~ご~♪

676:774ワット発電中さん
08/09/08 21:17:06 lF2ESa4k
素晴らしい誤爆

677:774ワット発電中さん
08/09/08 22:51:00 5W9oBmjM
しかし…AVR、種類増えたねぇ…
Tiny26は終了で261に移行ってのは前から書いてあったけど、Tiny88って(w
Xmegaもそんなに高くないけど、パッと見、外部バスは8bitだけなのか…
IDE繋ぎたい人にとってはめんどいな…4bitのSDRAMは繋がるけど。

>>674
鶴瓶乙

678:774ワット発電中さん
08/09/09 00:37:41 r5QNfBbn
上位互換で中身が変わるのはいい
インターフェースが変わるのは勘弁

679:774ワット発電中さん
08/09/10 14:14:52 U97sxI3z
WinAVR で数値テーブルを ROM 領域に作るにはどう書けば良いのでしょう?

const unsigned short XX_Table[100]={...};
unsigned short const YY_Table[100]={...};

この2種類はコンパイルはできるのですが、生成されたアセンブラコードを
見るとどうも RAM 領域に確保されてるっぽいんですが…。


680:774ワット発電中さん
08/09/10 14:44:49 /dsmoNyB
avr-libc のマニュアルくらい読むべきだと思います!

URLリンク(www.nongnu.org)


681:仕様書無しさん
08/09/10 15:21:36 dCVcZc/p
>679
組み込み(要するにマイコン全般)では一般的に、
数値テーブルを確保しようとしたら「const」をつかうとかしないといけない

明示的にROM内に確保する宣言をしないと自動的にRAM/ワークエリア側に確保され、初期値不定になる

その辺を容易にするための工夫が680の示すリンク先のヤツなんだろな。
え? ぜんぜん容易じゃないって?

682:679
08/09/10 15:39:48 U97sxI3z
>>680
>>681
おおきに。
今までアセンブラばっかりだったもんで…。


683:p1198-ipbf908sapodori.hokkaido.ocn.ne.jp
08/09/10 17:37:01 K3I8Q1rL
constは型チェックのある#define定数くらいにしか意識していなかったw

#include <avr/io.h>
#include <util/delay.h>

union PORTBIT {
uint8_t byte;
struct {
int bit0 : 1;
int bit1 : 1;
int bit2 : 1;
int bit3 : 1;
int bit4 : 1;
int bit5 : 1;
int bit6 : 1;
int bit7 : 1;
};
};

PORTBIT* PBd = (PORTBIT*)&DDRB;
PORTBIT* PBi = (PORTBIT*)&PINB;
PORTBIT* PBo = (PORTBIT*)&PORTB;

int
main(int argc, char** argv) {

PBd->byte = 0xff;
PBo->byte = 0x00;

while (1) {
PBo->bit0 = ~PBo->bit0;
_delay_ms(500);
}
}

こんなコードでavr-gcc(WinAVR 20080610)が通って
mega88上で動作もしてしまったのだが、AVR的にこれってOK?


684:774ワット発電中さん
08/09/10 17:56:57 a/iHRgQU
>>683
いいんじゃないですか?
IOPORTとメモリはプログラムから見れば区別ないのですから。
扱いやすく読みやすいと思うならOKかと。
使用する命令(cbi/sbiなど)はgccが適当にやってくれるだろうし。


685:774ワット発電中さん
08/09/10 18:05:42 a/iHRgQU
>>684
と思ったけど、最適化うまくされるかな?
その後変更されないPBd/PBi/PBoを定数だと見なしてくれればいいのだが、
変数扱いされるとインデックスレジスタ経由のプログラム吐くかも。
アセンブラリスト見たらどうなってる?

PORTB ^= _BV(0); (これはとおらないんだっけ?)
または PORTB = PORTB ^ _BV(0);
の方がカンタンでいいかな?と思うけど、
わかりやすさでそっちのでもいいね。


686:774ワット発電中さん
08/09/10 18:26:14 z1O3KKAQ
レジスタ辺りは
volatileで宣言されてなかっただろうか??

その気持ちを慮ると
volatile PORTBIT* で宣言してやったがよさげ。


687:774ワット発電中さん
08/09/10 21:42:47 yy3SiwzV
>>684-686
有難トン、usart弄るとき
union ucsr0c {
  uint8_t ucsrc;
  struct {
    int USART_CLK : 1;
    int USART_DataBit : 2;
    int USART_StopBit : 1;
    int USART_ParityBit : 2;
    int USART_Sync_Async : 2;
  };
};
とか

シフトレジスタ弄るときに
uint8_t rd;
_delay_ms(1);
rd = ~PINB & 0xff;
sftregs->SI = ((rd & 1) == 1);
sftregs->SCK = ((rd & 2) == 2);
sftregs->SCLR = ~((rd & 8) == 8);
sftregs->RCK = ((rd & 2) == 2)||((rd & 8) == 8)||((rd & 4) == 4);

見たいなことやって遊んでミル

688:774ワット発電中さん
08/09/10 23:14:48 Rh0PekbK
>>687
>sftregs->SCK = ((rd & 2) == 2);

==の先の数値と&のマスク両方指定がめんどうですね。

sftregs->SCK = ((rd & 2) != 0);
ではどうでしょうか?これなら1つですみます。


689:774ワット発電中さん
08/09/10 23:17:00 Rh0PekbK
>>687
sfregs.SIのように扱える形で宣言できればすっきりして便利ですけどねえ。


690:774ワット発電中さん
08/09/11 10:20:04 rAnCOvOa
>>688
そう言や、演算結果が「2か否か」よりも「0か否か」の方がCPU的に楽でしたっけ。

>>689
メンバ演算子の方がポインタ演算子よりも優先されるみたいなので、単純に
*sfregs.SI だとエラー吐いてしまうのが痒い。
#define SFREGS (*sfregs)で逃避しまくるか。


691:774ワット発電中さん
08/09/11 13:54:04 bu//3Krc
AVR向けISPアダプタ(パラレルorシリアル向けダウンロードケーブル)で
8pinのSPIフラッシュ書けるソフトウェアは無いのかな…

692:774ワット発電中さん
08/09/11 15:48:42 ZuJ6cv/I
>>691

PonyProgどお?

693:softbank219001162114.bbtec.net
08/09/11 19:01:58 pW9Mr1MO
avr mega88って24MHz動作できますか?
USBのclockから動かしたいもので。。


694:774ワット発電中さん
08/09/11 19:18:15 pW9Mr1MO
うおふしあなさんだ

695:774ワット発電中さん
08/09/11 19:31:49 bu//3Krc
>>692
やはりPonyProgが無難ですか。
諦めてSIのパラレル作るか…orz

と探していたら…

ISP Programmer
URLリンク(dybkowski.net)

でATMELのDataFlashが書けるらしい…
いずれはPonyProg等でもサポートされるとは思うんですが。

なんだかISPケーブルばかり増えていく…orz


696:774ワット発電中さん
08/09/12 11:46:31 pYuJsRD3
>>693,694
データシートにはVCC=4.5~5.5VDCでMax20MHzまでと記載されてるし
俺自身10MHz以上で動かした事がないので何とも言えない。


697:693
08/09/13 06:51:44 jHEhcSMF
>>696
ありがとう。クリスタル買います。
# navi2chのデフォルトだとふしあなになるようでorz


698:774ワット発電中さん
08/09/13 09:44:07 A7cmnU35
> # navi2chのデフォルトだとふしあなになるようでorz

2ch 側の仕様変更に伴う影響。

対策書いてあるから、Navi2ch スレへ Go !!

Navi2ch for Emacs (Part 18)
スレリンク(unix板)

699:774ワット発電中さん
08/09/13 18:07:38 r6DuPK7X
USBASPの基板設計がほぼ終わりました。

URLリンク(www012.upp.so-net.ne.jp)

CPUがMLFになったので、小型部品を多用してしまいました。

基板サイズは57mm×18mmです。

近いうちにP板.COMにデータを出します。


700:774ワット発電中さん
08/09/13 18:19:16 G54SSdu8
>699
MLFの裏面てどうやってハンダ付けしてる?


701:774ワット発電中さん
08/09/13 18:26:23 r6DuPK7X
>> 699
ハンダ付けしません。

手ハンダでのハンダ付けはもちろん不可能です。

自動機で実装する場合、メタルマスクに開口部を設けてクリームハンダを塗ると思いますが、
端子部のショートが発生することが多いので私はあえてメタルマスクは開口させないつもりです。

動作的には問題ないだろうと考えています。



702:774ワット発電中さん
08/09/13 18:40:42 r6DuPK7X
> 手ハンダでのハンダ付けはもちろん不可能です。

と書きましたが誤解されるといけないので補足します。

MLFのウラ面のパッドのハンダ付けは不可能です。
ただし側面の端子のハンダ付けは可能なので上手にハンダ付けすればOKです。




703:774ワット発電中さん
08/09/13 22:19:11 C7GdYpdf
>702
すみません、USBASPって、JTAG デバッカの動作も可ですか?

704:774ワット発電中さん
08/09/13 22:32:17 Ga2rWXKn
????

705:774ワット発電中さん
08/09/13 22:52:14 G54SSdu8
>703
回路的には可能だが、ファームを実装した例は無いんじゃないか。
とてつもなく遅いのが分かりきってるが故に。


706:774ワット発電中さん
08/09/13 23:40:21 7atLPFpV
Xmega使ってる奴いないの?

707:774ワット発電中さん
08/09/14 01:33:52 wUQlTtaG
体調が良かったのでUSBSPIの基板を設計しました。

URLリンク(www012.upp.so-net.ne.jp)

サイズは69mm×19mmです。

USBASPもUSBSPIも部品は表面だけに配置しています。


708:774ワット発電中さん
08/09/14 10:35:23 qfkWojnm
>>701
アイテムラボさんの変換基板みたいに、裏面から半田付けするのはどうでしょ?

709:774ワット発電中さん
08/09/14 12:58:43 wUQlTtaG
>>708
おー、こんなのあるんですね。
初めて知りました!

710:774ワット発電中さん
08/09/16 18:54:36 JAKBKSSc
USBをRS232に変換するケーブルでAVRマイコンに書き込むのって無理?
学校のパソコンはRS232付いてて書き込めるんだが、自宅のVAIOには無いんだ・・・

711:774ワット発電中さん
08/09/16 19:54:56 cKuxvpD0
どこのライターか書かなきゃ解らんと思うよ。
何なら自分用にデジットのAVRWRT買った方がいいと思う。一応Vistaでも動いてるし。

712:774ワット発電中さん
08/09/16 20:54:59 YsEYixPM
>710
ChaN氏のSPIブリッジは出来るけど、ISPは劇遅で無理

713:774ワット発電中さん
08/09/16 21:06:52 JAKBKSSc
なんかピンが3本出てて、DIPスイッチでwriteモードに切り替えて書き込む奴です。
ATmege32とか書いてありました。仕様書が手元にないので詳しくは分かりません。

714:774ワット発電中さん
08/09/16 21:19:53 S6HhcyiO
STK500では書き込んでたけど。

715:774ワット発電中さん
08/09/16 22:36:08 CiCfcvVl
USBASPで書き込めばいいじゃん。全然問題なし

716:774ワット発電中さん
08/09/16 23:13:26 e/YM/t8n
>>710
詳しく聞かずにカキコすると、
出来る場合もあるし、出来ない場合もある。
出来る可能性は結構高い。


717:774ワット発電中さん
08/09/16 23:32:21 nXpkQmDT
これはどうよ。
まだCQ出版でトラ技売ってるし。
URLリンク(homepage2.nifty.com)

718:774ワット発電中さん
08/09/17 00:18:27 FnOI6IZy
>>710
学校のパソコンでAVR焼いて自宅用のUSBasp作ればいいじゃない。
というかwiki嫁。

719:774ワット発電中さん
08/09/17 00:40:01 C8rUhpXj
>>713
赤いボードかなぁ。それだったら多分ベステクの奴だと思うけど、ブートローダが書き込んであるので、こいつはUSB変換使えたと思う。

720:774ワット発電中さん
08/09/17 07:02:41 W48c9Eor
トラ技の基板は持ってますので、検討してみます。

学校を卒業するときに先生から頂いたものなので、今さら学校に行くのも・・・

ベストテクノロジーのユニバーサルモータドライバ2に乗っていたマイコンボードです。

USB-RS232アダプタで書き込めるのなら購入しようと思うのですが、
いろいろなとこから販売されていますが、全部同じもの何でしようか?

721:774ワット発電中さん
08/09/17 07:54:21 eOrbFOHN
>>720
ものによって多少違いある。
一応実績あるのは秋月で売られているUSBシリアル。
これならChaN氏のCOMポート制御ISPアダプタで低速で書き込み可能。
1本持ってると何かと便利だし、買って損はない。
URLリンク(akizukidenshi.com)

722:774ワット発電中さん
08/09/17 23:21:53 4L6X7324
殆どの場合、ライタなど作ろうなどと考えず、純正のを買うのが最良の選択。

と、AVRライタを10個以上自作した経験から忠告しておく。

723:774ワット発電中さん
08/09/17 23:55:36 ppIWiFvQ

秋月のUSB-シリアルとURLリンク(homepage2.nifty.com)
でずっとやってる。
でんし研万歳。


USB-シリアル変換はAVRとPCで通信するときに必要だからあった方が良いよね。


724:774ワット発電中さん
08/09/18 00:55:17 I+SdZP6t
>>723
そんなあなたにMega128にも書き込め SPIブリッジも使えるトリプルがお勧め。
SPIブリッジまじ早い

725:774ワット発電中さん
08/09/18 23:30:25 MCyY10o0
>>693 自分でやれよ、4.5V以上のVCCなら20MHzまではサポート内だろ。


726:774ワット発電中さん
08/09/18 23:32:16 MCyY10o0
>>706 今CANのコード書いてるんだけど、誰かCANタイマーの意味を教えてくれ。理解不能。

727:774ワット発電中さん
08/09/19 00:05:22 kFNuXbZu
>>693
亀レスだけど24MHz入れたいなら内部で8分周すればおk
データシートの翻訳版から抜粋↓

周波数がデバイス仕様(VCCに依存)を越える場合、内部周波数を8分周するために
CKDIV8ヒューズをプログラム(0)にできます。それは分周したクロックがデバイス仕様での周
波数に合致するのを保証しなければなりません。

728:774ワット発電中さん
08/09/19 00:32:21 ZpvErFjP
AVR ISP MKIIってOSXでも使えますか?

729:774ワット発電中さん
08/09/19 01:17:51 by5huRuc
>>727
間違いを垂れ流すなよ。どこが24MHz保証してるんだ?

730:774ワット発電中さん
08/09/19 01:23:10 vLCreJoK
>728
osx + avrdudeで使ってるよ

731:774ワット発電中さん
08/09/19 09:57:44 X0JngkcV
>>727>>729
データシート見たけどMAXがよくわからんな。
>>693の文面からだと、「24MHzをAVRの動作クロックにしたい」のか
「水晶つけたくないから24MHzをクロック源として、(それ以下の動作クロックでもいいから)AVRを駆動したい」のかどっちにも取れるし。
データシートにはクロック源が最大動作クロックを超えるときは内部分周ヒューズを有効にしろ、ってあるけど、
載ってるのは最大動作クロックだけで、分周前の最大入力可能クロックは載ってないんだよな

732:774ワット発電中さん
08/09/19 12:42:38 y7zwBB+M
>731
データシートもいろいろ改訂が進んでいるが、
たとえばmega88も初期のデータシートは分周前クロックとしてmax 100MHzが載っていた。
その当時も >727の注意事項は載っていて、
ようするにこれは「100MHzそのままで動くことを意味すんじゃないぞ」って意味だった。

外部入力は内部実装上は20MHz制限はなくて、動くとこまで動くだろ、って感じなんだろう。
TBDでほったらかしのところも多いし。


733:774ワット発電中さん
08/09/19 12:44:44 sCHb7JaR
>>731
はっきり0~20MHzって書いてあるじゃないの?(表7-12)
その上で、低電圧駆動で20MHz駆動ができない状態(4.5V以下)の場合は、CKDIV8のプログラムで動かせるよって話では。
代表特性ではVcc4.5Vで24MHz駆動までグラフは伸びてるので(図28-49)、分周なしでも24MHz動くんだろうとは思うけど、
分周なしでもありでも、24MHz駆動は無保証・仕様外ってことなんでしょう。



734:774ワット発電中さん
08/09/19 12:47:54 sCHb7JaR
>>731
表27-1にもあるな。動作クロックじゃなく、外部クロック駆動波形のMAXが20MHzと書かれているみたいだ。



735:774ワット発電中さん
08/09/19 14:37:52 QPjCXYXC
AVR Studio 4.14の質問もこちらでよいですか?

日本語入力で、入力中の未確定文字が表示されなくて困ってる。
スペースキーで変換候補を出すことはできるが、そのときも入力中の文字は表示されない。
確定すると初めて文字が表示される。

海外製エディタでいかにも起こりそうなIME周りの不具合でしょうか?
もし解決策があったら教えてください。

736:774ワット発電中さん
08/09/19 14:55:30 VjAkyM0v
>>731
外部クロック入力での上限ならば、
fig28-2にVcc5.5VでMAX20MHzって書いてある筈だけど…

737:774ワット発電中さん
08/09/19 16:36:01 by5huRuc
>>733
それが正しい。原文データシートにはそう書いてる。邦訳がおかしいだけ。
邦訳使うのはいいけど、情報流す時は原文チェックする癖をつけたほうがいいな。

現行データシートの当該部分(2545M-AVR-09/07) , p.32

>Notes: 1. If 8 MHz frequency exceeds the specification of the device (depends on VCC), the CKDIV8
>Fuse can be programmed in order to divide the internal frequency by 8. It must be ensured
>that the resulting divided clock meets the frequency specification of the device.


If以下は倒置文なのに、frequencyをそのまま主語だと思って8MHzの訳し方がわからなかったようだ。

以下試訳:

デバイスの特性(それはVCCに依存する)が、8MHz周波数を超えてる場合は、
内部周波数を8分周するために、CKDIV8ヒューズをプログラム可能にすることが出来る。
(ただしそのばあい)分周後のクロック値とデバイスの周波数特性値が合致していることが
必要である。

738:774ワット発電中さん
08/09/19 17:28:47 sCHb7JaR
>>737
ん?そこはAVRにcrystalを接続して発振させる場合では?
元レス>>693は、外部24MHzで駆動する話。
CKDIV8は外部発振にも効くとは思うけど。

それとその試訳の方が意味が分からないと思うが。
デバイス特性(最大利用可能クロック周波数)が8MHzを越えている方でCKDIV8の使用を推奨するって変でしょう。
俺も正直意味わかりにくいが、もしかしてこれ8MHzRCオシレータだけの脚注だったのを別の場所にもつけてしまったのでは??
(Table8-8のNote1だけが正しく、他は8MHzではない・・・)そう考えれば納得できる・・・




739:774ワット発電中さん
08/09/19 20:32:29 10c1YdQ6
1/8にした(この場合は3分周っていうのか?)クロックが20MHz以下と思っていいのだろうか?

ただ、>>693の望みは24MHzでAVRを動作させる(分周しない)という意味だろうどう考えても。

740:774ワット発電中さん
08/09/19 21:17:29 VjAkyM0v
>>738
外部クロック入力端子に入れられる波形ついては、28.4.2のExternal Clock Drive Waveformsが適用されて
保証されるのは5Vで20MHzまで、と解釈するのが一般的だと思うのだが。



741:774ワット発電中さん
08/09/20 02:37:47 FH0ixBL8
原文に当たってみていたら、MEGA48 Automotive(自動車用)とかいう動作温度が-40~120℃になってる奴があるんだが、
External Clock Drive Waveformsは普通の奴と同じで最大動作クロック(動作温度のためかMax16MHz)なんだが、
外部クロックの最大周波数には100MHzって書いてあるんだよな
>>732の昔は100MHzだったというのを聞くと、可能性としては
・Automotiveは外部クロック周りが変更されている。普通のは20MHzまで
 →だったらExternal Clock Drive Waveformsは何?
・最初100MHzって書いたのが間違っていて、それがAutomotiveではまだ修正されていない
・データシートを改定する時に他のところと同じ20MHzにしてしまった

いや、100M入力できたらいいなという希望的観測なんだがw
検証してみたいが、手元に適当なオシレータが無い・・・


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch