トランジスタ技術

2023年5月 8日 (月)

「漆谷正義」さんとむちゃ接近遭遇していた

2023年5月6日:オペアンプ NJU7062の駆動能力を見る
の記事の中で紹介した「NJU7062」の応用例、
トランジスタ技術2023年6月号
「どっち向きもOK!USB Type-C電圧・電流モニタ」
の著者「漆谷正義」さんをトラ技の目次で検索すると、
私とえらいまぁ接近遭遇しているのが判明しました。

#1 2005年10月
2相パルス発生器,My tools!〈第6回〉,連載,292,1,下間 憲行
ステッピング・モータを使った風力発電機の製作,自然エネルギーの活用にチャレンジ〈第3回〉より大きな電力を取り出すためのTRY,連載,203,6,漆谷 正義

#2 2005年1月
やってはいけない! アナログ回路設計,知らないといつまでたっても性能が出せない,特集,147,17,漆谷 正義/下間 憲行/木島 久男/小宮 浩/鈴木 憲次/浜田 智/国分 太郎

#3 2005年6月
同じ型名なのに内部回路が違う!?,失敗は成功の母〈第3回〉,連載,264,2,下間 憲行
電子回路の性能は配線で決まる,本誌4月号の付録マイコン基板で実験!,特集,108,4,漆谷 正義

#4 2005年9月
ON/OFF機能付きの1~2A出力定電流回路,トラ技サーキット・ライブラリ〈第9回〉,連載,268,4,下間 憲行
充電コントローラの製作,自然エネルギーの活用にチャレンジ〈第2回〉発電機からのエネルギーをフル活用する,製作,199,6,漆谷 正義

#5 2006年月
低抵抗値測定用アダプタ,My tools!〈第10回〉,連載,276,1,下間 憲行
ペルトン水車で水道から電気を作る,自然エネルギーの活用にチャレンジ〈第7回〉 水回りの照明や水位警報器に使える,連載,189,6,漆谷 正義

#6 2007年10月
調光機能付きLEDドライバの製作,AC100Vで白色LED20個を点灯,特集,143,4,下間 憲行
ハイ・パワー/高輝度LED駆動ICの一例,Appendix,特集,147,2,漆谷 正義

#7 2007年5月
部品の摩り替えでトラブル,失敗は成功の母〈第23回〉,連載,274,2,下間 憲行
評価と測定のコモンセンス,開発した回路の性能や機能を正しく評価する,特集,175,10,漆谷 正義

#8 2007年8月
きもだめし用怪音&怪光発生装置の製作,サマー・キャンプに最適!,一般,218,5,下間 憲行
簡易カラー・メータの製作,外付け回路不要のカラー・センサ・モジュールを使った,一般,206,6,漆谷 正義

#9 2010年12月
発電/蓄電/節電/照明デバイスほか,発電デバイスのエネルギの大きさからバッテリの蓄電容量まで,特集,122,18,石井 聡/漆谷 正義/篠塚 政彦/下間 憲行/鈴木 正太郎/堀米 毅/宮崎 仁

#10 2010年2月
研究!ニッケル水素電池の耐久テスト,Appendix1 繰り返し回数が多く放電時間が長いほどダメになる,特集,89,5,下間 憲行
真冬に2日で発芽!LED照明を使った育苗器,エコ時代の自然エネルギ活用日記〈第1回〉,短期連載,163,6,漆谷 正義

#11 2010年6月
バッテリの破壊を防ぐ過放電防止回路,専用電源の追加が不要でシンプル,一般,222,2,下間 憲行
LEDメッセージ・パネル付き水車発電機,エコ時代の自然エネルギ活用日記〈第5回〉,短期連載,185,6,漆谷 正義

#12 2010年7月
ハンディ方形波発生器の製作,くるくる回して楽ちん設定!,一般,193,3,下間 憲行
電源投入と基本動作OK/NGのチェック,評価検討前に確認が必要な測定ポイントと検査項目,特集,116,7,漆谷 正義

#13 2012年3月
第6実験ベンチ 特性変化を自動測定!リピート・テスト・アシスタント,ON/OFFと測定をひたすら繰り返してくれる,特集,102,8,下間 憲行
明るさ検出器の製作実験,撮影感覚でお手軽測定! 輝度分布も取れちゃう,特集,81,6,漆谷 正義

