User Tools

Site Tools


Sidebar

製作物
燃焼系
自動車ターボ流用ジェットエンジン
空き缶パルスジェットエンジン

弱電系
半導体式γ線検出器
半導体式α線検出器
AVRプログラム集

強電系
オーディオフライバックトランス
テスラコイル1号機(PWM式)
テスラコイル2号機(DRSSTC)
テスラコイル3号機(DRSSTC)
TIG溶接機
バッテリー溶接機1号機
バッテリー溶接機2号機
HeNeレーザー
ZVSドライバ

化学系
塩化銅エッチング

その他
雑多な物、便利な技など
FETの死亡診断
表面実装部品の取り外し
ICのシリコンダイの取り出し
バッテリー溶接
放射性鉱物探し
工具の消磁
特性不明なコア材の特性調べ
携帯の温度センサーの騙し方



過去のBlog記事一覧

他サイトへのリンク

管理人の連絡先など
管理人のYoutube
管理人のTwitter

start

Phase shift(以下略

前回どこかの偉い人がなんとかしてくれないかなーっと書いたら
なんと金魚氏がなんとかしてくれました!
ありがとうございます!>金魚氏

実際試してみたところ、位相変更時の磁歪音が無くなり、
かなり使い勝手が良くなりました。
ようつべ
公開許可を頂きましたのでここに置いておきます。
これで色々変なものが作れるね。やったねたえちゃん!
Phase_shift_ver_kingyo

2014/06/17 20:39 · Hirosi Suzuki

Software phase shift fullbridge signal generator V2

前回に引き続き、ATmega168Pで動くフェーズシフトフルブリッジ駆動信号生成プログラムを書きました。
動作確認はATmega168Pで行っていますが、レジスタの名前が同じなのでATmega328Pでも動くと思います。

今回は発振周波数を可変にする事をあきらめて、おとなしく周波数固定の発振モードで
プログラムを書きました。(8bit高速PWMモード)
お蔭で位相のシフト幅を0~100%まで確保する事ができました。

しかしこのプログラムでもまだ宿題が残っています。
プログラム中で位相差を作る場所ではタイマー2のTCNT2レジスタの値を直接いじっているのですが、
これをやるとこのマイコンの仕様として、1周期分そのタイマーの比較動作が無視されてしまいます。
これにより、その1周期だけ出力がHighないしLowで固定されてしまいます。
LEDの制御など、適当な用途なら問題ないのですが、トランスを使う用途において
それが発生すると、磁歪によるトランス鳴きが起こります。

マイコンの仕様にぶつかっている以上もうどうしようもない気がするのですが、
どこかの偉い人がなんとかしてくれるかもしれないので公開します。

適当な用途相手であれば問題無く使用できるし、トランスを使う場合でも
磁歪音をどうにかするなどすれば色々と面白い事ができます
(ただしEMPとラインノイズは勘弁な)

PhaseShiftV2.zip

2014/06/15 17:26 · Hirosi Suzuki

Software phase shift fullbridge signal generator

ATmega168Pで動くフェーズシフトフルブリッジ用MOSFET駆動信号の生成プログラムを書きました。
内部のレジスタの名前が一緒なのでATmega328Pでも動くと思いますが、まだ試してません。
それ用のICが安く売ってればこんなん書かなくて良いんだけどね、仕方ないね。

ソフトウェアで無理やり書いた弊害として、シフト幅が狭くなっていて、
11~79%の間でしか波形がシフトできません。
それ以外の区間で波形のシフトをしようとすると波形の周期が倍になったり
予期しない動作をするので、そのような要求が入った場合は弾くようにしてあります。
これは割り込み時間不足によるものなので現状のやり方では多分どうにもならないでしょう。

もっと良いやり方が有るのかもしれないけどとりあえず公開します。
ブラッシュアップしてくれるとうれしいです。

PhaseShift.zip

2014/05/30 18:35 · Hirosi Suzuki

SC1602 LCDで引っかかった事

秋月で売っている2行×16列のLCD SC1602を良く使うんですが、
今日3時間ぐらい引っかかった事が有ったのでメモ。

このLCDのデータシートには、
「4bitモードで使う場合、使用しないピン(DB0~DB3)はGNDに接続せよ」
と書いてあります。
しかし、クソ真面目にこの文章をそのまま解釈して、DB0~DB3をダイレクトに
GNDに接続すると、2行目が映らない(1行目は普通に映る)という事態が発生します。

で、回避方法なんですが、
「使用しないピンは適当な抵抗(100kΩぐらい)を通してGNDに接続する」
これだけです。

分かれば簡単な話なんですがハマると慌てるので、
他の誰かがハマらないように書いておきます。

2014/03/13 23:41 · Hirosi Suzuki

Xmegaでの外部割込み

XmegaはAtmegaやTinyに比べてかなりキメ細かく制御ができるようになっていて、
例えば、割り込みに優先順位が付けられるだとか、
割り込み入力が入った場合にCPUを介在せずにACDを起動できるだとか、
なかなかに気持ちの悪い動作が沢山出来るようになっている。

素晴らしい。
が、しかし。
それが故に設定事項の量が大爆発していて大変な事になっている。

今までであればioのヘッダーファイルを覗けば何となく
何を書いたら良いか分かったのだが、Xmegaで設定事項がカンブリア大爆発を
起こしたお蔭で何をどう書いたら良いのかさっぱりな状態になっている。

しかもAtmelのサイトにサンプルコードが無い。

と言う訳で、今後誰かが自分と同じ穴に落ちないように
動作確認済みのプロジェクトファイルを置いておきます。
とりあえず外部割込みだけだけど、何もないよりはマシでしょう。多分。

INT0割り込み

2014/03/07 23:44 · Hirosi Suzuki

<< Newer entries | Older entries >>

start.txt · Last modified: 2013/02/03 18:01 by hirosi