免責事項

注意、免責事項について
・高電圧、大電流その他高エネルギを扱う実験を行う際にはくれぐれも安全に配慮し、細心の注意を払って行うようにしてください。
・当ブログの記事を参考にして発生した損害についてFEL研究室はいかなる責任も負えませんでご了承ください。
・当ブログに掲示している画像、動画及び文書の著作権は放棄しておりませんので、転載等の際はご一報していただくようにお願いします。
・何かありましたらkkt_322[at]yahoo.co.jp([at]を@に変えてください)までご連絡ください。

2016年12月13日火曜日

ホットなIH

どうも、KKTです。
最近すっかり寒くなってきました。僕は手袋を購入しました。今年もあと少しですがいつも後半に焦るタイプなのでまだまだ今年の7割くらい残ってる感じありますよね?

僕がIH大好きなのは皆さんご存知と思いますが、先日また作りました。
今回はちょっと幾つか試したいことがあったのでちょっと実験して済ますつもりだったのですが思いの外上手くいってくれたので写真だけ上げておきます。

まず新調したフルブリッジ部分です。
配線が面倒だったのでいつもみたいに生基板で済ませました。素子は2SK1947で耐圧250V、ピーク電流200A、ON抵抗が65mΩのです。強いですね。緑色のコンデンサは僕の好物でもあるTACBで250V475です。入力はAC100Vを想定しているので素子とともに耐圧は問題ありません。左の方についているのはゲートドライブトランスです。贅沢にE22を2つも使っていましました。スイッチング特性はそこそこで、共振時はZCS動作になるのでスイッチング損失は減りますが1500W入力でファン1つ回せば触っていられる程度です。制御部分はまだ作っていなくて簡易的にTL494の回路でボリューム回して手動PLLしてます。

コンデンサはいつものように水に浸してあります。まだこの写真の時は水を循環させていなかったため
時々沸騰してしまいます。これ以降はラジエータで水を冷やすようにしたのでこういったことにはなっていません。

スペーサみたいなのを赤熱させているところです。海外勢のアホみたいに強いIHみたく線香花火にはなりません。出力不足でしょう。

そうこうしているうちにワークコイルも赤熱してきます。事故ってる感じ出てますけど一応想定内です。でも銅管の表面が酸化してパラパラ落ちていくので明らかに細くなっている感じはあります。

と思ったらバチッと焼き切れました。めでたく「たのしいこうさくシリーズ」入りです。

こうなるちょっと前に一度コンセント付近から轟音がしてブレーカが落ちたので見てみると
こうなっていました。危ないのでやめましょう。これでも入力電流は16~18Aくらいだと思います。劣化していたのでしょうか(流しすぎ)。ホントに危ないです。

ワークコイルがご存命だった時の写真ですが一応溶解に成功しています。なんだかんだ言って溶解までこぎつけたのは初めてじゃないでしょうか。嬉しい限りです。

この辺でワークコイルを新調しています。ちゃんと中に水が通るようにしたので発熱の問題は解決です。しかしラジエータで冷やしてもすぐ熱湯になっていますので相当ここでロスがあるみたいです。銅管を太くすれば良いのですが手元に太すぎて巻きにくい奴しかないのでしばらくはこれでいきます。出力もちょっと上げたので線香花火みたいになってきれいです。

なかなか写真で表現しづらいのですが加熱中は本当に液体になって垂れたりどっか転がっていったりするので注意してください。ホントに危ないです。写真のはユニクロのL字金具を加熱した後のものです。支えてた棒と溶着してしまっています。

取り敢えず手元にある金属片を熱くしてみます。

いい感じです。直視できない(しちゃだめ)くらいの光が出ます。使用している回路では電源の平滑を行っていませんのでワークコイルが60Hzで激しく振動します。それでやかましいのでティッシュで銅管を包んでビンに当たってうるさくないようにしています。中水通しているので写真の状態でもワークコイルは触れる温度です。当然ですが動作中のコイル両端はかなり電圧が高いので注意しましょう。僕も出力弱い時にうっかり触ってビリっと来て焦りました。ホントに危ないです。

実際はもっと流動している感じでおもしろいのですがあまり伝わりませんね。あんまりやると金属が垂れて銅管がショートして共振からずれて暖かくなくなります。回路によっては致命的なダメージが入ることもあるのでコイルは横置きの方が良いですね。危ないです。

加熱後はこんな感じになりました。溶けた部分はボロボロになってしまっています。変性してしまっているようです。僕もこうなりたくはありませんね。

