2009年2月27日

ATiny26専用簡易実験マイコンボード 作成

ATiny26専用簡易実験マイコンボードの作成だ。


いきなり回路図。



仕様的には何らおもしろい部分はないが、
ICソケットの横に、ピンの状態をモニタするためのピンヘッダを
植えてある。

ユニバーサル基板への実装は下記。

上から、


下から、


足付きなのは、よくできた印。


ICソケットの両脇に生えるピンヘッダの列。
これで、このマイコンボードとブレッドボードの接続も容易になる…はず

回路図と違う点は1点。
0.1μFのパスコンは、
回路図上は、ピンヘッダの外側に配置されているが、
パスコンは、ICの電源の可能な限り近くに設置した方がよい。
らしいので、ICソケットの5番、6番ピンのすぐ隣に設置した。

Atiny26を載せるとこんな感じ。



右のスイッチがPOWER、
左はモードスイッチ、Programモードと実行モードの切り替え用。

ユニバーサル基板上をのたくっているのは、エナメル線。
ICソケットとピンヘッダ間は、裸銅線を使用した。
エナメル線の皮膜は、ライターで焼いてみたりもしたが、
いまいちなので、最終的には皮膜はカッターで削り取った。
サンドペーパーよりも確実に皮膜を剥けるし、
剥く位置も確実に調整できるので、ストリッパー購入まで、
しばらくこの方法でエナメル線と付き合っていくことにする。

エナメル線の皮膜剥きが確実になると、
なるほど、この細さで絶縁された銅線は使いやすい。

エナメル線、万歳! だ。

ちなみに、ちゃんとAVRISP mkII経由で、
読み込み、書き込み、実行が出来ていることは確認できた。

さて、ついにナイトライダー風LEDを作ろう。

2009年2月23日

プログラムの書き込み・動作試験

AVR Studioで「AVRマイコン活用ブック」に入っている
LED点滅テストプログラムを入力する。



とても短いプログラムなので、
特に難しい点も無く入力完了。

唯一のインクルードファイルである”avr/io.h”は、
WInAVRをインストールしたフォルダ下に展開されているモノだ。
だが、このファイル自体に定数の定義はない。

 io.h と同じフォルダに、各チップ毎に ***io.h がある。
この***の部分がチップの型番にあたる。

今回はターゲットがATiny26なので、
ti26io.hが実際に展開されるファイルになるだろう。
中身を確認するよ、確かにプログラム中で使っている定数が定義してある。
今後、使える定数という事で、一通り目を通しておくと良さそうだ。

で、ビルド。
なんも考えずに成功。


赤線の部分に build scceeded with in 0 werning…が出力されている。

次は書き込み、
AVRISP mkIIとConnect、Programタブの下での作業となる。

まずは、マイコンの初期化。
「Erase Device」ボタンをクリック。

OK。
設定しておけば、書き込み前に自動でしてくれるらしいが、
今回は手動で行ってみる。

次に、Hexファイルの書き込み。
Buildで作成したHexファイルを指定して、
「Program」ボタンをクリック。


書き込まれたHexファイルを検証。
「Verify」ボタンをクリック。


どちらもOK。

続いてつづいて、動作確認。
マイコンボード上、RESETピンに繋がるのジャンパーを解放して、実行モード。


黒いテスタ棒の先で、横を向いているのは、片側を浮かせたジャンパー。
完全に取り外してもいいのだが、紛失防止のために片側は刺したままにしてある。


電源を投入すれば、PB0、1番ピンが周期的に、
HI と LOW を繰り返しているはず。

実測!
はい。めでたく動作しておりました。
1番ピンとGND間の電圧が、ピコピコと上下しているのが、
アナログテスタで確認出来ました。

針がぶれて見えるのは、周期的に振れているため。

うんうん。
ここまで来ると、ちゃんとLEDを繋いでみたい。
で、LEDを周期点灯させるのなら、是非やっておきたい事がある。

ナイトライダー風LED!
横に並んだLEDを光点が往復するアレ。
アレを作りたい!

というわけで、次なる目標は、ナイトライダーLED!
…ではなく、その前に、この微妙に使いにくいマイコンボードを
もう少し小規模実験に使いやすい形に作り直したいと思う。

