電子工作

2020年12月 1日 (火)

サンタ・トイプー 出窓がクリスマスモードに

出窓も12月になってクリスマス・モードに。
A1_20201201213901

今日はこの子↓を触ってました。
A2_20201201214001

ペコの元の飼い主さんからのプレゼント。
  ペコは11月生まれなんで、プレゼントで
  頂戴しました。
  元気にしておられます。

2015年03月22日:「ペコ」がやってきた
   (今はもう「下間ペコ」で登録しています)

ペコ近影。 6歳の熟女。
A3_20201201214101

で、出窓に置いた「サンタ・トイプー」、これ、ほっぺたの
赤色LEDと胸の緑色LEDが、クリスマスの歌(メロディー)
に合わせて光るんです。

女房からの依頼・・・
 ・電池じゃなく電源で。
 ・ずっとピカピカ光るように。
 ・音はいらない。スピーカーは切ってもて。

この制御、
 ・スイッチオンで音楽が鳴りLEDが点滅。
 ・音楽が1サイクルしたら自動消灯してスタンバイに。
 ・次にスイッチを押したら違う音楽が再生して、LEDは
  違うパターンで点滅。
 ・途中でスイッチ操作したら、中断してスタンバイに。
こんな処理になっています。
スイッチをずっと押してたら、何度も再生繰り返し
だったら簡単だったんですが、そうじゃありません
でした。

そして、「定期的にスイッチ・オンのパルスを入れる」
という手法は、「再生中はスイッチオンで中断処理」に
なってしまってアウト。
ということは、
  「再生が終わったぞ」
  「よし、次のオン・パルスを出すぞ」
を判断しなくちゃなりません。

ということで、あれこれ・・・・
また、まとめますんで、ちょいお待ち。

 

| | コメント (0)

2020年11月18日 (水)

PWM方式D/Aコンバータのローパスフィルタ

2020年11月2日:DCキャリブレータというか±電圧出力回路を
にからんで・・・

ATmega328PのPWMで16bit D/Aコンバータを実現しようと
すると、PWM波をDC電圧に変換するLPFの周波数をずいぶん
低くしなければなりません。
16MHzを源クロックとするとPWM周波数は244Hzに。
リップルを落とそうとすると、24dB/octのフィルタで
3オクターブは欲しい。
となると10Hzくらいの応答に。
フィルタ2段にすればまぁ、応答に関しては改善か。

で、ちょっとネットを探したらこんな記事が見つかりました。

PWM方式DAC用のリップル除去フィルタ - EDN Japan
(2008年09月01日 00時00分 公開)

L_u0o686000000o1vy

実験してみる価値ありかな。

12bitだと、こんなICがあります。
LTC2644:アナデバ
PWMでインターフェース。

Lt1

| | コメント (0)

2020年11月12日 (木)

Arduino UNOでデューティー比測定回路 ケースに入れて完成

2020年8月24日:Arduino PWM波形のデューティー比測定 これで完成形か?
2020年8月18日:Arduino デューティー計測のためのインプットキャプチャータイミング
2020年1月28日:Arduinoから「タイマー0」を取り上げる(ユーザーが使う)
これの続き。

Arduino UNO基板を引っ張り出さなくても、「手軽」に
デューティー比を測定できるようにと、回路をケースに
入れました。

オシロを使えば、周波数や周期も表示してくれるし、
デューテューやパルスのH幅、L幅(時間系の測定機能)
も計ってくれます。

でも、「正確になんぼやねん?」にはちょい桁数不足。
  ※周波数や周期は周波数カウンタを使えば
   良いんですが・・・

せっかくだし、ということで実験していた回路を
ユニバーサル基板に組んで、ケースに入れました。

こんな回路。
Dutyck1
単3電池2本で動かします。

ケースの様子。
11_20201112162301

高い周波数の測定を目指したんじゃなくって、入力クロックの
H区間とL区間を調べようというのが目的。

デューテューは t1/(t1+t2) * 100で「xx.xx%」と表示。
周波数は clk / (t1+t2) で表示。
t1とt2はタイマー1のインプットキャプチャー機能で
数えたT1クロックの数。
T1クロックは16MHz~0.1MHzまでスイッチで選択
できるように。
最大クロック数が16bitで65535。
それ以上は(つまり低い周波数)はカウンターがオーバー
フローしてしまいます。

こんな表示になります。
12_20201112162301
0.1MHzのT1クロックで、t1+t2が50000カウント。
だから周波数は2.00Hz。
デューティーは49955 / 50000 = 99.91%。
  ※H/Lsetというスイッチで、t1とt2を入れ替え
   できるようにしています。
   負論理信号のデューティーを読めるように。