そして、最新号でも接近遭遇していますんで、
発見できただけで14冊。

| | コメント (0)

2023年5月 6日 (土)

オペアンプ NJU7062の駆動能力を見る

2023年4月26日:出窓:鯉のぼりを振れたらというリクエスト
ここでの、小型サーボを使っての駆動実験は失敗。
この波形発生(sin波)に使ったのが
   日清紡マイクロデバイスのNJU7062
秋月扱いで80円。
3~16V電源で低オフセットだし、あれこれ工作に使えるか
と思ったのですが、思わぬ落とし穴が報告されています。
  ・オペアンプNJU7062を使うのは難しい:釣り師のつれづれ日記

なにがアウトなのか・・・出力電流が取れないのです。
  ・アンプを構成したとき、帰還抵抗の値を小さく
   できない。
  ・負荷抵抗が小さいと欲しい出力電圧が出てこない。
と、出力の駆動能力が弱いと、何かと制限が出てきます。

それを確かめてみました。 検証に使った回路は
  ・単電源オペアンプの入出力特性を調べる
    ※この時は「無負荷」でしか調べていません。

そこで、今回は
  LMC6482  ・・・ 秋月での扱い停止
  MCP6022  ・・・ 低オフセット品
  そしてNJU7062
この3つのオペアンプの出力に
 ・GND側に負荷抵抗を入れる。
 ・電源(+5V)側に負荷抵抗を入れる。(プルアップ)
と、負荷抵抗をつないだ時の挙動を調べてみました。

まずはLMC6482MCP6022
   (クリックで拡大↓)
P1_20230506105501
両方とも安心して使えるレベルです。
  ※オフセット電圧が小さいので、黄色線:入力と
   緑色線:出力がほとんど重なっています。

そしてNJU7062
P2_20230506105601

GND側に入れた負荷抵抗、抵抗値が小さくなると
出力レベルがずずずずっと下がってしまい、
  「こりゃあかんわ
状態に。
  33kΩはなんとか。
  10kΩになるともうあかん。
  ※抵抗をプルアップするように入れた時、
   つまりLに引っ張るほうはまだましですが。

NJU7062を使う時は、この特性に注意が必要です。


※追記
11倍の非反転アンプを組んで、帰還抵抗の値を
変えて出力の様子を比較してみました。
Z1
A1は10k・100kで。 A2は1k・10kで11倍増幅。
試したのはLMC6482LM358、そしてNJU7062

こんな結果です。
Amp_11a

LMC6482は頑張ってフルスイング。
LM358は、1k・10kでも10k・100kでも
およそ3.7Vで頭打ちに。
NJU7062は1k・10kだと、2.2Vくらいで
飽和しちゃいます。


※さらに追記
  ・トランジスタ技術2023年6月号
10日発売ですが、年間購読している人には
ゴールデンウィーク中に届いているかと。

今号の特集「作る!わかる!USB Type-C&電源
この第2章に
 「どっち向きもOK!USB Type-C電圧・電流モニタ」
という製作記事があります。
この中でNJU7062にが使われていました。

ハイサイド側に入れた電流検出抵抗(0.1Ω)の
電圧ドロップをNJU7062を使った差動アンプ
で10倍増幅して1Aで1Vを得ようという目論見です。

こんな回路。
Za2

差動アンプを構成する4本の抵抗は「1k・10k」の
組み合わせです。
  「ちょっと重いんじゃないか?」
と、「10k・100k」のと比較してみました。

オペアンプの電源は非反転入力側電圧と同じ
になるので、反転入力側の電圧をちょっとだけ
下降させます。

Za1  
電流が流れるか流れないかの、出力「0V」付近
が問題になるので拡大して観察します。

Za3

1k・10kの抵抗だと30mVほどの残留電圧が見えます。
10k・100kだとそれが2mVほどに。
30mVということは測定電流値は約30mA。
基準電圧5Vで10bit分解能のArduino UNOでの
測定ということですので、30mVは6/1024。
0.6%ほどの不感帯が生じることになります。


  ※このトラ技には私の記事も。
   トラ技Jr.コーナ
    回路の通電確認に便利な0.1mA精度
   USB接続電流計の製作
    ※タイトルにUSBという文字が
     入っちゃいましたが、USBとは
     直接の関係はありません。

 

