アマチュア無線や電子工作,バイクの話などを徒然なるままに書き散らすメモ程度のblogです.


by jq1ocr

<   2010年 06月 ( 37 )   > この月の画像一覧

広告が...

このブログは広告が入らなくて良かったのですが,7月から記事内に広告が表示されるようになってしまうそうです.というか,単体の記事を読もうとすると,もう表示されてるんですが.....

ホームから見てどうなるかによっては,ちょっと考えさせてもらうことになるかも知れません.
[PR]
by jq1ocr | 2010-06-30 08:53 | 徒然話 | Comments(2)
6D は 8N1TDU で参加する予定です.なにせビルだらけなのであまり飛ばないかも知れませんが,がんばります(他のメンバーが.笑) 自分は多分 6m あたりにちょこっと出没すると思いますが,聞こえていましたら,よろしくお願いいたします.参加母体は JA1YAQ ですが,カードは BURO でもそのまま 8N1TDU 宛で OK です.こちらからも記念カードを JARL 経由でお送りします.(発送はハムフェアあたりになるかも知れません)
[PR]
by jq1ocr | 2010-06-30 08:52 | コンテスト・移動運用 | Comments(5)

やっとできた TWI

ようやく TWI (I2C)の EEPROM にバイト単位で読み書きできるようになりました.多分ページ単位も問題なくできると思います.引っかかっていた点はいくつかありましたが,基本的には pull-up の扱いとキャストに問題があったようです.らしいといえば私らしいしょぼいミスですが(苦笑)所詮世の中のミスなんてのはそんなものでしょう.もちろん本当は twi.h を使って楽にやりたかったのですが,流れのわかりやすい作例が見あたらなかったこと,それに I2C の他のデバイスも使ってみたいということから,原点主義というほどでもないですが,フィリップスの I2C の仕様書と microchip eeprom のドキュメントからプロトコルを読み取り,結局は関数をオリジナルで組む結果となりました.なので,28 pin 系 AVR に最初から割り振られている SDA, SCL が PC4, 5 なのにこだわらなくても任意の I/O 2ピンで動作させることができます.面倒くさかったですけど,結果オーライということで.I2C 自体はとてもシンプルなインターフェースなのですが,しょぼいミスのために遠回りをしてました.今 I2C の使用例を見ると「なるほど」と思うところがいっぱいあります.苦笑
【追記】もちろんできるだけ Atmel の推奨する標準的な組み方をした方がオープンドレインになるので安全です.
[PR]
by jq1ocr | 2010-06-29 00:46 | マイコン・電子工作 | Comments(0)

24LC64 vs 24FC64

I2C の EEPROM として,例えば 64kbit だと 24LC64 とか 24FC64 などがありますね.LC の方は 400kHz,FC は 1MHz までのクロックで動作します.基本的にはクロックはマイコン側で作りますから,書き込み時間は両方同じとは言っても,もろもろ速い方がつぶしが利きそうです.また FC の方が低圧から動作します.

いくらくらい違うのかな?と思ったら,これがなんと LC は 60 円に対し,FC は 50 円ではありませんか.え?どういう意味??だったら FC にしとけばいいじゃん.と思ったけど,スペックシートを見ると LC の方が高温まで使用可能らしい.自動車とかに使うという意味があるみたい.ただしそんな温度には普通我々は置かないので,FC 買っとけばいいって結論になりそうです.

他に LC の利点があることに気づいていないだけかも知れませんが,2割高いだけのことがあるようにも思えないのがちょっと.....そういえば,PIC も 887 は安くて,877 が高かったりしたもんなぁ.値付けにはよくわからない事情があるようなので,私のような門外漢は単に値段で選ぶものではないということは心に留めておくべきことなようです.
[PR]
by jq1ocr | 2010-06-26 22:46 | マイコン・電子工作 | Comments(0)

senseless conflict

Office を使っていると AutoUpdate が起動しまして,なにやらし始めたようです.が,しばらくすると別のウインドウが出て update がうまく進まない様子.
d0106518_1356317.jpg

ウインドウにはこう書いてあります.
Microsoft Office 2008 更新プログラム
次のアプリケーションが起動中のため,インストールできません.これらのアプリケーションを終了してから,[続行]をクリックしてインストールを続けてください.

Microsoft AutoUpdate


これはどういう意味でしょう?update するのに update が動いているから update できませんって??このウインドウを放っておいて update のインストールを終わらせてしまえばいいのでしょうけど,このウインドウが出るとなぜか update の方が停まってしまうんです.三すくみならぬ二すくみ,いや普通に stuck ですね.M$ の常識は林檎國住人には思いもよらぬことが多いようで...でもそんな MS の中であえて Mac 向けを作っているチームには声援を送りたいので,どうにかして欲しいところ.が,すぐになんとかなるわけもなく....で,動いているアプリケーションを見ると,update は update ではなく「インストーラ」で動いているようだったので,AutoUpdate を kill して stuck 状態を回避しました.わかりにくいな〜.苦笑
[PR]
by jq1ocr | 2010-06-26 08:47 | 徒然話 | Comments(3)

TWI (I2C) 取組中

