2011年2月2日水曜日

DuemilanoveのAuto reset機能を無効にする

Auto resetの問題

Arduinoでシリアル通信のテストをしていたが、PC側の特定のソフトからだとArduinoと通信できない現象に悩まされた。

ArduinoのSerialライブラリは、hand shakeやparity等の指定もDTR/RTS等の操作も無いシンプルなものだ。デフォルトのライブラリが単純すぎるのかと思い、代替のSoftwareSerialNewSoftSerialを使ってみたが全く結果は変わらなかった。またシリアル変換chipの相性などを疑ってみたが、これもよく分からなかった。そもそも有名なFTDIのchipに大きな問題が在る訳なかろうに。

Portmonで調べた結果、動作するソフトと動作しないソフトとでは通信パラメータ(IOCTL)が一部異なっていたが、結果から言うとDTRの制御に問題があることが分かった。

Diecimila以降のArduinoでは、DTR線を特殊な用途(=auto reset)に使っているのだ。

つまり、DuemilanoveではFT232RからのDTR線が、0.1uFのコンデンサを介してATmegaのRESET端子(pin1)に繋がっており、DTRをgroundに落とすことで、コンデンサの放充電によりpin1へのreset pulseを作り出し、auto resetがかかる仕組みになっているのだという。なお、回路図ではRTS線もR2を介してRESETに繋がっている様に見えるが、NMは"not mounted"の略で、ここは繋がっていない。DiecimilaではRTS/DTRともにNMの表記があるが、R2には何も実装されず(NM)、R3には0.1uFのコンデンサが実装されている、と本家に記載がある。
Note that R2 is not mounted and that R3 has been replaced by a 100 nano-farad capacitor.
Arduinoとうまく通信できないソフトでは、DTR線を独自に制御してしているために、どうやら通信中にArduinoにリセットをかけてしまうらしかった。

基板に変更を加えずにAuto resetを無効にする

この問題は有名らしく、対策はすぐに見つかった。Hardwareに変更を加えても良いが、簡便なのは以下の方法。本家のAutomatic resetの解説に小さく書かれている。
You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line.(RESET端子と5Vの間に、110Ωの抵抗を追加する。)
Playgroundにも解説があって、こちらでは120Ωが推奨されている。実際120Ωの抵抗は見つけにくいから、合成抵抗で110~124Ωにせよと。ピンソケットに刺せるので楽チンだ。
なおRESETと+5Vの間にはまた別に10kの抵抗があるので、これと並列合成で109~122Ω位の値になる。ATmegaのpinあたりの最大電流は40mAだが、109Ωだと5/109*1000=46mA位流れる計算になる。少し流れすぎな気もするが、DTRがgroundに落ちた時にresetがかからなくするためにはこれくらいの電流が必要なんだろう。

この方法を試したところ、無事問題のソフトからも通信できるようになった。

なお、この対策法はSerial変換がFT232Rだけの場合に有効らしく、同様のDTR結線があるUNOでは残念ながら動作しないようだ。(本家には出来ると書いてあり、auto resetは確かに無効に出来るのだが、通信ができない。)

また、auto resetを無効にすると、Playgroundに書いてあるように、programの自動uploadが出来なくなる。手動resetが必要。手順は、
  1. reset buttonを押したままにする。
  2. 基板上のTX/RX LEDから目をそらさずに、
  3. Arduino IDEのUploadボタンをclick。
  4. RX(?) LEDが光ったらすぐにreset buttonから手を離す。
とのことだが、4.で先に光るのはTX LEDの方だ。
また1.を省略し、TX LEDが光ってからすぐにreset buttonを押す方法でもuploadできた。慣れればそれほど面倒ではない。

2011年1月25日火曜日

Arduinoに(今頃)はまる

マイコンといえばPICしか知らなかったが、今頃になってArduinoなるものを知り、はまってしまった。PICにも「マイコン評価ボード」等というものが無数に販売されているが、ソフトウェア(IDE)とセットでここまで完成度が高くpackagingされたものを知らない。

まだ殆ど使っていないんだけども、本家とclonesを入手できるだけ入手したので、ここに貼ってコメントしてみる。主に基板についての感想のみ。

Arduino UNO
まず本家から。完成品である。MPUはATmega328P。先代のDuemilanoveと違うのは、USB-Serial変換がFTDIのchipではなくAtmelのMPU chipに独自のfirmwareを組み込んだものになったことくらい?その他crystalを含め部品が小型化され、基板上にスカスカ感がある。UNOは来るべきArduino IDE version 1.0を意識しているという。裏面のItalyの地図はDuemilanoveに比べて小さくなってしまった。