ちょっと変わった溶け方をする奴もおります。サイズはM12です。冷やし方にもよりそうです。

回路についてはまた別の記事で動画とともにお送りする予定なのでよろしくお願いします。

Web拍手反応
> よしよし
> ピトッ
クゥーン…

> 来る度にどこかしら変わっててすこ
落ち着きがないとも言う
暇だといじりたくなるものよね

> そのアイコン描いたのなかたくんじゃなくてわいやで
> 監督はなかたくんやで
誰?
なかたくんの監督の元で描いたってことなんですかね…。なかたくんちゃんと差分もいくつか用意してくれたし人望に溢れているよね(記事はあまり書かない)。

それでは、今日はこの辺で。

Web拍手
http://clap.webclap.com/clap.php?id=fellabo

2016年12月10日土曜日

キセノン管連続点灯のお話

どうも、KKTです。
最近プリント基板を作ろうと思い立ってCADの使い方の練習を始めたのですが、孫にPCをプレゼントされたおじいちゃんみたいになっています。解説ページ通りにボタンを押すだけの作業でもつまづいたりしててこいつ大丈夫かという感じですけど年明けくらいには一度発注してみようと思います。レイアウトしたりはできるようになったら楽しそうですよね。某所では10枚9.90$とかなり安いので作られるようになるとかなり工作の幅が広がりそうです。

今回は題名通りキセノン管の連続点灯の実験をします。
キセノン管とは皆さんご存知の通りカメラのフラッシュなんかに付いている白い明るいランプのことです。中にキセノンが入っていて…光るんですね。あれを使って懐中電灯的な連続発光のランプを作ってみたいと思ったので試してみた次第です。
キセノン管の発光過程ですが、放電管ですから電圧が低い時は絶縁体も同義です。そこにトランス等で高電圧(数kV~)を印加してやると 管内の絶縁が破られてアーク放電が始まります。ここで十分な電流を流してやると白い閃光を放ちます。通常のフラッシュでは、100uF~くらいの電解コンデンサに300Vほどを充電して電源として使用するので瞬間的にかなりたくさん電流が流れて明るく光るんですね。そこでまずは、フラッシュ点灯時の管の端子電圧と電流を測ってみました。
 最近気がついたのですが、我が家のオシロはどうやらストレージスコープモードにするとADCの都合かきっかり5div以上の信号はクリップして5divに張り付いてしまうようです。今回の測定ではあまり関係ありませんでしたが注意が必要ですというお話でした。
で上のキャプチャですが図中に記載したように電圧と電流を測定しました。管電圧が下がり始めている点がキセノン管にトリガを掛けて点灯を開始した点です。管電流が急峻に立ち上がってコンデンサの電荷が使用され管電圧は徐々に下がっていくとともに管電流も下がっています。注目したいのが暫く経った後の管電圧です。管電圧が一定値(実測20~30V程度)に収束しているため、この電圧は、管内のアーク放電を維持できなくなっている電圧と考えられます。ここで電流波形を見ると当然放電終了後は電流0ですね。電流波形はピーク付近は無視してかなり高い倍率で見てるので0付近の電流値の変化は図では徐々に変化しているように見えますが実際はかなり急峻に変化しているはずです。ですのでキセノン管には数十Vの放電終止電圧があって、一度放電が開始してしまえば流す電流によって明るさ、端子電圧が変化すると言ったところでしょうか。
ということで、安定して駆動するには定電圧方式より定電流方式ということになります。ものすごく高電圧まで昇圧できる定電流回路があればトリガ→定電流制御にできますが設計が厳しすぎるのでトリガは別にして適当な定電流回路を組んでみます。

 結論から言うと光りました。回路的には、200V最大出力くらいの定電流回路+使い捨てカメラのトリガ回路部分だけという感じです。
問題点
・暗い
・定電流回路の発熱が多い
・キセノン管の発熱も多い
ダメでした。連続点灯向いてないです。写真では分かりにくいですが糸のような放電がフラフラ揺れているだけで全然明るくないです。また、直流点灯なので電極が片減りして寿命もかなり短いと思います。

