ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

USBaspLoader(4)

2013年01月12日 | 日記

USBaspLoaderはavrのboot領域の制限があります。ATmega168に書き込む前提でavr-gcc.exeのversionでどう変わるのかコンパイルしてみました。

avr-gcc(ver.4.6.2)は2kbyteを越えてしまいますが、ver.4.3.3、ver.4.7.2は2K以内に収まっています。

USBASPLoader-master-modはsenshuさんのmaster-mid.diffの変更を加えたソースのコンパイル結果です。 1968byteでこれがこの中では最小のbootloaderです。

ATmega168での実機testは未だやっていません。



2013/1/13(日) 9:05

一番バイト数の少ないbootloaderを書き込みお決まりのLチカをやってみました。無事にチカチカ点滅しています。動作確認ーーOKです。

コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

真冬の青空

2013年01月11日 | 日記

今日はあまり風もなく太陽が燦々と照り輝く明るい一日でした。空はあくまでも青く青く広がっています。

きれいなコバルトブルーの真冬の空です。雲ひとつありません。(正午に近い時刻です)

      

コバルトブルーとは一般的に青を表現するときに使われていますが、実際は見たことがありません。コバルト鉱石は銀白色の鉱物とか、珪酸にコバルトを不純物として入れると青いがらすが出来るそうです。コバルトは単体で使われることはなく他の金属に混ぜられて使われているようです。カセットテープの磁性体にも入っています。コバルト60は放射性物質です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

USBASPLoader(3)

2013年01月10日 | 日記