2009年2月20日

自作マイコンボード 動作確認 その4

やはり頼りになるのはデータシートだ。

日本語版データシートの「直列プログラミング」の項目に、
ISPでの書き込みの際の結線方法を詳しく書いてある。

それと見比べると、「AVRマイコン活用ブック」の回路図は、何か足りない。

RESET と AVCCピンへの接続がない。
これAVRISP mkIIで読み込みのできない原因はこれじゃないのか? 
と疑問に思い、よ~く見ると、
なんと「AVRマイコン活用ブック」で使っているマイコンは、ATiny26だ。

ナンテコッタ。

ATiny26Lは手元にある無印”ATiny26”の低電圧版だ。
道理で本では単3電池2本で駆動しているはずだ。
”L”は駆動電圧が低い代わりに、動作速度が無印比べて遅い。
だがピン配列やその他のスペックは同様。
AVRの勉強で使う分には、どちらでも構わないと言えば、構わない。
その差異には十分な注意が必要だが…

気を取り直して、データシートを元に足りない結線を追加する。

RESETピンはそのまま短絡するのも怖いので、
ジャンパーでON/OFFできるようにしておく。

改修版のマイコンボードボードがコレ。




で、動作確認。
RESETをジャンパーでGNDに短絡させて、
いざ、AVR Studioを起動!

見事、signeture byteとfuses bitの読み込みに成功!




とりあえず、最初の山は越えた感があるが、どうなんだろぅ。

明日以降は、動作確認のためのLED点灯のためのプログラムの作成を開始する。

2009年2月19日

自作マイコンボード 動作確認 その3

Atiny26のデータシートをダウンロードして中身を確認すると、
怪しい箇所を発見。

ATiny26の動作電圧は4.7~5.5V!
いつぞや、動作電圧は3.3~5.5Vだから、DC電源を3Vモードで動かせば、OK
とか書いたが、どうやらアレは、低電圧番のATiny26Lの何かを勘違いした?
(それでも動作電圧の範囲が間違っているが…)

という事で、この前作ったDC電源の実出力電圧3.6V、6V、15.2Vでは、
動作電圧を供給できない!!

ガーン…

むむむ、DC電源を作り直すか…
それにはちょっと手持ちの部品が足りない。

ジャンクヤードをあさっていると、出所不明のACアダプターを発見。

出力5V 1.2A

これでイイやん。
という事で、5V電源確保。

コネクタ部分を工作して5Vの出力を確認。

多少電圧が高いが、まあ許容範囲内
嗚呼、この前の苦労が…

それでもこれで動いてくれるのなら
 :
 :
ハイ、動きませんでした。

相変わらずのエラーメッセージ。
やっぱりマイコンボードに致命的な何かがあるのかしらん?

2009年2月18日

自作マイコンボード 動作確認 その2

自作マイコンボードの回路確認。



やっぱりありました、未結線箇所。
だめじゃん。

確実に、結線忘れを防ぐ方法は知っている。
1.組もうする回路図を紙に書くする。(印刷も可)
2.ユニバーサル基板上に部品を配置、結線をする。
3.結線箇所に相当する部分を回路図上でマークする。
こうすれば、未結線が一目瞭然、安全だ。

ただ面倒なのでやっていなかったが、そうも言っていられない。

と言うわけで修正。


基盤上部の16番ピンへGNDが接続されていなかった。

再び電源とAVRISP mkIIと接続しテスト。
しかし、結果変わらず…

むぅ、どこがどう悪いのか見当が付かない。

データシートと首っ引きで、調べる必要がありそうだ。

こりゃ時間がかかるぞ…と

2009年2月17日

自作マイコンボード 動作確認 その1

昨日から、DC電源とマイコンボード、AVRISP mkIIを接続し
AVR Studioでfouse bitの読み込みでも出来ないモノかと試行錯誤を続けている。

だがしかし、AVR Studioの
メニュー→Tools→AVR Program→Connect
プログラマの選択画面で、AVRISP mkIIを選択し、Connectボタンおクリック

Device and Signature Byte で 
「ATiny26」を選択。