当初の予想では放電終止電圧分だけ電源電圧を用意すればトリガさへ掛けてやれば光りだすだろうと思っていたのですが、放電終止電圧の4倍以上の100Vを管両端に掛けてトリガを掛けても一向に放電開始しませんでした。上図のように連続的な放電に移行したのは徐々に電圧を上げていき180V印加時でした。管内部のアーク放電には開始と立ち消えでヒステリシスみたいのがあるようです。定電流回路のインピーダンスが高かったのでトリガ開始時に端子電圧が一時的に下がってしまったというのもあるかもしれません。温度とも関係がありそうです。
また、管電圧を測りながら管電流を変化させてみたところ、不安定ながら相関が見られました。最初の予想と逆なのですが管電流を下げるほど管電圧は上がっているように思いました。管電流は上の図で70mAくらいで管電圧は50Vくらいですが、100mAくらいまで上げると40V付近をうろつくようになったような気がします。あまり正確に測ってないのでなんともですけど。
管の温度上昇ですが、やはり平均投入電力は3Wとというところでしょうか。強制空冷したり端子に銅板とかで放熱器を足せばもう少し投入できる気もしますが連続駆動での明るさは大したこと無いようです。検索してみると人間の見た目の明るさ的にもパルス点灯させた方がマシのようですね。
電極付近は過熱か少しオレンジ色の光も見えます。

ちなみにもっと電流を増やしていくと普通のフラッシュの閃光みたいに光りましたが2秒くらいで電極のハンダが溶け落ちてしまいました。

キセノン管自体はまだ生きているようです。
キセノン管で明るい光源が欲しい時は何個か並べてパルス発光させるのが手っ取り早そうです。たぶんですが今回のような低電流での点灯では大電流時に比べて遥かに明るさが低下してしまっているようなので、同じ電力でも大電流短時間のパルスにしたほうが見かけの明るさも上だと思いました。

やる気があれば放熱強化してもうちょっと明るさ稼げないかやってみようと思います。
結局今回も次回予告と異なってしまいしたね。すいません。

Web拍手反応
> はやおきしちゃった
よかったね。この時期は布団好き過ぎて目覚まし聞こえへん…。

> あっ!
だったらコー◯ンだったらコーナ◯、◯ーナンだったらコ◯ナンだー!

> >以下のメッセージが送信されました。
>ほんとかなぁ〜??
されてるよ。
あと最近Web拍手のメッセージ送るとこにレス(返信)不要とお名前入力欄とURL入力欄設けたので必要であれば使ってみてくださいな。さっそくレス不要で1件届いていました。

> アドッ!
無限アドは存在しない…無限アドは存在しない…

> https://3.bp.blogspot.com/-DITVFWLv52o/VrYlbzdz1EI/AAAAAAAAAio/rSNWBPbdEdA/s148/CZZsSwcUAAA0B8x.jpg
これ
ワシのBloggerのアイコンなんですけど、なかたくんが書いてくれた奴です。感謝しています。FELラボのロゴとかも作って欲しいよね。

> ピヨピヨ
> わい!
> ポッ
> いいね!
> ヒャッハー
> だいすき!
> ゴリゴリ(ゴリラの鳴き声)
いつも拍手とメッセージありがとうございます。なかたくんはめったに書きませんがこうして更新する原動力となっていますよ。

> なかたん記事は?
これ毎日聞かせてあげたい

> あと1000文字。
> あと992文字。
「。」入れなかったら8文字だから合ってたよ

それでは、今日はこの辺で。

Web拍手
http://clap.webclap.com/clap.php?id=fellabo

2016年12月4日日曜日

380Vくらいのチョッパ

どうもKKTです。
しばらく間が空きましたが特にこれと言って変わったことは無いです。
スマートホンのカメラがぶっ壊れてからかなり経つのですが、さっさと修理に出したいところです。記事の写真はデジカメで撮っているのであまり関係は無いですね。

題名の通りAC100Vを整流して、DC380Vくらいを出力する昇圧チョッパを作りました。どちらかと言うと間に合わせ記事みたいなもんなんでギャラリーみたいな感じだと思ってください。
 一枚にまとめてみました。
右下くらいからAC100Vを入れて、右上からDC380Vが出てきます。出力は200Wで設計しました。抵抗負荷で210Wくらいで頭打ちになったので大体設計通りです。意外にノイズフィルタのインダクタとブリッジ整流器が発熱するようですが、まぁ許容内ということにしました。なお疑似PFCにする予定があったので入力コンデンサは小さいのとなっていますが、いまのところPFC機能は無いので入力電流は商用周波数の矩形波みたいになっています。ノイズとかも多いのでなんとかしたいところ。