チップ内の EEPROM へのアクセスはキャスト時のトラブルで引っかかっていたものの,うまく使えるようになりました.で,今取り組んでいるのは TWI (I2C) 接続の EEPROM です.が,これが結構面倒くさいのです.AVR のピンに SCL, SDA とあったので,すぐ使えるようになっているのかと思いきや,それが見つかりません.twi.h を見つけて中身をみましたが,これもよくわからず.....やっぱり他人の書くプログラムはわからないものです.結局プロトコルを調べて,そこから自分で起こした方がわかりやすいだろうという結論に.苦笑 データシートと悪戦苦闘しながら少しづつ書いていっているのですが,頭をひねりながら書いたものの一部が他人の書くプログラムと似ている部分があるところに気づき「あぁ,この人はこういうつもりでかいたのだな」とようやく理解したりして.笑 まあ一から自分で書けば,将来的につぶしは利くので,もう一踏ん張りしてみます.
[PR]
by jq1ocr | 2010-06-25 00:39 | マイコン・電子工作 | Comments(0)

ARRL Power

米国のアマチュア人口増大のペースが上がっていたりするのは ARRL の取り組みもあるのかなぁと思いつつ,我らが JARL は大丈夫かと心配するばかりの今日この頃ではありますが,みなさんいかがハムライフをお過ごしでしょうか.

さて,ARRL からは新しい本が出たり,何らかの新製品やらが出ると online order しろと広告が入るのですが(笑),なにぶん日本から注文すると送料が高いので指をくわえてみているだけなのであります.で,買う訳じゃないですが,今回目にとまったのはこんな新刊.
d0106518_0444717.jpg
ARRL’s PIC Programming for Beginners(会員価格 $39.95)

ちょいと最近 AVR の勉強をしているものですからこんな本が目にとまるのでありますが,すごいと思ったのは,ARRL が出してるってところ.著者もハムですから,中の作例にも当然無線がらみのものがあることでしょう.いいなぁと思いましたが,私は買いません.なぜならこの本で扱っているのが PIC であること,そして使っているのが何よりアセンブラであることが理由.笑

しかし ARRL は他にもいろいろ本を出していて,層の厚さに感心します.うらやんでも仕方ないことだけど,せめて JARL で ARRL の本を販売してくれたりしないかなぁ(そういえばハンドブックとかは見たことあるような).ARRL 直だと送料が問題なんでねぇ.
[PR]
by jq1ocr | 2010-06-24 00:50 | 徒然話 | Comments(2)

へんな波形

_delay_ms の動作確認で簡単なソースを書いてオシロをみると,こんな波形が出てきました.(PC0)
d0106518_22405533.jpg
ソースは....
while(1){
PORTC=1;
_delay_ms(0.125); /* wait 1ms w/CKDIV8 on */
PORTC=0;
_delay_ms(0.125);
}
なので,1ms ごとに矩形になるはずなんですが....(要するに下の図のようになるはず)
d0106518_22432963.jpg
変だなぁと思ったら,入出力の設定をしてませんでした.DDRC=1; (出力)を挿入です.

しかし,ここは入力設定でも変な感じながら動くのだなぁと思ったら,入力で PORTC=1; するとプルアップになるので,そのプルアップ抵抗を介して電流が流れだしているわけです.無負荷だからこんな感じだったのですね.ちなみに LED を抱かせたらほとんど見えない程度に点灯しました.(もちろん出力に設定したらちゃんと明るく点灯する)回路(負荷)によっては気づかないまま半端な動作で,?マーク点灯,なんてこともあるんだろうなぁ.え?そんなの私ぐらいだって?笑
[PR]
by jq1ocr | 2010-06-22 23:08 | マイコン・電子工作 | Comments(0)

クロック設定

delay_ms が設定した時間にならない件ですが,ヒューズビットの CKDIV8 を "disable" にすれば正しい時間になりました.ただし,ここは注意が必要で「1」が "disable" なのです.普通は DIV8 = 0 だとその機能を「使わない」になりそうな気がしますが,ヒューズビットの設定では「1」が「使わない(disable)」になる(負論理)ところが要注意です.BWTさんにここかも?というコメントをもらって,「あ,ここ 1 と 0 が違うのかも」と思い出したのでした.

ところで,クロックはソース中に F_CPU を define することで指定できますが,Makefile にも同じ設定があるので,ソース中には書かなくても OK です.しかし,ここにあえてクロックの 1/8 の数字を書くことで,delay_ms 等の時間が正しい時間になることが分かりました.

となると,実際問題としてどう設定すれば一番良い結果になるのでしょう?選択肢としては
1. CKDIV8 を disable (1) にする.
2. ソースの F_CPU に1/8の数字を入れる.
3. delay 1ms に delay_us(125) or delay_ms(0.125) を使う.
があるでしょう.これは CKDIV8 という設定がなぜあるのか?ということにも絡んできます.要するにクロック 8MHz でもチップを 1/8 の 1MHz で動かすことによって省電力化が図れるとすれば,CKDIV8 は設定したままにしておいて,F_CPU 1000000 にするか delay_ms(0.125) にするという選択肢があります.これはどっちでもいいような気がするのですが,他のタイミングも F_CPU を使っているとすれば,delay に 1/8 の数字を入れた方がいいような気もします.というか,本来であればそんな変な技は使うべきではなくて,CKDIV8 が enable に設定されているという記載がソース中にあるべきですよね.ぱっと見たところでは気づかなかったので,もしご存じの方いらっしゃいましたら,コメントお願いします.
[PR]
by jq1ocr | 2010-06-22 23:07 | マイコン・電子工作 | Comments(0)

帰ってきたDSO

故障で実家送りとなった DSO ですが,直って帰ってきました.この機種は今風に画面取り込みができませんが,ロール感熱紙に印字ができます.
d0106518_0492285.jpg
さすがに紙も古いのでこんな色になっちゃってます.ちなみにこの紙ってまだ買えるのかなぁ?
[PR]
by jq1ocr | 2010-06-22 00:45 | マイコン・電子工作 | Comments(0)