Proframming Mode and Target SettingのSettingsボタンから、
ISP Clickを設定。
設定値は、「125kHz」
ATiny26の工場出荷時の内部クロックは1MHzらしいので、
250kHz以下なら問題ない様な気がする。

だがしかし、Fouseビットを読み込もうとすると、エラー。
sigunatureを読み込もうとするとエラー。
エラー、えらー、鰓ー。

…くっ。

エラーメッセージ(超適当意訳)によると、

ターゲットがみつかんねーよ、結線見直すか、
ISP Clickをチップの周波数の1/4以下にして出直せ。

らしい。

ISPクロックは、最小値から最大値まで、試したが結果変わらず…
というわけで、マイコンボードの回路を見直す必要がありそうだ。


2009年2月15日

PC側 開発環境 インストール その2

何事も思い込みを持つのはよろしくない。
USBの位置はどうやら関係なかったらしい。

AVRISP mkIIは無事ファームウェアのアップグレードに成功した。

その手順は、
メニュー → Tools → AVRISP mkII upgrade
を直接実行するのではなく。

メニュー → Tools → Program AVR → Connect
を叩く。

そうすると、「ファームウェアのバージョンが最新版じゃないよ」的なメッセージが表示され、
「ついでにアップグレードしようや」と言われるので、迷わずOK。
昨日はエラーメッセージを表示していただけのダイアログで、
「Start Upgrade」ボタンが触れるようになっている。
こいつをクリックすると、プログレスバーが、グイグイ伸びてファームウェアのアップグレードが完了。

めでたしめでたし…ではない。

これは、正規の手順じゃない。
チップへの書き込み機能のオマケみたいなモノなので、
今後もこれでは困るかもしれない。

だが、相変わらず
メニュー → Tools → AVRISP mkII upgrade
を叩いても、「Error:No AVRISP mkII in boot mode found...」と出て、先に進まない。
そもそも、boot modeにならない。

英語のユーザーズガイドを何とか読み解くと、
ユーザーズガイドはhttp://www.atmel.com/
 products->AVR 8bit RISC->Tools And SoftWare ->
 In System Programming-> AVRISP mkII In-System Programmerからダウンロード

boot mode(ユーザーズガイドではUpgrade mode)にするためには、
1)AVRISP mkIIとマイコンボードとの接続を外し、
2)USBを外し、
3)青い半透明のケースをこじ開け、
4)基板上の1-3ピンをショートさせてから、
5)USBを繋ぎ直す
らしい。

早速実践!

が、status LEDは赤いまま…
何度やっても、赤いまま…

ユーザーズガイドをスクロールさせると、1-3ピンをショートさせている絵がある。
ん?
これ1-2ピンじゃないかい?
ユーザーズガイドは落とし穴がいっぱいだ。

と言うことで、さっきの手順を修正
4)基板上の1-2ピンをショートさせ

写真では、LEDが赤なのかオレンジなのか判然としませんが、
赤/オレンジで点滅してます。

はい、これでようやく通常の手順で、ファームウェアのアップグレードが出来ました。

明日以降は、DC電源とマイコンボードを使ってTiny26を弄り始める予定っと。

2009年2月14日

PC側 開発環境 インストール その1

AVRへの書き込みに必要なハードが(一応)そろったので、
PC側のソフトウェア環境を構築する。

我が家の母艦となるPCは古いノートPCなので、もちろんシリアルポートはない。
おまけに、ICU入りした重篤患者並みに各種ケーブルが繋がっているため、
本体のUSBポートにも空きはない、必然的にAVRISP mkIIの接続先はUSBハブとなる。
モノによっては、ハブ経由だと書き込み速度が遅くなるとか、早くなるとかあるらしいが、
今はあまり気にしない方向で…。

で、事前に、
 WinAVR-20081205-install.exe(WinAVR)
 astudio4b623.exe(AVR Studio 4)
をダウンロードしてきたので、
これを順次、PCにインストールする。

順序は WinAVR -> AVR Studio 4。
WinAVRにはGNU gccも含まれているとかいないとか…
ちょっと、びびりながら、インストール開始。
 :
 :
 :
はい、あっけなくインストール完了。

次いでAVR Studio 4のインストール。
こちらは、USBドライバーをUpgradeするよとか、
ちょっと構えてしまうような内容が表示される。

が、対応USB機器の中に、AVRISP mk2の文字を発見。

NEXTをクリックして、後はインストーラの指示通り。

無事、インストール完了。


調子に乗って、AVR Studioを起動してみた。

AVRISP mkIIをUSBに挿す。
ドライバは、AVR Studio 4のインストールフォルダに
"usb"フォルダがあるので、そこを指定して探させる。



でドライバが当たると、右上に緑のLEDが点灯する。

で、ついでにAVRISP mkIIのアップグレードもやっておく。
AVR Studioのメニュー→Tools→AVRISP mkII upgradeを選択。
英文メッセージで警告が出る。
AVRISP mkIIの左下のstatus LEDが赤かオレンジであることを確認しろと言うことらしい。

おっけーオッケー!

アップグレード開始…が、エラー
AVRISP mkIIが見つからないらしい。
む~、ハブ経由がいけないのか…

ちょっと、PC周りを整理せにゃ。






2009年2月13日

マイコンボード作成 その2

いきなりマイコンボード完成。


ピンヘッダの1番ピン部分には、一応サインペンでマーキングをしてある。


裏、相変わらず半田山盛りだが、DC電源の時よりは
なんぼかマシ。

というわけで、
特に難しいところもなく、「AVRマイコン活用ブック」中の回路図通りに無難に完成。
DC電源作成時にユニバーサル基板上の結線のコツが少しは掴めたか?

強いて難しい点を上げるなら、ICソケットとピンヘッダの半田付け時に、
傾いてしまわないようにするくらいか。

今回は少々強引に半田付けしたが、
次回以降、もう少しやり方を考えたい。

ICソケットは、輪ゴムで基板上に固定しておく、とか。
ピンヘッダも同様。

これで、先日のDC電源と併せて、ハード側の書き込み環境は構築できた(はず)。
明日以降は、ソフトウェア環境の構築を行う。

まだまだ、マイコンチップへの書き込み至るまでは遠そうだ…。



2009年2月11日

DC5V電源 その6 orz

結果から言うと、ジャンパーは白でした。

テスターの0Ω調整を行っていなかったため、
テスター棒をショートさせても40Ωを指していました。

ナンテコッタ。

で、テスターの0Ω調整をほどこして、回路上の抵抗値を測定。
なんだか微妙に設計値とずれている。
そりゃずれた状態で、ぴったりなら調整すればずれるわな。

原因はこのズレなのか?
ちょっと、ショックすぎて、頭が回らない。

とりあえず、3Vモードで、3.6V出力しているから、
マイコンボードを作ったときの書き込み用電圧3.3~5.5Vは確保できた。

…という事にしておこう。
そのうち作り直す方向で。

改良点は
 ・モード切替に、ロータリースイッチの採用
 ・基盤をケースへ格納
 ・DCソケットをねじ込み式へ変更
 ・最適な抵抗器チョイス
 ・レギュレータへの放熱板の取り付け
っと

2009年2月10日

DC5V電源 その5

電源ボード完成!


動作確認。

通電開始。


パイロットランプの点灯が確認出来る。
よしよし。

3Vモード


ジャンパーを”中央”と”上”を短絡して3Vモードに設定。


出力電圧が3.6V付近を指している!


5Vモード

気を取り直して、ジャンパーで”中央”と”左”を短絡して、
5Vモードに設定。


約6V出力してる。

12Vモード
ジャンパーを”中央”と”下”を短絡。



15Vも…

考えられるのはR2側の抵抗値の増加。
でも、計ってみるとR2-3、R2-5、R2-12ともにほぼ設計値。

となると、ジャンパーか!
計測……

×10レンジでの計測なので、40Ω!

こりゃあかん。
それぞれ40Ω増えると。

Vout = Vref( 1 + R2/R1 )

Vref = 1.25V
R1 = 120Ω
R2-3 = 210 + 40
R2-5 = 450 + 40
R2-12 = 1300 + 40

Vout-3 =  3.85V
Vout-5 =  6.35V
Vout-12 = 15.20V

なるほど、納得。
HDDのマスタ・スレイブ設定用のジャンパーには抵抗が入っているのか?
以後、気を付けて使う必要がありそうだ。

というわけで、抵抗の無いジャンパーを用意して、
再度の動作確認は明日。


2009年2月9日

DC5V電源 その4

何とか配線完了。



赤いリード線か+15V入力正極
青いリード線が+3~+12V出力正極
黒いリード線はどちらもGND

数珠つなぎの抵抗は、かなり空間的にもったいない。
そして、裏側。



試行錯誤の結果とはいえ、工作が汚い。
アップで見ると、尚更だ。



かなりへこたれる。

最終的にユニバーサル基板上の結線方法は以下の方法がいいんじゃないか? という結論に達した。
・隣接するランド間は、はんだ山盛りのブリッジで結線。(工作の汚い原因の半分はコレ)
・遠いランド間は、エナメル線で結線する。
・部品と配線は2ランド使って、山盛りブリッジで接続。

どうしても山盛りはんだが美しさを欠く。が、今の工作レベルではこんなモノだろう。
追々、腕を上げてゆきたい。

で、ここまで組み上げてみて課題が一つ。
工作の後半、配線用に用いたエナメル線の皮膜の処理だ。

今は、紙ヤスリで皮膜を削り取っているが、何とも効率が悪い。
おまけに、確実性に欠ける。
実際、今回も作業中に、どうもはんだの乗りが悪いと思ったら、
皮膜の剥ぎ取りが不十分だったようで、絶縁されていた。

UEW(ポリウレタン銅線)を使えば、はんだ付けの熱で皮膜が溶けるので、
皮膜剥ぎの手間がないらしい。
今後の導入を検討しよう。

だが、手元のエナメル線もまだまだ残っているので、
次からは、ライターで炙って皮膜を溶かす方法を試してみよう。

本日は、時間切れで動作テストまで至らなかった。
あすは、動作テストを行って、本来のマイコンボード作成に戻る。

2009年2月6日

DC5V電源 その3

本日は配線と、部品の半田付け。

部品間の接続は、各部品の足を使う。
それでは足りない部分は、線材の皮膜を向いて使用。

む、難しい。
一つのランドの上で無理矢理結線しようとしているのが、悪いのか。
出来上がりが非常に汚い。



隣接するランドに線を集めてはんだ山盛りの方がいいのかもしれない。
とりあえず、コレは習作としてこのまま進める。

結局1/5程度しか結線できていない。

表の部品配置はこんな感じ。


出力電圧を取り出す線はまだ取り付けていない。


2009年2月5日

DC5V電源 その2

脳みそが錆びついているのか、算数ができない。

昨日の計算式で、Vout=5V, R1=100Ωの場合、R2=375Ωだった。
そんな抵抗値を、実現しようと思うとめんどくさい事になる。

なるほど、R1の推奨値が120Ωの理由がよくわかる。

というわけで、R1は120Ωで回路図を再考。
ついでに、せっかく可変型3端子レギュレータなので、
3V、12V電源もジャンパーで切り替えられるようにしてみる。

あとは通電確認用のパイロットランプを付加。

こんな感じ。


で、ユニバーサル基板上に部品を配置してみるが…
手持ちの抵抗が切れのいい数字のモノしかない。
1, 10, 51, 100, 1k, 10k, 47k, 100k
抵抗器が数珠つなぎになってやたらとごてごてしている。

それにしても、これの部品間の結線どうしよう……

呆然としていて、写真を撮り忘れた。

2009年2月4日

DC5V電源 その1

昨日の回路図を元にブレッドボード上に配線



真ん中の黒いモノが3端子レギュレータ。
端子は画像左からAdj・Out・In

画面右の赤・黒の線が17V入力用
画面中央の青い線が5V出力用(GNDはとりあえず共用)

電源をつないで、動作確認。


入力側、50Vレンジで15Vかかっている。
オーケー、おぉけぃ。

では、出力側、10Vレンジで測定…


あれ?
3.4Vしか出力されてない。

どうやら出力電圧を決定するR2を算出する式
Vout = Vref( 1 + R2/R1 ) + Iadj・R2
のIadjを算出する部分が致命的に間違っていたらしい。

ナンテコッタ!

いろいろWebを回ってみると、
「Iadjは微少なので無視してもOK」
の記述を複数発見!