制御はUC3843という有名な電流モードSW電源制御用ICを使いました。出力電流が±1A取れる上にパルスバイパルスや電源電圧監視等も付いてて(まぁSW電源制御ICなら普通ついてるが)便利です。生基板をリュータで掘って作った疑似プリント基板なので汚いですが配線は楽ですね。

出力整流用のファストリカバリダイオードです。ブーストダイオードと言ったりもするようです。発熱は多くても数Wでしょうからベタパターンの放熱で間に合わせました。実際温度上昇は気になりません。出力平滑コンデンサは450V150uFの奴です。固定がイマイチ。

 ブーストインダクタとか言われる奴です。もう1つ巻線が付いているので臨界モードか?と思ったあなた、鋭いですね。でも連続モードです。赤い補助巻線は制御側に供給する電源用の巻線です。一番最初電源が投入された瞬間はスイッチングが開始していないので電源はAC100Vを整流したところからブリーダ抵抗を通して始動させ、その後は前述の赤い巻線から電源を得ます。ブリーダ抵抗と制御側のコンデンサの値がイマイチなようで電源投入時は「ジッジッ…ジーーー」と少し充電、放電を数回繰り返してから始動します。
定格出力時の効率はそんなに悪く無さそうです。MOSFET用のヒートシンクも触っていられる程度でコイルの発熱も似たような感じです。

内容の薄い記事でしたが、次回はこれと降圧チョッパを組み合わせた超高圧水銀灯のバラストかAVRの記事かになると思います。
お気づきになられた方もいらっしゃるかと思いますが、右上の方に簡易アンケートみたいなのを設けておりました。掛ける言葉が無い方が大半でしたので今まで通りでいこうと思います。

Web拍手反応
>まるたです に生えてるのは…!?
葉っぱのつもりなんですけど…

>唇にbbクリーム
やっぱりD◯Cじゃねぇか

>マグネトロンってグネとネトが入っててエッティ!
ネトはギリギリわかるとしてグネはわかんないんだよなぁ…

>い、い、い、
五味太郎先生の絵本でありそう
参考


>芋!
焼き芋おいしい季節になりましたね。近所のスーパの焼き芋が値上がりしてました。

>はやお起きた
起床報告すき

>プシュ~
バスライトイヤー

>ペットに飼われてますか?
小学生時代家族ぐるみでハムスタを監禁していたことはありましたね。
飼われてたことは多分無いです。

>こんにちは~
どうも~^^

>(チラチラチラッ!)
(見ても)ええんやで

>KKTって何て読むんですか
KKTはそのままKKTでいいですよ
と思いましたが呼ぶ機会無いと思うのでなんでもいいです

>クワァ…
グワッグワッ

>ぽんぽんいますよ
ぽんぽんもチョッパいっぱい作ってるので是非リンクから「ぽんず製造所」をどうぞ