| | コメント (3)

2023年4月14日 (金)

トラ技Jr.のレールスプリッタ回路

トラ技Jr. 2023年春号 に絡んで、「トラ技Jr.」の
バックナンバーを引っ張り出してきて眺めていたら
「レールスプリッタ回路」を発見!

トラ技Jr.2018年秋 通巻35号
J31

こんなレールスプリッタが記されていました。

J32

説明文には
  小容量のアルミ電解コンデンサは1Ω近い
  ESRがあるので、汎用OPアンプとの組み合
  わせなら通常は発振しない
  導電性高分子/セラミックなどの低ERコンデンサ
  は使用できない。

著者は「松村 南」さん。
  トラ技の目次を検索すると、1990年~2000年に
  オーディオやビデオ関連の記事を書かれています。

基準電圧IC TL431 のデータシートを見ると、並列に
入れるコンデンサの値によっては「不安定になるぞ」っ
という注意書きがあります。 (安定動作条件のグラフ)

昔からこのグラフが気になってしかたがないのです。
実際に確かめたことはありませんが、パスコンとして
よく使う0.1uFあたりがいちばん怖そうに描かれています。

値を大きくすると安定するように記されていますが、
電源オン時の起動が遅れ、それが他に影響するかも
しれません。
結局、「発振が怖いから無くても良い」に落ち着き
ます。

こんなことも。
良かれと思って付けたコンデンサが・・・

「通常は発振しない」という文言ではなく、逆に発振する
条件(OPアンプ名とコンデンサの種類、値と負荷の具合)を
提示して欲しいところです。

| | コメント (2)

2023年4月12日 (水)

トラ技Jr. 2023年春号

「学生&新人エンジニアのための」ということで、
学校や25歳以下の新人エンジニアさんに無料で
配布されている冊子です。
  ※巻末には配布先の学校名が記されています。

J11_20230412154301

で、この号に「ほどよし高精度アンプAD620」という
タイトルで私の記事(私の部品箱:2021年11月号)が
再掲されました。
   ※再掲、ありがたや、ありがたや。
    AD620より60Hzノッチフィルタの効きの
    ほうに目が行くかもの記事です。

他の筆者さんの記事を見てますと・・・
ちょっと気になるぞ! というのがこれ。
屈伸体操の号令をかけるホイッスル装置の製作
というタイトルで、トラ技本誌2023年3月号の記事が
元になっています。
まず、3月号の回路図。

J12_20230412154501
それが、トラ技Jr.ではこのように。
J13_20230412154501

「リレーのサージ吸収ダイオードを入れて
 おいたほうが良い」と追記。

しかしまだ気になる点が・・・

(a) このダイオードは要るの?
  無いとどうなる?
  入れると余計ややこしい。
    オフ時(555の出力がL)にベースが浮く?
    誘導を拾っちゃうかも?

(b) LED点滅処理IC OS1CDY3A010を調べると
  電源電圧の最大が5V。
    秋月:LED点滅駆動IC
  回路の電源は電池4本で最大6V。
  ちょっとぉう。

(c) 「BZ」と記号はあるけれど、これは何?
  本文には「電子ブザーの断続に使う」っと記されてますが、
  ブザーの型番が不明。
   ・圧電発音体
   ・マグネチック発音体
   ・発振回路内蔵電子ブザー
  手持ちが無いなら、どれを買えば?

  OS1CDY3A010のデータを見ると、
    Working Current:IF=20mA
    Duty Cycle 20%
  という数字が出ていて、どうやらLEDを高速点滅させて
  電流制御しているような気配。
    点滅周期は型番で1Hz~6.8Hzを選択。
  これで電子ブザー(どのタイプ?)を鳴らすというのは
  正常な使い方なの?
  OS1CDY3A010は持っていないので、追試できずです。



| | コメント (6)

2023年4月10日 (月)

トランジスタ技術2023年5月号 PICマイコンの話

トランジスタ技術2023年5月号に付録の「エンジニア手帳2023」。
これなかなかエエです。
2022年版が207ページだったのが223ページに増量しています。

T11_20230410122101

で、今号の特集の中に出てきたPICマイコンの話。
目次p.81のAppendex5
「根強い人気!PICマイコン・セレクション・ガイド」
として「PIC16F18857」を薦めておられます。

T12_20230410122101

p.85では、
 ●脱・Arduinoにも最適解
  ・・・PIC16F18857は、ATmega328Pと同じ28ピンの
  パッケージで動作速度が速く、周辺機能が豊富な
  点や、扱いやすさにクセがないため非常におすすめ
  できるマイコンです。・・・
との感想を記されています。

しかし・・・ ちょっと待て!

・PIC16F18857もしょせんはPIC16Fアーキテクチャ。
スタックは16レベルしか無い。
PUSH/POP命令も無い。
・クロックは32MHzだけど1命令4クロックなんで
 実質は8MHz動作。
・I/OレジスタやRAMはバンクでの切り替えが必須。
・1バンクあたりのRAMは80バイト区切り。
  RAMそのものの容量が増えても、それをアクセス
  する手間がぁ。

C言語を使えば、これらを気にせずに処理できる
(かもしれないけれど)のでしょうが、アセンブラで
書いて面倒なチップはやはりダメ。

いくら周辺I/O機能が充実しても、チップの命令体系
は昔の「16F84」のままです。
Arduino UNOのATmega328Pもクセがありますが、
PIC16Fとは頭脳の構造が違います。

PIC18Fになると、PUSH/POP命令が使えます。
でも、スタックは31レベルだけ。
「ちょっとなぁ」です。


| | コメント (4)

2023年3月19日 (日)

トラ技の目次検索 『サーミスタ』

サーミスタでの温度測定に役立ちそうなトラ技の目次検索結果です。
「※」の行が私のコメント。
~~~~~~~~~~~~~~~~~~~~~~~
●1982,7,サーミスタ温度センサの応用,,特集,244,10,土屋憲司
 ※実温度との校正手法。
  区間B定数を計算してその値を表に。

●1986,6,サーミスタと温度計,センサ回路設計ノート,連載,423,10,土屋憲司
 ※サーミスタに関する3つの基本公式の解説。
  温度,抵抗,B定数。

●1988,3,センサ回路の設計,白金測温抵抗体/サーミスタを効果的に使うために,特集,408,13,上窪 兼/土屋憲司
 ※サーミスタの抵抗変化を周波数に変換する回路。

●1993,7,温度センサの基本的な使い方,基本的な温度センサ ~サーミスタ,白金測温抵抗体,熱電対~,特集,228,16,松井邦彦
 ※熱放散定数,熱時定数の解説。

●1993,7,サーミスタの使い方と温度コントローラの設計法,サーミスタの使い方から安全な回路の構成法まで,特集,278,10,土屋憲司
 ※温度コントローラへの応用。
  1988年3月号の周波数に変換回路が再登場。

●2003,1,抵抗1本でリニアライズし電圧から温度を直読できる! サーミスタ室温計の製作,作りながら学ぶ初めてのセンサ回路<第1回>,連載,115,6,島田 義人
 ※103ATを使ったアナログ出力温度計回路。
  リニアライズの方法,

●2003,12,温度センサとセンサICの実用知識,熱電対,測温抵抗体,測温用サーミスタ,ワンチップ温度センサICなど,特集,143,16,小川 実吉/幾島 康夫
 ※温度測定ICの一覧。

●2004,7,無調整多点温度計の製作,本誌4月号付録マイコン基板とサーミスタを使った,一般,253,7,北野 優
 ※H8/3694マイコンのADCで4ch入力,
  103AT,103JTサーミスタを使用。
  エクセルでデータテーブルを作る。
    液晶モジュールをR/W制御有の
    4bitモードで使いながら
    DB0~3をGNDにしてる。

●2004,11,センサ・インターフェースの設計,C言語/OS/ICEを使って最先端の開発にチャレンジ 新世紀 マイコン教室〈第6回〉,連載,273,7,北野 優/中林 歩
 ※リニアライズの方法。
  エクセルで折れ線近似。
  回帰分析による手法。

●2009,2,乾電池動作のサーミスタ方式風速計,ノイズ対策のフィルタにDSP機能を活用する,一般,246,8,高野 慶一
 ※2つのサーミスタ(測温用と加熱用)の温度差から風速を推定