基板の様子。
13_20201112162301

片面基板に配線。

14_20201112162301
ハンダ面への部品取り付け(コネクタとVR)はこの↓応用。
2020年9月26日:手組みするときは片面基板で:1kHz PWM発生回路

液晶の下にATmega328P。
15_20201112162301

入力にいれたシュミット 74HCT14は無くてもok。
  ※ちょいスレッショルドを下げたかったんで。
入力プルアップ抵抗のon/off機能(ジャンパーピンで)
付けておくほうが良いかもしれません。

※スケッチ:ダウンロード - duty_ck1.c
  ファイルタイプを「.ino」ではなく
  「.c」にしています。

| | コメント (1)

2020年11月11日 (水)

センサーICが入ってこない! 旭化成の工場が火災!

えらいこっちゃ。 選んだ石が入ってこない。
その原因が、
旭化成エレクトロニクス 延岡製造所火災

そのまま代替できるデバイスは世の中に無し。
似たようなのを探しても、足配置やインターフェースの
方法が違うし。
困ったぞ!

チップはこれ↓
2019年9月29日:360度グルグル回したろ AK7401
回転角センサーです。
類似品は世の中にあるんですが、AK7401に特化した回路に
なってまして・・・ 困った・・・


| | コメント (0)

2020年10月31日 (土)

Arduino-UNO 12bit×4chアナログ SDカードデータロガー完成形

前記事
2020年10月27日:Arduino-UNO 12bit×4chアナログ データロガーほぼ完成
2020年10月28日:データロガーのサンプリング日時出力形式

最終的にはこんな回路に。
Analog_log1_20201031105101

31_20201031105401

時間をちゃんとしておこうと、クロック発振素子を
セラロックから水晶に換えました。

★スケッチ:ダウンロード - sd_analog4ch1.c
  ファイルタイプを「.c」にしています。
  inoのままだとIDEが起動するんで。

START/STOP/ENTスイッチがちょん押しと長押しを区別。
CYC/↑とMENU/↓がオートリピート処理。

ややこしい操作がA/Dのキャリブレーション。
±2Vレンジと±20Vレンジを独立して調整します。
それぞれのレンジに切り替えてから、
 0V・+2V・-2V  0V・+20V・-20V
の電圧を、同時に4chの入力に与えてENTすると
設定完了に。
アナログ系の調整のため、この設定は必須。
6回操作しなくちゃなりません。
  ※調整値はEEPROMに記憶。

※A/D値から電圧値へのスケーリング処理に
 「浮動小数点にしたmap」を使っています。

2019年4月3日:線形補間って「LERP」って言うんだ!
2020年5月17日:Arduino なんとかして誤用を正したい:A/Dの1/1023とmap関数
2020年5月16日:Arduino 10bit A/D値をmap関数でスケーリングする例

SDカードのインターフェースやA/Dコンバータが無くても
液晶(20文字×4行)とスイッチをつないでもらえれば
試運転(操作の雰囲気)は分かってもらえるかと。

外付け12bitA/Dコンバータとの接続にPC0~3(AD0~3)
を使ってますんで、A/D無しでここを入力にして
adreadすれば、10bitで処理できるように改造可能かと。

これ以上のものとなると、Arduino-UNOではもうチカラ不足。
  ※いろんな制御しようとすると、ポートがとRAMが足りない。
ここらと、プリンターシールド をドッキングできればエエんですが。
しかし、手軽な「SD」ライブラリは捨てがたい。


| | コメント (0)

2020年10月27日 (火)

Arduino-UNO 12bit×4chアナログ データロガーほぼ完成

Arduino-UNO 12bit×4chアナログ データロガー計画中
ざっとカタチになりました。
全体はこんな回路。
Analog_log1

SDカード部はaitendo製の基板。
SDカードスロットDIP化きっと [WV-N09WG]
レベル変換ICでATmega328Pにつないでいます。

A/Dコンバータは12bit 4chのMCP3204
14ピンDIPなんで配線は楽。

4行x20文字の液晶で表示。
11_20201027152801

中身。
12_20201027152801

SDカードに記録する電文フォーマットに悩み中。
現在は、こんな具合。