>電子の電の字も知らない初心者ですが何かつくってみたいです。何かお勧めはありますか?
まずこのサイトは初心者向けでは無いということを念頭に置いて貰って、その上で何かアドバイスになるかと思い、以下を書いてみます。
質問者の方がどれくらいの年齢の方かはわかりませんが、電子やものづくりに興味があるということは、「作ったものが動く喜び」っていうのはご存知かと思います。ですので後はもうご自分の楽しいようにしていただくのが1番と思いますが、何でも始めた時は漠然としてしまうっていうのはよくある話なので僕がどんなふうに工作をしてきたのかというのを紹介しましょう。
僕が最初電気を触り始めたのは小学生くらいのころで、たぶん低学年のころははんだ付けをしらなかったので基板からペンチで部品を引き抜きうまいこと取れたら嬉しいくらいのことばっかしてましたが中~高学年くらいからははんだごてを与えられて色々作っていたのを覚えています。最初はLEDを点灯させて遊ぶくらいで、トランジスタで点滅させたりアンプIC買ってきてスピーカ鳴らしたりをしてたと思います。とにかく作った物が動くっていうのが嬉しくて、図書館で工作本を借りたりしては色々作ってた記憶があります。実はこの辺で結構プログラミングに興味を持ってBASICとかをいじって遊んでたりもしてました。
中学生くらいの時から部品のサイズが大きくなったように思います。例えば大きいコンデンサを買ったりトランスで遊んだりしていまして。この頃からいわゆるパワー系の工作に興味を持ち始めて、ストローにコイル巻いてコイルガン作ったり、テレビのフライバックトランスで放電させて遊んだりしました。最初のテスラも中2くらいの時に作った覚えがあります。
高校からは結構パワー系の要素が強くてしょっちゅうブレーカ落としたり素子飛ばしたりしつつも、授業等で今までやってきたことの理論とかがわかるようになってもっとおもしろくなった覚えがあります。
で、今僕は学生なんですけれども、相変わらずパワー系と少しマイコンもいじるようになった程度でしょうか。やることなすことの効率が悪いのでやってた年数の割に技術がないっていうのは内緒です。
結局僕にとって何が面白かったのかというと、やっぱり何かを思った通りに操るってことかなぁと思いました。電気を野放しにしといても仕方ないので、指定の動作をさせる、条件に合うように調節させる等回路を作ったりプログラムを組んだりするのがおもしろいのでしょうね。
操るということなら、最近はマイコン類がすごく手軽でいいですね。パソコンとArduinoがあればもはやはんだ付けなどしなくとも電気に思い通りの動作をさせることができますね。探せばArudinoでもすごいことしてる人はいっぱいいるので決して入門用ということだけではなく、やりこんでいけば素晴らしい技術力になると思います。僕だったらArudinoと液晶とLEDとかでも何時間も遊んでしまうので入門される方にも適していると思います。
それとも、もっと直接ハードに電気を操りたいというならロジックICとかを使ってみるのが良いのではないでいしょうか。アナログ系でしたら秋月などで売られているキットを作ってみるのも良いと思います。あくまで僕個人の考えですが回路において個々の部品(コイルコンデンサ抵抗トランジスタとか)をどれくらいよく知っているかが非常に重要だと思うので少ない部品の回路でも作りながら理解していかれれば技術力になると思います。
話が少し逸れましたが、何をつくったらいいかという問に対しては、 初心者さんということでしたら計測器等も入手が難しいと思うので、結果がわかりやすい(LEDが光る、数字が表示される、音が出る、モータが動くetc...)ものをオススメしておきます。
…と本に書いてるテンプレ的なことを偉そうに書きましたが、末永くものづくりを楽しまれることを願っております。
また何かあればお気軽にどうぞ。

Web拍手
http://clap.webclap.com/clap.php?id=fellabo

2016年11月18日金曜日

I2C機能が無いAVRで秋月のLCDを動かす

KKTです…。まさかの連続更新です。
最近マイコンいじりたい欲が出てきているので今回もAVRの記事です。
毎度毎度次回予告から外れているのですが、今回は予告通りI2Cと液晶の記事を書きます。

急にLCDがいじりたくなったのですが、僕がよく使うATtiny13AではI2Cの液晶以外はピン数の関係で接続できません。しかし、ATtiny13AにはI2C機能はありません。
ということで、まずI2Cの仕組みを理解してから、アセンブラで同じ機能を実装することにします。I2Cの説明はggればいくらでも出てくるので割愛しまして、具体的にマイコンにやらせることをメモ的に書いていきます。使用したのは秋月のこの液晶です。

・ピンの設定
I2Cにはマスタとスレーブなるものがありまして、マスタが通信を統括して、スレーブはそれに従うというルールがあります。データの送受信はマスタスレーブ無関係ですので、マスタがデータを読みたいと言えばスレーブは送信を開始しますし、マスタがこれを読めと言えばスレーブはデータを受信します。
I2Cにはクロスストレッチなるものが存在していて、本来通信は全てマスタの言う通りに進めないといけないところ、どうしてもスレーブが忙しい時や送受信データを処理している時には、スレーブがクロックをLowレベルに固定してマスタを待たせることができるという機能です。
ということは、I2Cの信号ラインはLowレベルかHiインピーダンスの二通りということになります。AVRのピン設定では、Lowは出力ピンモードで、Hiインピーダンスは入力ピンモードにすればそれぞれ設定可能です。要はオープンコレクタ/ドレインみたいになれば良いということです。以下Hiインピーダンス状態をHi、LowはそのままLowと記述します。

・スタートコンディション
まずI2Cの信号ラインは何も無い時はクロック、データともHiで待機します。次にマスタとして通信を開始したいデバイスがデータをLowにしてからクロックをLowにします。
簡単ですね。ちなみにデータをLowにしてからどれくらいの時間待ってからクロックをLowにすれば良いというのは各デバイスのデータシートに書いてあると思います。

・ストップコンディション
スタートコンディション同様通信の終了も同じようなのがあります。今度はクロックをHiにしてからデータをHiにします。
簡単ですね。これに関する時間もデータシートにあると思います。

以上をアセンブラで実装するのはまぁ簡単ですね。I/Oレジスタのbit操作だけでできます。続いてデータ関連の話です。

・スレーブアドレス送信
通信がスタートされたら、まず最初にマスタが誰を相手にするか、というのを送信します。I2Cはマスタに対して複数のスレーブが存在することができますが、同時に通信できるのは1人なのでまず誰と通信するかを指定します。誰を差すのがスレーブアドレスと呼ばれる7bitのデータです。デバイスごとに固有の値が振られていて、これもデータシートに記載されています。そして、実際にデータを送信する時は、この7bitのデータの後に更にもう1bit加えて合計8bitのデータをまず最初に送信します。スレーブアドレスの尻尾に付け足した1bitはマスタが受信するか、送信するかの指定に使用します。RWなどと呼ばれているbitでマスタが送信なら0、マスタが受信なら1を書かれます。
後術しますがこの操作で呼ばれたスレーブは「いますよ」を返します。
上の図ではスレーブアドレスとして「0111110」を、RWのbitは「0」を送信しています(この液晶は読み出しは出来ないようです)。ですからデータはRW→スレーブアドレス0bit→スレーブアドレス1bit…というように下位から順番に送られていいきます。アセンブラの操作では、まずレシスタにスレーブアドレスにRWを加えた8bitデータを入れて、それを左シフトさせて順番にクロックに乗せていくという感じでしょうか。

実際に信号の波形を見てみるとこんな感じになります。
上がデータ、下がクロックです。手書き図同様0x7C(01111100)を送信しています。クロックがHiのときにはデータを変化させてはいけないので(→スタートコンディションになってしまう)注意しましょう。

・Acknowledge
ACK、アク、アクナレッジなどとも呼ばれます。認めるみたいな意味の英単語ですが、このbitはマスタ又はスレーブが発行する「正常にデータを受信しました」のしるしですね。最初スレーブを呼ぶときには「いますよ」のようなものです。実際にどのようにACKを出すのかというと先程の図の続きで見てみましょう。
詳細は省いてますがこんな感じになります。マスタ側はACKを確認するために、第7クロックを出し終えたらデータ線をHiにしておきます。もしスレーブが正常にデータを受信していたら、データ線をLowにし異常ならHiのままにします。よってプルアップのデータバスなのでLowが優先され、正常に受信出来ていていたらLow、異常ならHiということになります。ここでマスタが第8クロック目を立ち上げてACKを読みます。つまりマスタ側は第8クロックを立ち上げてLowなら正常、Hiなら異常とわかるわけです。この動作は8bit(モードによっては10bit)のデータを受信したらマスタ、スレーブ関わらず必ず行われます。実際にACKが返ってきている様子を以下に。
最後のチョンと出ているのがACKですね(ホントは出ない方が良いと思う)。最後のクロックの立ち上がりできちんとLowになっています。スレーブのLowはマイコンのポートほどシンク電流が流せないようで若干電圧が残っていますが許容内ですので問題ありません。最後のクロックの立ち下がりでデータがピョコっと跳ね上がっているのは、スレーブが「もういいかな」と思ってLowをやめたからだと思います。なおACKを確認した後はクロックをLow→データをLowにして待機させましょう。ACKを確認できなかったらこれから送信するデータ等も意味を成さないのでエラー表示するなりなんなりしましょう。実は最初に貼ったオシロのキャプチャと同じのを送信しているのですが、最初のはスレーブを繋がず、こちらはスレーブを繋いで撮影しました。
今回は省きますが、スレーブのプログラミングをする時は、スレーブアドレスと称号して合ってたらACKを出す、間違ってたら出さないというようにすれば良いと思います。その後のデータのやり取りでは、単にクロックを数えてちゃんと8クロック来てたらACKを出すようにすれば良いんじゃ無いかと思います。

・コントロールバイト
ここからは通信するデバイスによりますが、冒頭で書いた秋月のLCD準拠で説明します。LCDに送るデータには実際に表示させる文字データの他に、コントラストの設定値やDRAMアドレスの指定などがあります。これらを単に送るだけでは表示させたら良いのかコントラストの設定値に使えば良いのかわかりませんのでコントロールバイトというのを送ってから、データを送ります。コントロールバイトでは「この次に送るデータが(コマンド/DRAMアドレス/表示させるデータ)ですよ」というのを指定します。データシートを読むと書いてありますが、単一コマンドを送る前は「0x00」、連続コマンドを送る前は「0x80」、データを送る前は「0x40」を送ります。
もう少し詳しく書くと、コントロールバイトの次に送るデータをデータバイトと言って、さらにこのコントールバイトとデータバイトをまとめて「コントロールワード」と呼びます。つまり単一コマンド(=データバイトに書く)を送る場合は、0x00→任意のコマンドとなります。連続して送る場合は、0x80→任意のコマンド→0x80→任意のコマンド→0x80→任意のコマンド→…→0x00→任意のコマンド でおしまいとなります。要はコマンドワードを繰り返すかという感じです。この辺はよく分からなくてちょっと悩みましたね。