少し前にATmega1284PにUSBASPLoaderを移植してうまく動作しないままになっていました。senshuさんの掲示板に紹介されていたURL(https://github.com/baerwolf/USBaspLoader) にあるプログラムを試してみました。このプログラムにはATmega1284Pも含まれています。

他にいくつかのターゲットも含まれていますので、こちらの方が選択肢が増えていいのではないかと思います。

早速コンパイルしてUSBASPLoaderを書き込みUSB PORTにつないでみましたところ今度はスンナリ認識されます。

このプログラムではUSB-D(-)がPD6に割り付けられています、ここは前のプログラムとは異なりますのでハードを変更しました。

手順は

1.USBASPLoaderをATmega1284Pに書き込む。

2.Boot Enable JumperでPD7をGNDに落とす。

3.USBにつなぐ。

 

4.avrdude-GUI(YCIT Ver1.5.0)を使ってユーザプログラムを書き込みます。

5.Boot Enable JumperをはずしてReset SWを押す。これでユーザプログラムが起動します。

6.別プログラムを書き込む場合は、Boot Enable Jumperを差し込み、Resetを押すとBootLoader modeに入りますので項目4を実行する。

2013/1/11(金)

USBAASPLoaderでUSB deviceとして認識されないトラブルがありました。何とか今はOKになりましたが、testlibusb-win.exeで調べて見るとlibusb0.dllのversionが古すぎます。これを1.2.6.0まで持ち上げないとと思い、libusb0.dllを検索で拾い出すと何と230個以上出てきますので止めました。USBASPLoaderはどこからdllを引っ張って来ているのでしょう。全部消して1カ所から読み込む様にすればいいのではないかと。私のPCは今やゴミだらけの様です。

system32の下にあるlibusb0.dllのversionは1.2.6.0と成っているのにWhy?、どうも良く分からないなー。

2013/1/11(金) 18:05

versionを上げました。




 

コメント (7)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

USBASPLoader(2)

2013年01月08日 | 日記

http://www.obdev.at/products/vusb/usbasploader.html にあるUSBASPLoaderをATmega1284Pに移植してみましたが、うまく動作しない(USBとしてPCが認識してくれません)為、オリジナルに立ち返りATmega168Pでやってみました。

結果は、やはりUSBとして認識されません。色々やって分かったことをまとめてみました。

1.reset swが必要。

boot pinをショート(PORTD7=GND)にした状態でresetを押すことでUSBとして認識されます。

2.ユーザプログラムの書き込みは avrdude-5.11.1を使います。

DOSプロンプトで

I:\avrdude-5.11.1-bin>avrdude -c usbasp -P usb -p m168 -U flash:w:m168_led_blink.hex

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9406
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "m168_led_blink.hex"
avrdude: input file m168_led_blink.hex auto detected as Intel Hex
avrdude: writing flash (218 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 218 bytes of flash written
avrdude: verifying flash memory against m168_led_blink.hex:
avrdude: load data flash data from input file m168_led_blink.hex:
avrdude: input file m168_led_blink.hex auto detected as Intel Hex
avrdude: input file m168_led_blink.hex contains 218 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 218 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

3.書き込みが終わると直ぐにLEDが点滅を始めます。つまり、boot modeから抜け出ている事になります。

再びbootに入るには boot pinをショートしてresetを押しますとLEDの点滅停止してboot modeになります。

後は項目2.0を再び行えばユーザプログラムを書き込めます。

 

Flash 読み出し:

I:\avrdude-5.11.1-bin>avrdude -c usbasp -P usb -p m168 -U flash:r:-:i > dump.hex

:200000000C9434000C9451000C9451000C9451000C9451000C9451000C9451000C94510075
:200020000C9451000C9451000C9451000C9451000C9451000C9451000C9451000C94510038
:200040000C9451000C9451000C9451000C9451000C9451000C9451000C9451000C94510018
:200060000C9451000C94510011241FBECFEFD4E0DEBFCDBF11E0A0E0B1E0EAEDF0E002C086
:2000800005900D92A030B107D9F711E0A0E0B1E001C01D92A030B107E1F70E9453000C946D
:2000A0006B000C94000015B882E084B9299A8FEF99E6A8E181509040A040E1F700C0000067
:2000C00029988FEF99E6A8E181509040A040E1F700C00000EBCFF894FFCFFFFFFFFFFFFFB2
:2000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:20010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF

:2037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
:2037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
:203800005CC000008FC0000073C0000071C000006FC000006DC000006BC0000069C0000029
:2038200067C0000065C0000063C0000061C000005FC000005DC000005BC0000059C0000088
:2038400057C0000055C0000053C0000051C000004FC000004DC000004BC0000049C00000E8
:2038600047C0000045C0000009021200010100803209040000000000000012011001FF003B

:2037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9

ここからboot section
:203800005CC000008FC0000073C0000071C000006FC000006DC000006BC0000069C0000029
:2038200067C0000065C0000063C0000061C000005FC000005DC000005BC0000059C0000088
:2038400057C0000055C0000053C0000051C000004FC000004DC000004BC0000049C00000E8
:2038600047C0000045C0000009021200010100803209040000000000000012011001FF003B
:203880000008C016DC050201010200010E035500530042006100730070001C037700770016
:2038A00077002E00660069007300630068006C002E00640065000403090411241FBECFEF0F

:203F40001C3041F08FEF8093010104C08FEF809301011EE11093000184E199B1947131F47E
:203F60008150D9F71092240110921E0180910601882321F0CA9411F4DA9411F04F9B1CCE9E
:203F8000E5DDF999FECF92BD81BDF89A992780B50895262FF999FECF1FBA92BD81BD20BD58
:183FA0000FB6F894FA9AF99A0FBE01960895F894FFCF5AFF1E94060025
:00000001FF

Fuse 読み出し:
I:\avrdude-5.11.1-bin>avrdude -c usbasp -P usb -p m168 -U fuse:r:-:h

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9406
"fuse" memory type not defined for part "ATMEGA168"

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

ATmega168Pのfuse設定は下記のようになっています。

Fl=0xDF, Fh=0xD6, Ex=0xF8(0x00), Lock=0xFF

Lock bitはbootを保護するためには0xEFに設定するべきでしょう。

 

 

コメント (6)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

エコラジオからストレートラジオへ

2013年01月04日 | 日記

ダイオードだけの(俗に言う所の鉱石ラジオ)エコラジオはバーアンテナでは全く聞こえません。そこで、FET1段その後にTR1段の高周波アンプを付けました。これで何とかかすかに聞こえる様になりました。何故かNHK第2(693KHz)がその中でも一番です。FETのドレインの負荷抵抗は2.2Kオームを使っていますので、これをチョークコイルに変えてもう少し電流を流してみようかと考えています。

多分ワイヤーアンテナを付ければもっと良く聞こえるのではと思います。電界強度が低いのでこの手のラジオは難しいですね。でも何とか聞こえました。打てば良く鳴る(成る)法華の太鼓、もう少しは感度が上がるのでは、、、、、回路変更をやって見ましょう。

2013/1/5(土)

回路図を書きました。FET(2SK241)の負荷は1.2mHのチョークに変更、これで多少感度は上がりました。しかし、ベランダで聴いてみると受信状況が良くなるのか音割れが出ます。これはAGCが無いので仕方がないです、FETのソース抵抗を2.2K位にすれば無くなりますが、その分感度を犠牲にすることになります。選択特性はブロードになります。その分音質は良くなるのでしょうが、感度調整を入れないと音割れで歪んでしまいます。

このラジオはこんなものでは無いかと、、、、、。

 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする