「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2008年8月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
前月
翌月
Entry Archive
2025年03月
2025年02月
2025年01月
2024年12月
2024年11月
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
セルセタの樹海
寄付した
Raspberry Pi Pico2Wとどいた
Raspberry Pi Pico2W注文した
ミカド行ってきた
イース8解いた
こないだのロボット
ロボット行ってきた
動作確認しておいた
こないだのロボット
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2876)
PIC
(47)
AVR
(341)
Arduino
(448)
Raspberry Pi
(194)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
arduinoを自作してみた。
AVR
/
2008年08月25日
週末、ブレッドボード用のアクセサリーが欲しくなり、雨で
出かけられなかったこともあり、昨日久しぶりにプリント基板
を作ることにしました。
PCBEでパターンを描いてみたら、大きさ的にカメレオン
レジストの10Kサイズ程度(10×7.5cm)に入って
しまう程度だったんですが、最近10Kは値上がりしたこと
もあり、また8月で期限切れのカメレオンレジスト12Kが
1枚あったので、12Kサイズで何か作ろうと画策。
そういえば、arduinoの公式サイトに、arduinoの自作用
EAGLEパターンが公開されていることを思い出し、
見てみました。
diecimilaなどはさすがに両面プリントなのですが、
シリアル版なら片面だけのものも公開されています。
大きさを調べてみると、ブレッドボード用アクセサリの
パターンと合わせて丁度12K分の大きさくらい。
というわけで早速露光、エッチングを行った後、プラカッター
で基板を切り刻み、穴あけ、ハンダ付け…と行って、出来上
がったのがこれ。
裏面はこんな感じ。
さすがカメレオンレジスト!写真だと判り難いと思いますが、
物凄い微小なところまで忠実にプリントされています。
っていうか、このパターンをEAGLEで描いた方々、
凄い! これだけうねうねしていながら、ジャンパーが3本しか
ありません!(EAGLEの自動配線機能の賜物?)
このボード、バージョン3となっていたのですが、
2008年に入ってからモディファイされているらしく、
MEGA168を繋げば最新のファームでちゃんと
動くみたいです。
I/O端子はちゃんと公式サイズになっているので、各種
シールドが使えるはずです。
(USB無いので3.3V出力だけはNCになってますが…)
この後、ネームランドでシール貼って、ピンコネが判るように
しておきました。手作り感満点です。
LEDは4つあります。1個はいわゆるデジタル13番に
繋がっているもので、黄色のLED。
その横の緑と赤はそれぞれ送信/受信。もう一つ下のほうに
ある赤は電源用です。9Vのアダプタを繋ぐと光ります。
CPUへは7805で5Vを作って供給してます。
そうそう。作っていて判ったことが一つ。自動リセットの
こと。
このボード、自動リセットのオン/オフを切り替える
ジャンパソケットが付いていて、ジャンパーをショート
させておくと、アップロードボタンをクリックするだけで
リセットがかかります。
自動リセットはFT232RL登載品しか登載されてないと
ばかり思っていたのですが、実はシリアルコネクタの
4番ピン(DTR信号)を使っていただけなのでした。
(FT2332RLのビットバンモード?を使って
いるのかと思ってました)
しかも、コンデンサで直流成分を切って、立下りのパルスだけを
取り込むような、ちょっと特殊な回路構成?になっています。
(これ、電圧大丈夫なんだろうか?)
メインCPUにはMEGA168でも良いんですが、
工具箱にはMEGA8が大量に死蔵されていたので、
蘇生手術を…。一種のリサイクルか???
ブートローダーを流し込む前に、コンパイル済みの
LEDピコピコをAVRstudioから流し込んでみると、
一応無事動いて居る様子。よかった、よかった。
さてブートローダですが、ここで一悩み…。
arduino-IDEのメニューからAVR-ISPmkⅡ経由でブートローダ
を書こうと思ったんですが、IDEからAVR-ISPmkⅡがなぜか
認識されず。
仕方なく、ブートローダーもAVRstudioから直接
HEXを書き込むことに。HEXファイルを書き込みつつ、
ブートローダサイズを設定(1024ワードに)しておけば
動いちゃうだろう…と簡単に考えていたのですが、
ここでまたいくつか…
(1)速度設定
いつもいつも失敗するのですが、新品を袋から出したばかり
の時は内蔵RC有効、かつシステムクロックの1/8倍
プリスケーラが有効になっています。
また忘れていました。
→クロック設定のフューズを設定して再度書き込みます。
(2)ブートローダ領域の保護と、リセット時の起動アドレス設定
クロックのフューズ設定をしてブートローダのHEXファイル
を一旦書き込めばブートローダが起動出来、IDEから自動
リセットしてアップロードが出来るのですが、2回目からは
自動リセットも効かないし、手動でリセットかけても
アップロードできなくなってしまう事象に。
→BOOTRSTフューズを有効に変更、BLB1ロックビット
を「LPM and SPM prohibited in Boot Section」に設定。
これで、上書きもされず、リセット時はブートローダから
起動されます。
ようやくちゃんと動くようになりました。
で、今まで(MEGA168用)に作ったスケッチを片っ端から
コンパイルしてみたんですが…
ライブラリが既にMEGA8に対応していないものがあります。
動くものもありますが。ピン入力割り込みを使うライブラリは殆ど
全滅です。
「内蔵レジスタの定義タグが見つからない」的なエラー。
MEGA8は第二世代、MEGA168は第三世代。
内蔵レジスタ名称関係はMEGA168が「より拡張性と
ソースの可搬性に富んだ」かたちに変わっているため、
アセンブラソースやgccソースレベルでは結構違ってきて
しまいます。
この手の違いは各種ライブラリ内できちんとタグ切り替えを
しないとならないんですよね。
(例えば、USARTが1個しか登載されていなくても関係する
内蔵レジスタのタグ名称には通番が振られていたりとか。
詳しくはMEGA8、MEGA168の各データシートを
ご参照ください。この件は山根さんの講座で習っていたので、
知識としては知っていたのですが、今ついに現実の壁に…)
まぁ、arduino用に今からMEGA8を好んで使う人も
居ないでしょうから、これから自作する方は是非
MEGA168を使いましょう。
わたし的には実験材料の一つなので、トラブルは大歓迎
なのですが(≧v≦)σ (トラブルメーカーとも言う)
そうそう。同じ割り込み関係でも、タイマー2を使う
「ミリ秒割り込み」機能は使えました。MsTimer2です。
時計と見比べてみましたが、ピッタリ一致。(あたりまえ)
あとアナログ出力(PWM)は使えることは使えるんですが、
ピンによってはMEGA168とはちょっと違った動作します。
蛍ポワンポワンを各ピンでうごかしてみたところ、
デジタル9、10、11ピンはちゃんとポワンポワン
するんですが、デジタル3、5、6は単なる点滅
(デジタル出力?)になっちゃいます。
MEGA8とMEGA168って、PWMの造りって
何か違ってましたっけ?原因不明。
サーボ関係もことごとくコンパイルエラーになったような記憶。
まぁ、回路自体の問題ではなくライブラリ関係の
問題なので、「自分もこの片面arduino自作したいぞ!」と
いう方は是非MEGA168で作ってください。
部品代だけなら、なんだかんだで1500円くらいでしょうか。
(工具やケミカル含まず)
ブートローダとフューズビットを書き込む何らかのツール
(AVR-ISPmkⅡ以外でも)を持っていて、カメレオンレジスト
の扱いにもなれている人なら、数時間でサクッと作れちゃう
と思います。
そうそう。作る上での留意点を3つばかり。
(1)トランジスタの足
回路図に指定されているNPN、PNPの各トランジスタは、
普通日本でよく使われている2SA1015、2SC1815とは
ピン配置が異なります。
なので、こんな風に足を捻じって使う必要があります。
面倒です。
(2)インダクタ
買い置きがあるとばかり思っていた100uHの
インダクタ。どうしても見つからなかったので、
ジャンパー線に置き換えちゃいました。
AVCCに繋がっていて、AD変換の参照電圧を安定化
させるためのものなんですが、一応横にパスコンは
付いてるし、この間買ったreduino-nanoもオプション品
扱いで付いてないのですが、普通にAD変換できている
ので。
なので、無ければジャンパーで代用ってことで…
(3)10uFのコンデンサ
回路図中に出てくる10uFのコンデンサ。公式サイトの
写真では普通の電解コンっぽくみえるんですが、実はこれ
無極性タイプだそうです。シリアルケーブルの無接続状態時
の逆電圧保護のためだそうです。
って、そんな急に言われても困っちゃいます!
工具箱を漁ったら、積層セラコンの10uFが出てきた
ので、これを使うことにしました。
工具箱にそんなモン入ってない!という方は、
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1111539821
ここなどご参照の上、電解コン2つで無極性化してみて
下さい。
ただ、立体配線になっちゃうのと、容量計算の問題がありますが…
(直列つなぎだから、20uFを2つかな?)
それ以外の部品は、型番が異なっていても似たようなものを
適当に取り付けておけば何とかなります。(≧v≦)σ
ちなみに、ブレッドボード用アクセサリっていうのは
CPLD用具、PS2端子(キーボード、マウス)用具など
ですが、その件はまた今度。
(追記)
ブートローダーの件などについて纏めたページを
作りました。↓
http://nekosan0.bake-neko.net/outline_composition.html
ページの下のほうをご覧ください。
コメント (
4
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】「ご飯をおわんに盛り付ける」何と言う?
@goo_blog
【お知らせ】
【PR】プロ直伝・dポイントをザクザクためる術
【PR】安い&大量の「訳あり商品」がヤバい!
【コメント募集中】「ご飯をおわんに盛り付ける」何と言う?
訪問者数に応じてdポイント最大1,000pt当たる!
dポイントが当たる!無料『毎日くじ』