・データバイト
8bitのコントールバイトを送信し終わったら次はコマンドや文字データ等のデータビットを送信します。これと言った注意は無いです。

・初期化について
LCDのデータシートを見ると初期化処理は大体載っているのでこの通りすれば問題なく表示できます。しかし、僕がデータシート通りにやったところ、LCDのコントラストが異常に高く画面が■で埋められて文字が読めませんでした。色々いじっているとどうやら「Follower control」の値「6C」を「69」に変更することで解決しました。取り敢えず治りましたがよくわかりません。

他にも機能としてはCGRAMなどがあるのですが、まだやっていないのでよくわかりません。

ソースは縦に長いのでこちらのページに記載しました。興味のある方は御覧ください。
原理がわかれば処理自体は簡単ですので大したことは無いですが、待ち時間とかクッソ適当なのでもし参考にされる場合はご注意ください。あらぬところへジャンプしたり読みにくいですが、バグ等有りましたら報告していただけると助かります。
アセンブラの練習用にプログラム領域にデータ置いたりしてるのでたぶんまた解説記事を書くと思います。なんとなくコメントは書いてありますがあんまり真剣に見ないようお願い致します。

ちなみに上記のソースは実行するとこうなります。

Web拍手反応(もう届いているのか…(うれしい))
>おぱっい
プルンプルン!!

>◯◯たです
どう?


それでは、今日はこの辺で。

http://clap.webclap.com/clap.php?id=fellabo

11/26追記:誤字を修正 参考リンクを貼り忘れていたので貼っておきます。
 I2C通信の使い方:http://www.picfun.com/c15.html

2016年11月17日木曜日

AVR書き込み冶具を作ってみる

KKTと申します。
定期的に更新するのは難しいですね。
続きがあるっぽい記事をかなり放置していますがまた真新しいことを書きます。

今回は題名通りAVRマイコンを使う時の書き込み冶具を作ります。
今までは、ブレッドボードとかとArduinoを適当に配線して書き込んでいましたが、なんとなく取り回しとかが気に食わないのとマイコンを変えるたびに配線をいちいち差し替えないといけないのが面倒なのでZIFソケット(ワンタッチでIC外したりできるやつ↓)
こういう奴です。これで書き込んですぐ外して基板に付けたりできると便利じゃないかと。

で、できたのがこれ。
 一応ボード上で簡単な動作確認ができるように圧電素子スピーカとLED、セラロックと電源ラインくらいは付けてみました。チップによって書き込みに使う端子の場所がバラバラなのでチップによって右の方のコネクタの位置を変えないといけません。6pinのピンヘッダがそうです。上からATtiny13,AT90s2313,ATmega88系となっています。クロックを自分で生成できない子もいるのでセラロックを接続できるようにしています。
お気づきかもわかりませんが、使用しているカラフルなケーブルは8本線が出ているのに対し、ピンヘッダは6pinです。これでは挿し間違いが起きる可能性大です。対策として
コネクタの穴を半田で塞ぎました。これでコネクタの向きも含めて常識的な方向で挿せば動作するという感じになりました。

Arduinoと接続している様子。
そこそこ使いやすかなぁといったところです。

しかし、このボードを作っていざ書き込みテストを行ったところ、全く書き込めません。
どうやらArduinoのICSPピンからちゃんと信号が来ていないようです。
調べていくと、ICSP書き込みする際にターゲットのマイコンのリセット端子はArduinoのディジタル10番ピンに繋がないといけないのですが、Arduino側のリセットに繋がっています。これではいかんのでArduinoを少し改造しました。
PEWで直接10番ピンにバイパスさせます。

元のリセットと繋がったままだとまずいので、パターンもカットします。
最初間違えて手前のパターンをカットしてしまい(カットすべきは奥のピン)焦りましたが大丈夫なようです。

動きました。
使用した青LEDはおずやで分けて頂いたものです。感謝しています。