Arduino Duemilanove
UNOの先代、Arduinoの2009 version。USB-Serial変換にFTDIのFT232RL (SSOP)を使用、本品には多数のclonesがある。ATmega168P版と後発の328P版があるらしい。

Japanino(大人の科学)
学研「大人の科学」Vol.27(2010年5月)の付録。雑誌共 3,360円。完成品だというのは自作派には物足りないが、読者層を考えると妥当だろう。雑誌の価格も妥当。Duemilanoveと違うところはいろいろあるが、まずUSB-Serial変換にSilicon Labsのchipが使われていること。MPUはATmega168のQFP版。USB connectorがA typeなので、図のようにcableなしにずぼらに接続できる。

eJackino(CQ出版社、エレキジャック)
ここからが自作~キット品。基板は、わざわざ解説付きの本を2,400円で買って入手しなければならないが、自作の楽しみが付いてくると思うと安いものだ。これに部品代を加えると、軽く本家Arduinoの価格を超える。Duemilanove互換品。しかし私は、このeJackinoの赤いガラス基板と搭載されたthrough holeの電子部品の組み合わせがとても美しいと思う。見た目では一番気に入っている。工作もとても簡単だ。なお、オマケにArduino Mini相当(USB変換IFや電源回路なし)の小基板が2つ付いている。その点を考えるとやはりお得か。

AE-ATmega(秋月電子)
出ました、秋月のArduino clone。AEはAkizuki Electronicsの略か。eJackinoとほとんど同じものです。Duemilanove互換品。工作もとても簡単。電解コンデンサだけはshieldと干渉しないような背の低い物が秋月には売ってませんので千石で入手する必要があります。高さ5mmの小型電解というやつです。東信工業UTCX(20円)またはニチコンMW(30円)。東信工業は100μF(16V)がオンラインショップには出ていませんが、店頭にはありました。電解コンについては、eJackinoも同様です。
秋月のHPにはパーツセットも現在準備中との記載がありますが、今のところ発売された形跡はありません。思うに、本家と比べて割安感の出せる価格設定が難しいのではないか?基板 150円、ATmega MPU 250円、USB-Serial変換module 950円、これだけで 1,350円。あとは大した物は無いから、〆て1,800円くらいかなあ。

(追記 H23.2.22)秋月電子からついに発売されました。言うなら、AkiduinoAkizukino2,100円。MPUは168P(200円)の方です。20MHz水晶発振子がオマケに付いている。2,000円を切ると嬉しかったけど、売れ行きにより後で価格改定されることを期待。AE-UM232R(Serial変換module)用のソケットは付属無しなので、そのままだと直付けになる。moduleを使い回したい人はIC socketを買おう。(shieldに干渉しやすくはなる。)

Arduino Duemilanove Modoki(工作室売店)
あまり知名度は高くないのかもしれませんが、良質のキットを儲けなしの値段で頒布されている工作室売店さんから出ているDuemilanove互換キットです。2,300円。これは正直製作が一番難しかった。というのは、SSOP、0.65mm pitchのFT232RLを自分で半田付けしなくてはならないからです。小生は表面実装ICの半田付け初体験でした。下手にこて先でpinをこすって曲げてしまい、隣のpinとショートさせて往生しましたが、何とかカッターの先で修正しました。電子工作初心者には向いていないかもです。オリジナルの状態ではregulatorがshieldと干渉しますが、外向きに折り曲げれば良いでしょう。

Freeduino(NKC Electronics)

国産clonesばかり紹介してきましたが、海外モノも作ってみました。このFreeduinoはCreative Commons Licenseによるopen sourceな基板designで、いろいろな種類が在る。その中の元祖であるNKC Electronics製のを入手して作ってみた。黄色の基板がunique。Serial変換はFT232RL chipで、表面実装済み。非常にstandardなDuemilanove clone。基板はcompactで、角が丸くしてあります。

2011年1月13日木曜日

YAMAHA ヘッドセット CM500 ★★☆☆☆

YAMAHAブランドのこのヘッドセット、日本では売られていないが、評判良いみたいだったので、購入してみた。USから$44+送料。
しかし、かなり期待外れ。プラスチックの安っぽい造りのいわゆるPC用ヘッドセット(Skype等用)だった。YAMAHAだからもっとしっかりした造りを期待したのだが。スペックはこちら