●2009,12,サーミスタ活用のコモンセンス,マイコンと組み合わせ使いやすさ向上,一般,176,4,野尻 俊幸
 ※サーミスタの一般的な話。
  電子体温計への応用(ブロック図的解説)。

●2012,7,高精度NTCサーミスタ NCP15XH103F03RC,私の部品箱〈8〉 温度モニタや温度特性の補正に便利! 20年以上愛用,連載,222,1,細田 隆之
 ※A-D入力回路例。

●2012,1,アナログ2 : 計測&センサ,誤差やICの取り扱いでエライ目に遭ったベテランのひと言,特集,82,12,荒木 邦彌/石井 聡/鈴木 正俊/中 幸政/星 聡
 ※3-6 抵抗分圧比をA-D変換するときの基準電圧ICは無駄使い。
  Vref電圧に関係なくサーミスタの抵抗を測定。
  A-Dコンバータの出力コードが1LSB変化するときの
  温度変化量のグラフ。
     (2^N - 1)と間違った式が記されている。

●2015,5,高感度温度センサ「サーミスタ」,研究室で役に立つ!センサ応用回路集〈2〉,連載,163,6,松井 邦彦
 ※誤差を生む自己加熱,熱時定数,公称値のばらつきを解説。

●2020,7,,入門19 サーミスタを利用した温度計測,特集,62,2,小川 敦
 ※簡易リニアライズの方法とその結果。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
※1982年7月号
この記事に載っていた「区間B定数を算出」する
という考え方が面白かった。
「温度・抵抗値表が神様」という温度算出方法に
つながる。
温度・抵抗値表を、計ったサーミスタの抵抗値で
スキャンし、そこから区間B定数を算出。
温度範囲の狭いB定数を使うことで温度計算の
精度が向上。
一般記事で解説されている25℃~85℃という
広い温度範囲(60℃)ではなく、B定数算出の
温度範囲を狭くすることで、ずいぶん誤差が
減らせる。

2021年8月4日:103JTサーミスタ対応温度計 ArduinoとLTC2460を使って

| | コメント (0)

2023年3月 9日 (木)

トラ技の目次で「Arduino」を検索すると

Arduino初体験 が2012年12月。
  「1023 vs 1024」問題 を知るのはずっとあと。

トラ技の目次検索でArduinoが最初に出て
くるのは2012年2月号。
  Ethernetシールド付きArduinoにアップロードの
  ためのライブラリを搭載
  ネットワーク温度&照度計

次が2012年3月号
  頒布カメラのレジスタを設定するUSB書き
  込み器の製作
  ビギナ向けマイコン・ボードArduinoを改造!

そして、2013年3月号の特集
  1万円で作るMy実験室,誰でもマイコン基板
  Arduinoでズルしてサクッと!

これ↑には記事を載せてもらっています。

目次での検索ですんで、これら以前にも記事内で
Arduinoを使っている製作記事、解説記事がある
かもしれません。


| | コメント (0)

2023年3月 8日 (水)

こんなところに「256-1」が

トランジスタ技術2012年1月号
特集が「エレクトロニクス格言集」
その中の第3章 アナログ2:計測&センサ

・3-6 抵抗分圧比をA-D変換するときの
    基準電圧ICは無駄使い

Ad12

サーミスタの抵抗値を直列に入れたRpの値から
求めようという手法の解説です。
抵抗の算出式から基準電圧値は不要で、
ADCの分解能が分かれば良いと。

この「?」と記したところに「2^N - 1」が出現!
8ビットA-Dなら255に、10ビットなら1023にという
ことなんですが・・・これは間違い。
フルスケール値 + 1、つまり分解能で計算しなくては
なりません。

これだとA-D値が1/2(半値)になるとき、「Rx = Rp」
となりません。

で、仮にADCが8ビットとすると
  Nx = 255 * Rx/(Rx+Rp) これを変形していくと
  Rx = Rp * (Nx / (255 - Nx))

Rx 未接続のとき、つまり∞の時。
この時のA-D値はフルスケールになってNx=255
すると、分母の (255 - Nx) がゼロになってしまい、
DIV0エラーに!