ついでに、ソフト側も少し使いやすくしてみましょう。
僕は最近までAVRStudioから出てきたhexファイルをコマンドプロンプトからいちいち指定してAVRdudeから書き込んでいたのですが、バッチファイルを使うと幾分楽に書き込めるみたいです。
メモ帳を開いて下のような文字を打って、保存する時拡張子を.batにします。ファイル名はなんでも良いです。

cd %~p1
avrdude -c avrisp -P COM7 -b 19200 -p t13 -U flash:w:%~nx1
pause


赤字にしたところは皆さんお使いのArudinoが繋がっているポート番号、緑字のところはお使いのマイコンの識別子(?)に読み替えてください。mega88ならm88です。
このファイルをデスクトップなり好きなところに置いて、AVRStudioから出てきたhexファイルをドラッグ&ドロップすると接続が正常なら書き込めるはずです。終わったら何か入力するように促されるのでなんでもいいのでキーボードのボタンを押すと終了します。
僕はこれをよく使うマイコンごとに幾つか用意して書き込んでいます。純正の書き込み機を使わないのはやはりこういうとこで手間ですね。

次回(次の記事とは限らない)予告

Web拍手反応
>すこ
おもしろスコープ

>今日誕生日です
>おめでとうございます(脅迫)
なかたくんもワイも誕生日遅いんよね

>ティッシュを被せる→バシュッって致してそう
被せるだ?

>わい!
芋!

>タイトル変わってててててててて
こっそり記事の通し番号ズレてたの直したけどバレちゃってたか…

>ピキッ!
パシュッみたいな音したような気がする

>なかた
なかたでぇ~す
なかたくん記事書かないなぁ

>だれかなぁ〜^^
ペロッ…これは…
クチビル^^

>み て い る ぞ
ジロジロ

>わんわん
わんわんお

>クワーッ!
ショベルカーが威嚇する時そんな音しそう

>ぽんぽんすき
ぽんぽんすき(宣伝)

>マルクス主義で対決?
マルクス思ってたよりも難しそうで困ってる。
なかたくんはどうかなぁ~?

それでは、今日はこの辺で。

http://clap.webclap.com/clap.php?id=fellabo

2016年11月7日月曜日

失敗集 その3

はい。KKTです。
たぶん1番要望が多かった皆さんお待ちかね失敗集です。
あんまり写真撮ってなかったので少なめですね。

いつもの光景です。過電流でお亡くなりになられました。

ま た か
これも過電流だったと思います。

これはATX電源のトランスのコアを取り出そうとした時のですね。
僕は茹でてトランスがまともに分解出来た試しが無いです。
まぁ失敗するだろうなぁと思いながら作業したので失敗とは言い難いかもしれませんね。

これはTACDに電流を流しすぎてしまった時の様子です。
IHの実験をしていたのですが、流れとしては
電流をたくさん流す

熱くなるので濡れティッシュ(ここで割りとがっかりしていた(熱くなることに対して))

ティッシュに水を差しつつ実験

パシュッ(青白い光)

マジか~
という感じです。2シリパラで使っていたのですがこうなるとは思いませんでした。
割りとTACDは信じていたのですが残念です。TACDからしたら信じたらいけるみたいな精神論でいきなり許容オーバの電流流されて壊れたら壊れたで期待ハズレみたいな対応されて…ひどい話です。

Web拍手反応

>さいきんLinuxをはじめて体験しましたがコマンドラインに慣れていないもので言語でした
ワシもXP難民やった頃にUbuntuを使うなどしたがもう何も覚えていない。
ターミナル叩いてるとなんかかっこいいよね。

>うちゅう人田中太郎
僕にもわかる言語でお願いします

>ポンポンBBってご存知ですか!?

>たのしみみ!
マルクス完成するかなぁ~?
ワイは勝つ気まんまんやで

>おやは
は や お

>毎日更新でもええんやで。
>(ええんやで。)
なかたくんと僕が2日に1回更新するだけで実現しそうやけど最初のタイミングミスってずっと2人一緒に2日ごとに投稿してそう(伝わった?)。

>今日誕生日です。お祝いしてください(脅迫)
おめでとうございます。
失敗集で返信してしまってなんかすいません。

>楽しそう
実際楽しい

>なかたくんの筋肉とKKTくんの筋肉どっちが強いかなぁ
カッターマット万力に挟んでそう

>はやおです。
ホントかなぁ~?

それでは、今日はこの辺(へん)で。

http://clap.webclap.com/clap.php?id=fellabo