# 1 Cyc time 2sec  ←設定値の一部をヘッダーに置いて
# 2 Ch1 Range 2V
# 3 Ch2 Range 2V
# 4 Ch3 Range 2V
# 5 Ch4 Range 2V
# 6 Rx chr max 40
# 7 Rx start 0
#LOG on 2sec
00:00:00 0.896 0.896 0.897 0.897 21.23
00:00:02 1.452 1.451 1.451 1.451 21.23
00:00:04 1.504 1.504 1.504 1.503 21.23
00:00:06 0.961 0.961 0.961 0.960 21.24
00:00:08 0.494 0.492 0.493 0.493 21.23
00:00:10 -0.034 -0.034 -0.034 -0.034 21.31
00:00:12 -0.553 -0.553 -0.553 -0.553 21.38
 経過時間 A/D ch1 ch2 ch3 ch4  外部シリアル電文
                     max 40文字

24時間を越えたら「1 00:00:01」と出力。

サンプリング周期は1秒、2秒、5秒、10秒、30秒
1分、2分、5分、10分、30分、1時間の11種類。

長期間の記録を考えると24時間「12:34:56」表記では
不足。
「日」を入れなければなりません。

ところが・・・
グラフ化はGNUPLOTを使います。
しかし、GNUPLOTの日時処理はカレンダーになっています。

例えば、時分秒の前に「日」を付加して「123 01:12:34」という
「日時分秒」という書式は扱えるんですが、これは経過日数が
123ということではなく、年の初めから123日目の日を示すのです。
ですんで、この数値範囲は「1~366日」。
ログ開始からの経過日、「最初は0」で「0 00:00:00」から始めたい。
でも、「0日」は許してもらえません。
最初のデータは「1 00:00:00」にしておかないと怒られます。
そして、1年、閏年もあるんで最大が366日。
これも越えられません。
これに従っていれば、日時のフォーマット変換が簡単に済ませられ
ます。

GNUPLOT、
  set xdata time
  set timefmt "%j %H:%M:%S"
で、「12 12:34:56」と日付+時刻が得られ(秒に換算されて)
ます。

いろんな機能があるGNUPLOT、何か方法はあるんでしょうが、
まだ探し出せてません。


※日時の規約
日と時分秒の間に「T」を入れるかどうか・・・
日時を分ける「T」、調べたらこんな規約があるんですな。
    https://ja.wikipedia.org/wiki/ISO_8601


※おまけでシリアル電文を付加
12bit 4chのA/Dデータに加えて、シリアルで受けた電文を
40文字だけ付加できるようにしています。
他の装置が出すデータをシリアルで受けて、SDカードに
同時に記憶しておこうという魂胆です。
バッファを大きくできないんで、1行40文字で制限してい
ます。
ただし、1行の文字の先頭何文字目までは捨てちゃえという
設定もありますんで、行のうちの必要な所だけを取り込
めるかと。

 

| | コメント (0)

2020年10月15日 (木)

LM2776:チャージポンプ型電圧コンバータ 起動失敗

反転型チャージ・ポンプIC:LM2776 の記事にコメント
しましたが、LM2776を使おう(試作回路への組み込み)
としたところ、うまく起動しないという事態が発生。

目的は電源電圧の+5Vから-5Vを生成。
まっとうなチャージポンプ型降圧回路の使い方です。

11_20201015103201

サンプル回路。
B10
EN入力はVinと接続して、電源供給で即起動するように。

症状は・・・
  Vinが3.0Vなら正常起動。
  3.3Vだとやっとこさ。
  3.5V以上だと起動に失敗。 5.0Vもアウト。。
  Vinの立ち上がりをゆっくりにすると5.0Vでも正常起動。
こんな状態に出くわしたのです。

以前の性能実験ではうまいこと動いていたのです。
  ※以来、このチップは使ってませんでした。
「在庫あるな。よし、使ったろ。」という次第。
そしたら、今回の試作回路ではアウト。

電圧を変えながら様子を見てみました。
   負荷抵抗は軽く22kΩ。
   ch1 Vin入力電圧
   ch2 Vout出力電圧 -Vinが出ます
   ch3 C-端子 負電圧発生元

3.0Vならちゃんと起動。
D76

3.3Vだと、ちょっと遅れながらも起動はします。
D77

ところがこれ以上のVinはダメ。
3.5Vでは正常なマイナス電圧が出てきません。
D75
「C-」信号を見ると、いっぱいパルスを出しているんで
起動しようと頑張っているようですが・・・

ところが、入力電圧の立ち上がりを「ゆっくり」に
すると5.0Vでもこんな具合にOK。
D79

あれこれTIのサイトを探していましたら、こんなアプリケーション
を発見。
 TI Designs
 High Accuracy AC Current Measurement Reference
 Design Using PCB Rogowski Coil Sensor

この回路のマイナス電圧発生にLM2776が使われてました。
EN端子(Hで起動)に遅延回路が入れられています。