255じゃなく、256だと 256 - 255 = 1で
 Rx = Rp * 255。
Rp値の255倍以上の時(無限もOK)に
A-D値255が出てきます。

ということで 「2^N - 1」は大間違い。

半値や1/4値、3/4値で確かめれば「なんかおかしい」
っと思うはずなんですが・・・。

| | コメント (0)

2023年3月 3日 (金)

トラ技編集部行きのフロッピーディスク

お片付けしていたら、こんなのを発掘。
Dd11

トラ技編集部へ記事を入稿するための3.5インチフロッピーディスク。
2002年の日付があるファイルに埋もれていました。
メールでの入稿っていつぐらいからだったんだろ。
投稿記事のまとめ  を見ると、写真はもうデジカメで写している
ようですし。
  最初のデジカメが富士のDS-30。 1998年くらい
  それからリコーのRDC-i500。これが2001年。


| | コメント (0)

2023年3月 1日 (水)

8ビットマイコンの割り込み処理・・・1バイトに収まるなら1バイトに

2022年9月1日:8ビットマイコンの割り込み処理・・・言い足りないぞ
ここ↑では、トランジスタ技術2018年5月号での記述を
「ちょっと違うけどなぁ」っと話題にしました。

この内容↓です。
 「割り込み処理関数とメイン関数の両方から
  アクセスされる変数はchar型にしておく」

Pp1_20220901103201

確かに、1バイトにしておくと安全側にはなるのですが、
間違いなく割り込みを動かそうとすると、アトミック処理
(いったんn割り込み禁止にしてごそごそ)が必須です。

で、またまた何気なく古いトラ技を見ていたらの話
になります。
今度は2019年4月号
Tr1904  

この連載:宇宙ロケットMOMO 開発深堀り体験<2>

ブロック図を記したp.129の図1を見ると、ジャイロや
サーボの制御に8bitマイコンATmega328が乗った
Arduino Pro Miniが使われています。

Tr1904a

p.135に制御ソフトが載っていたんで、ちょっと
追いかけてみました。
T11a_20230301162201

まず、目に入ったのが割り込みで処理されるであろう
変数です。
Volatileが前置されたint値(2バイト値)です。

T11b  

これを使うのが0.1ms周期のタイマー割り込みの中

T11c

pwm_cntがアップカウンタで、200になったら
出力ピンをHにしてゼロクリア。
そして、pwm_cntがpwm_h_periodeになったら
出力ピンをLにという制御。
200がPWM周期でpwm_h_periodでPWMの
パルス幅を決めています。
pwm_cntはこの割り込みの中だけで使われて
いるようなので、割り込みとの競合は問題なし。

比較するデータpwm_h_periodはどうかと追いかけ
ますと、gimbal_agl_to_pwmという関数で値を
出していました。
これはメイン側の処理です。

T11d

gimbal_agl_to_pwmがint値を算出して、それを
pwm_h_periodeに書く時に割り込みが入ると
どうなるか・・・

2バイト値ですので、2回に分けて値が書き込まれます。
もしその中間で割り込みが入り、なおかつ、
0x00FF → 0x01000xFFFF(-1) → 0x0001(+1)の
ような2バイトにまたがる数値の変化が発生したら、
割り込み処理での数値判定をミスするかもしれません。

しかし・・・このプログラムでは
  ・pwm_cntは200が最大値なんで、int値(2バイト)の
   下位側しか変化しない。
  ・関数gimbal_abl_to_pwmが返す値は
   +8~+20の範囲で1バイトの範囲内。
   負にもならない。

ということで、2バイトデータと割り込み処理との競合は
大丈夫でした。
でも、もし上位バイト変化するようなint値なら
割り込み禁止にしてデータを更新して割り込み処理に
知らせるというアトミック処理が必須です。

このプログラムでは、変数が1バイトに収まるならデータの
宣言は1バイトでということにしておくと、処理も速くなるし
でエエんじゃないでしょか。

ただ、昔人間からすると、
  char符号有り符号無しかどっちやねん?
     コンパイラはどう処理するんや?
  Arduino環境なら符号無しは  byte やろ。
  今ふうにちゃんと書くなら uint8_tint8_t で宣言か。
こんなところが気になります。

| | コメント (0)