つまり、
Vout = Vref( 1+ R2/R1 )
に収束します。

で、昨日の条件で計算すると。

R2 = 300(再度、大間違い。正解は375Ω

で、ファイナル・アンサー。
というわけで、電源回路は作り直し。

ちなみに、間違ったR2の抵抗値150Ωを上記の式に当てはめると、
計算上の出力電圧は3.125V、誤差はあるが実測値に近い。

抵抗自身の誤差もあるから、こんなもんなのだろうと納得しておく。


2009年2月3日

マイコンボード作成 その1

さっそくマイコンボードの作成に取りかかる。

作成と言っても本に載っている回路をユニバーサル基板上に再現して半田付けするだけ。
必要な部材は一通り揃えてある。

ユニバーサル基板(小さいもの) × 1
ICソケット20ピン × 1
抵抗(4.7kΩ) × 1
セラミックコンデンサ(0.1μF) × 1
2.1mm標準DCジャック × 1
ピンヘッダ2×3 × 1
リード線 × 適量

主立った部品を基板上に配置してみる。



思った以上に小さくまとまった。
これでも本の作例より随分と部品間のクリアランスを取ってある。
あとは配線+半田付けの力作業。
忘れちゃいけない電源の取り付け………っ!

が、ここで問題発生、昔何かの拍子に購入し、今回あてにしていた定圧電源が、
5Vではなく、15Vである事が判明。

AVRISP mkII ユーザーガイドによると、
書き込み時にVCC掛ける電圧は1.8V~5.5Vなので、
5V定圧電源を期待していた身としては寝耳に水。

5V定圧電源自体は秋月電気辺りでお安く手に入るが、いかんせん送料が高い。
件のAVRISP mkIIも秋月通販に依るものだし、そう何度も送料を払うのはもったいない。

というわけで、AVRISP mkIIと共に購入した部品の中から
三端子レギュレータを使って5V電源を作る。


噂の三端子レギュレータ「LM317T」 1.2V~37Vまでの直流電圧が作れる。
で、ネットで調べるとあっさりコレを使った電源回路発見。

だいたいこんな感じ、

ちなみに、回路図作成には、フリーソフトのEScadを使用。
R1にかかる電圧をVref
R1+R2にかかる電圧をVoutとし、
R1に流れる電流をIAdjとすると、
以下の式でVoutを調節するR1,R2を決定する。

Vout = Vref( 1 + R2 / R1 ) + IAdj・R2

今回は出力電圧Voutは5V
R1は手持ちの抵抗器から、100Ωとする。
Vrefはだいたい1.25V掛かるらしいので、計算すると…

R2は150Ωとなる。<-IAdjの計算をミスっています。正しくは2009/2/4の記事で)

だが、LM317Tのメーカ推奨ではR1は120Ωらしいが、手持ちの部品にちょうどのモノはない
この20Ωの差がどれだけ響くのか。
ブレッドボード上に回路を作ってみて様子を見る事にする。

ちなみに、出力側の電解コンデンサも手持ちの部品で何とかするための苦肉の策。

おまけ、2.1mm標準DCジャックのピン配置





2009年2月2日

AVRISP mkII 入手!

思い立ったが吉日。
備忘録と結果メモを兼ねたブログを開設してみる。

先週末、AVRIPS MkIIを入手した。

当面の目標は、AVRを使った電圧ロガーの作成。
ただし、最後に電子回路系の勉強をしてから10年以上の時間が経っているため、単語単語は脳みそに残っているが、その意味はかなりあやふやになっている。
いろいろ遠回りをしながら、作成をしてゆく。

今後の予定
・AVRマイコン活用ブックに掲載されていた簡易マイコンボードを作成
 AVRへのプログラムの書き込みにも使用する。
    噂ではAVRIPS MkIIを使う場合、マイコンボードからチップへの給電が必要だとか…
・PC上開発環境を整備
・AVR Studio 4
・WinAVR
・書き込み/動作テスト用プログラムの作成
・とりあえずLEDでも点灯させてみるか。
 :
 手持ちの電子部品の動作確認をチマチマと…
 :
・USB ISP 書き込み機器の作成
 これがないとAVRからのデータの取得ができないような気がする。
・電圧ロガー作成

以上。