B11_20201015104001
電源部にLM2776が使われています。
その詳細。
B12_20201015104101
Vin(ここでは3.3V)をR14とC21で遅延させてEN入力につない
でいます。
遅延時間、ざっと10mS。

期待して、これ、試してみましたが・・・
Vin=5.0Vではやはり起動に失敗。
遅延をもっと大きくしてもうまく行きません。
Vinが上がりきったところでENを徐々に上げても
スロースタートはしないということなんでしょう。

「いきなり電源オン」の回路では解決策無しということかと
LM2776を使う時はどうぞご注意を。

※解決しました。
コメントをご覧ください。
コンデンサの実装場所に注意!っということで。

| | コメント (4)

2020年10月13日 (火)

「MAU109」の出力にコモンモードフィルタを付けてみる

主電源が5Vの回路、そこにOP-AMP駆動用に±15V電源が欲しかった
ので、DC-DCコンバータMAU109を使うことにしました。
アナログ回路なんで、できるだけノイズを減らしたいという
ことで、その出力にコモンモードフィルタを付けてみました。

非絶縁型降圧DC-DCコンバータの出力ノイズ低減あれこれ
これ↑で、コモンモードフィルタでノイズが減るぞを示した
のですが、小さい絶縁型DC-DCコンバータだとどうや?っと
いうのが今回の実験です。

MAU109を±15Vで使った時と、0~+30Vで使った時を
試してみました。

M11_20201013095501

負荷は750Ωの抵抗。 20mAほどが流れます。
コンデンサは1.0uFの積セラ。
耐圧50VのX7R。

先に試したフィルタが、
2016年02月29日:TDKのコモンモードフィルタ
これ、廃番になったんで、手持ちのが少々残っています。
M12_20201013095801

観察に使ったオシロはアジレントのDSO5014A。
帯域は100MHz。

まず、フィルタの前の信号。
B002_20201013095901

フィルタを通ると、ノイズレベルがざっと半分に。
B003

さらに22uFのOSコンを付けると、スパイク状のノイズは
残りますが、うねうねしたリップルが無くなります。
B005_20201013100101

次がTDK製現行品のフィルタ。ACM4520-142

M13_20201013100301

現行品のフィルタでは。
B006

今度は0~+30V出力モードで。
ZJYS51R5をひっくり返してハンダ付け。
M14_20201013100601

+30V出力、フィルタの前
B007
±15V出力での+15V側だけを見るよりノイズは大。

+30V出力、フィルタの後
B008_20201013100701

そして、オシロの垂直帯域幅制限をオン。
(25MHzで帯域制限)
B009_20201013100801

帯域制限すると、スパイク状のノイズは見えなくなりますんで
むちゃ高い周波数のノイズだということがわかるかと。

もう一つ。
入力側にもコモンモードフィルタを入れると、DC-DCコンバータの
付加で主電源側に乗ってしまうノイズが減らせます。

| | コメント (0)

2020年10月 7日 (水)

Zilog『Z80 FAMILY DATA BOOK ,JANUARY 1989』

書架を整理していたら、
  ・Z80のIFF2に関するトラブル体験談
この話↑に出てくる
Zilogの『Z80 FAMILY DATA BOOK, JANUARY 1989
を発掘!

こんな真っ黒な表紙です。
Z11

Z80 Family Questions & Ansewers」というページ。
  (クリックで拡大↓)
Z12

412ページの★印のところがその質問と回答です。
Z13

解決策となるプログラムのサンプルは2つ。
Z14
どうやって、CPUの内部タイミングに起因するハードウェアの
バグを回避するねん?!っというテクニックがスゴいです。

| | コメント (0)

2020年10月 1日 (木)

先が細すぎた・・・ピンセット

「もうちょい先の細いのはどうや?!」っと買ってみたピンセットが
「ホーザンのP-655」

D10

D11

D12

120mm長で重さ14g、耐磁性。
そして先端幅が0.2mm

快適な場合もあるんですが、これが細かった・・・

チップ部品の集合抵抗をはさむと・・・
先端が凹部にはまり込んでしまうことがあり、
 「斜めに持ってハンダ付け位置まで移動」
がやりにくいんです。

D13
   ↑先端が凹部に引っかかってしまい、
   部品をつかむ角度が自由にならない。

工具は使ってみないと分からない・・・

※関連
2010年02月13日:ピンセット
   ここ↑に出てくるれスイス製のが快適。
くっついたらイヤっ! 着磁した安物ピンセット
百均ピンセット4種類
99円ピンセット
工具の消磁

※検索
Udauda Blog3/2019-10-26/チタン・ピンセット購入


| | コメント (0)

より以前の記事一覧