マイクはエレクトレット・コンデンサ・マイクなので、ファントム電圧を印加しなければだめ。PCのマイク端子には通常1.5~3Vくらいの電圧がかかっているので、PCで使う際には問題ないが、無線機の場合は、ICOM以外はファントム電圧はかかっていないはず。

ゲインもPCで使うときは十分あるように思ったが、無線機に繋ぐ場合はプリアンプがなぜか必要だった。結局単体では使えず、プリアンプを挟んでファントム電圧を供給する形になりそうだ。

ヘッドホンの音質は2,000円クラスだと思う。無線で使うには不自由無いといえばそうだが、もう少しagingして音質の改善に期待してみよう。

2011年1月12日水曜日

ACライン・コモンモード・フィルタの製作

注文していたFT-240(#43材)が届いたので、あちこちのホームページで紹介されている電源コード用のコモンモード・フィルタを作ってみた。
変形Bifiler巻き(W1JR巻きと言うらしい)を11回×2。15回というのが多いが、巻けなかった。
また、電源ライン用ではキャンセル巻きで紹介されているのがほとんどだった。キャンセル巻きでなければいけないのかはよく分からない。キャンセル巻きは、電源コードの「皮」を剥く作業が面倒だし、線間の浮遊容量が問題になるとかどうとか記載されているページがあったので、Bifilerにした。
さて効果はどうでしょう?コモンモード電流を測ったりすれば良いんだろうけど。

2011年1月10日月曜日

ARRL RTTY Roundup @JG1ZUY

RTTYのコンテストに真面目にSOで参加するのはほとんど始めての体験。
N1MM/MMTTY+PCインターフェース(テクニカルシャック DIF-3)+IC-756Pro3で参加する目論見だったが、どうもPro3でうまくFSK動作が出来ず、断念して予備機のTS-50(AFSK)で参戦した。

しかし、後で考えればノイズ対策が不十分だったせいか、復号率がとても悪く、AGN?ばかり送信する始末で、ペース上がらず。ミスコピー率も高かったと思われる。

コンテスト中に何度もセッティングの試行錯誤をして、USB-COMケーブルの相性問題(追記参照)などがあることが判明。何とか後半の数時間だけはPro3、FSKで運用が出来た。しかしそれでも復号率が悪く、Pro3内蔵のデコーダの方がはるかに優れていた。

ちなみにダメだったのはByteRunnerのこの製品。
http://www.byterunner.com/byterunner/product_name=USB-2COM
秋月のUSB-COMケーブルでは大丈夫だった。

またこれもUSB-COMケーブルの相性(追記参照)だと思うが、FSK送信は結局MMVARIでは出来たが、MMTTYでは出来なかった。

次回までにセッティングの研究をしよう。

ARRL RTTY Roundup, SOHP
Band QSO St/Pr Cty
------------------
80    14
40   164
20   101
15   144
10     0
------------------
     423    22  42 = 26,226 pts
SH5分析 http://sh5.jg1vgx.net/2011/2011_arrl-rtty_jg1zuy/


(追記)後で分かったことだが、COM-TxDポートでのFSKキーイングはUSB-COMケーブルでは動作保証されておらず、正しくはExtFSKというツールを用いなければならないのだった。偶々N1MM Loggerは、MMVARIにはデフォルトでExtFSKに対応している(N1MMフォルダにEXTFSK1.FSK、EXTFSK2.FSKというDLL相当ファイルがある)。MMVARIのExtFSK動作はこのようにN1MM側で設定できるが、MMTTYのExtFSK動作はMMTTYアプリ側で設定しなければならないとのこと。(N1MM Helpより)

2011年1月9日日曜日

ダイソー 折りたたみスコップ @1200円 ★★★★☆

ダイソーで面白い物を見つけた。

折りたためる携帯スコップ。山道によく車で出かけるので、不意の崩落や落石に遭遇した時重宝しそうだ。即購入。

使用時展開する。

折りたたむとこんなにコンパクトに。

携帯用バッグ付。

2011年1月8日土曜日

COMET コモン・モード対応ロー・パス・フィルタ LPF30L ★★★☆☆

耐入力 150W (CW)
周波数 1.3~30MHz

中身は、
左下ユニットがLPF、コモン・モード・フィルタはおそらくFT-140に14回巻きだ。