JTAGって何?(初心者向け)

CPUなどを見ていると「JTAG」という用語がよく出てきます。

JTAGってなんでしょうか。

 

元々は接触をチェックするための機能でしたが……いろいろ経緯をかいても意味が無いので省略します。

ずばり、プログラムの書き込みに使うインターフェースです。

 

JTAGというのはだいたい

・TCK(CLOCK)

・TDI

・TDO

・TMS

・TRST

・RST

の6個の信号で実現されています。

 

つまり、デバッガーと呼ばれるプログラム書き込みできる装置とCPUの6ピンを接続すればプログラムが書き込めるわけです。

しかし、最近は小型なCPUも多いので、6ピンも使ったらもったいない! ということで、2ピンの接続だけですむタイプもあったりします。

 

とにかく、JTAG=プログラム書き込みI/Fと思って下さい。

そして、これは各社バラバラです。

使うピン数も違えば、流れている信号も違うし、使えるデバッガーも全部違う。

ということで、「JTAG」といっても全部違うので、結局CPUごとに全部調べ直す必要があります。

(え、このCPUはこうやってデバッガーと繋げないといけないの!? というトリッキーなものもあります)

 

ということで、JTAGはプログラム書き込みI/Fのことを言っていると理解した上で、実際にどうやってデッバガーと接続するかはよく調べるようにしましょう。

 

以上、小田切でした。

RTC(Real Time Clock)とはなんぞや?

電子回路の設計をしていると「RTC」という言葉に結構出会います。

RTCとはなんでしょうか。

 

RTCは「リアルタイムクロック」のことです。

現在の時間をカウントしている機能です。

 

これはCPUに内蔵されている場合もあれば、外付けICの場合もあります。

 

なんでこんなものが必要なんでしょうか?

そもそもCPUは高精度な水晶振動子で駆動されていて、色々なタイマー機能が入っているので、こんなものがなくても起動してからの時間はカウントできます。

ということで、実はCPUが常に駆動し続けている状況ではRTCなんて機能はなくてもなんとかなるんです。

起動後に外から時間を設定してもらうorネットワーク経由で時間を取得してから、後はCPUで1秒毎にカウントアップしていけば良いのです。

 

これが必要になるのは、「CPUがOFFの時にも時間を計測し続ける必要がある」場合です。

例えば、パソコン(PC)・スマホ・ゲーム機です。

こういった機器のCPUは数十ワットの電力を消費しますので、電源を切る時にCPUの電源は当然落ちます。

すると、RTCがないと毎回時間がリセットされてしまうわけです。

ずっと電源を付けている機器なら良いですが、こういう電源を入り切りする機器では不便で仕方ありません。

 

RTCはCPU内臓の場合もICの場合も、どちらも非常に低消費電力です。

時計用の遅い水晶振動子を駆動させて、1秒間に一回カウントアップするだけの機能なので、そもそも電気を食わないのです。

ということで、電力大食いCPUは電源OFF時に止めないといけませんが、これぐらいなら電源ONのままでも対して問題ないのです。

(ボタン電池で数年動き続けられるレベルの消費電力なので)

 

とまぁ、こんな雰囲気であります。

 

以上、小田切でした。

積層セラミックコンデンサの温度による影響は?

前回は電解コンデンサの温度による影響を説明しました。

今回は積層セラミックコンデンサについて説明したいと思います。

 

積層セラミックコンデンサも温度によって「容量」が変化してしまいます。

しかも、温度が低ければ小さくなって、温度が高くなれば大きくなる、というようなわかりやすい関係ばかりではありません。

積層セラミックコンデンサには「温度特性」が規定されていて、いろいろあります。

 

・非常に安定していて温度が変化してもほとんど容量が変わらないもの

・低温で容量が減り、高温で容量が増えるもの

・常温あたりで容量が最大になり、低温でも高温でも容量が小さくなるもの

 

非常に厄介に思えますが、面倒くさいゆえに積層セラミックコンデンサはきちんと温度特性が公開されています。

電解コンデンサは温度特性が公開されていることは少なく、当て推量で扱わないといけません。

しかし、積セラは資料がきちんとあるので、特性としては面倒ですが事前の検討はとてもやりやすいのです。

 

ということで、積セラを扱う時、とくに容量の変化に敏感な回路に積セラを使うときは、データシートを見て温度特性を確認しましょう!

 

以上、小田切でした。

電解コンデンサは温度で何が変わるか?

実は電解コンデンサに限らず他のコンデンサも温度で特性が変わるのですが……

今回はわかりやすい電解コンデンサについて説明したいと思います。

 

電解コンデンサは電解液に浸されていますので、その液体の温度が下がると電子が動きにくくなります。

ということで、一般的に温度が低いほど性能が悪化します。

 

◯静電容量

温度が低いと、なんと静電容量自体が小さくなります。

 

◯ESR(内部抵抗)

温度が低いと電解液の動きが悪くなって、内部抵抗が大きくなります。

 

◯漏れ電流

この要素だけ逆です。

温度が高いほど大きくなります。

 

こんな特性を持っていますので、電解コンデンサをパスコンとして使った場合、こんなことが実際に置きます。

1,温度が低くなるとノイズが大きくなる。

2,温度が低くなると正常に動かない(古くなった家電やパソコンでもたまに起こります)

3,温度が高くなると漏れ電流が大きくなってオーディオ回路などが正常動作しない

4,温度が高くなると漏れ電流が大きくなって電池が早く終る

 

こんな風に低温でも高温でもやっかいなものなんです。

 

以上、小田切でした。

鉛フリーはんだって?(初心者向け)

もともと普通の「はんだ」には鉛が含まれています。

この「鉛ハンダ」は、溶けやすいしハンダしやすくて大変結構なものなのですが、環境保全の観点で「鉛」が問題になりました。

そのまま捨てられると鉛が土に染み込んでしまい、環境汚染の元になるからです。

 

ということで、鉛を含まない「鉛フリーはんだ」というものが生まれました。

今ではほとんどの製品では「鉛フリーはんだ」を使用していて、従来の「鉛ハンダ」を使用することなどほとんどありません。

(経験上、見たことありません)

電子部品も大抵「鉛フリー対応」と書かれています。

 

ところが、鉛フリーはんだは、扱いにくいんです。

融点が高いので、鉛ハンダより溶けにくく、鉛ハンダより高出力のこてが必要になります。

(実際やってみると「なんだこのハンダ。全然溶けないぞ」って感じます)

さらに濡れ性が悪くて、いい感じにするするっと流れてくれません。

鉛ハンダで綺麗にハンダできていた感覚で扱っても、なかなか綺麗にハンダできません。

 

ということで、業務で扱うなら鉛フリーを使う以外に手はないのですが、アマチュアで扱うなら正直従来の「鉛ハンダ」のほうが圧倒的に扱いやすいです。

もし、鉛フリーはんだで苦しんでいたら、鉛ハンダを買って試してみるのも手です。

 

以上、小田切でした。

実装精度を気にしないといけない部品

量産品の基板に部品を搭載するのは実装マシンです。

 

1,基板にはんだペーストを塗り

2,はんだペーストの上から実装マシンが部品を搭載し、

3,リフロー炉に入れてはんだペーストに熱が入ってハンダが固まり、

4,いっちょ完成!

 

ということです。

 

「人がやるのではなく、メカがやるんだから部品なんてそんなずれないでしょ。実装精度とか気にしなくても大丈夫でしょ」

 

だいたいはそうなんです。

0603みたいな1mmよりはるかに小さい部品でもだいたい大丈夫です。

0.5mmピッチのめっちゃ細かいピンが出ているICでもだいたい大丈夫です。

 

が……実は鬼門が有ります。

 

実装マシンくんはとても正確です。

上下左右のズレなんて0.1mm程度です。

 

ところが、はんだペーストに載った後はんだペーストの上で部品がぬる~と動いてしまうのです。

これはどんなに実装マシンの精度が良くても関係ありません。

 

「絶望的じゃないか!」

 

実は大抵の場合問題ありません。

はんだペーストの上に部品の端子が載ると、粘性があるので端子ははんだペーストの中で上下左右に移動しても外れることはないのです。

 

・実装マシンくんが超絶精度で、超絶小さいパッドに塗られたはんだペーストの中央に超絶小さい部品の端子をきっちり置く

・部品がはんだペーストの上でちょっと滑る

・部品の端子がパッドの中央からずれる(でもパッドからは外れない)

・この状態で炉に入って固定される

 

とこのように、多少ずれてもパッド内での話であり、電気的にはなんの問題もないわけです。

 

「なんだよ驚かせやがって。何の問題もないんじゃないか」

 

ところが電気的にはOKだけじゃだめなのがあるんです。

 

「コネクタ」です。

 

パッド内で端子が移動するだけなので電気的には問題ありませんが、位置がずれてしまいます。

通常、縦横方向のズレはあんまり問題ありません。

問題は回転です。

僅かに2-3度ずれただけでもダメになる場合があります。

 

例えば、こんな基板を考えましょう。

・PCI-EXPRESSのコネクタがついている

・その数cm先にPCI-EXPRESSカード固定用のネジ穴が開けてある。

 

はい、ここでPCI-EXPRESSのコネクタが2-3度でも回ったらどうなりますか。

PCI-EXPRESSカードを指した時、カードのネジ穴と基板のネジ穴が合わなくなります。

つまり、アウト!

 

ということで、少しでも位置がずれたらアウトなコネクタを扱うとき「だけ」は実装精度を気にしないといけません。

 

以上、小田切でした。

ショートって何Ω以下?

基板の各部をテスターで当たって「ショートをチェックする」というときがあると思います。

しかし、思いませんか?

 

「ショートっていうけど、何Ωならショートなんだ?」

 

0Ωならもちろんショートですが、実際はそんなことはありません。

どんなに小さくても0.7Ωなど、少しの抵抗値はあります。

1Ωはショート?

10Ωはショート?

100Ωはショート?

 

実は絶対値がありません。

その回路によります。

 

例えば、意図的なショートがあります。

「ショートが正解」のケースです。

ある電源と別の電源を1Ω抵抗で接続しているなど。

そのときは、その1Ω+測定誤差の範囲内がショートになります。

 

不具合によるショートもあります。

「ショートが不正解」のケースです。

このときは逆に「正解」を決めてから、ショートの意味を決めます。

例えば、正常状態で抜き取り検査をして抵抗値が1kΩ±50Ωの回路があるとしましょう。

すると、ショートとは明らかにこれより小さい場合になります。

もしココが具体的な抵抗などで決まっているのであれば、この値からずれるわけがありません。

なので、「950Ω以下はショート」と決めてしまっても良いわけです。

しかし、電源回路の+とーの場合はコンデンサの特性のばらつきなどで大きく変化してしまうので、あまり厳しくしてしまうと今後正常品が不良になってしまうかもしれません。

ということで、十分余裕をもたせます。

ここはその会社によると思いますが、500Ω,100Ω,50Ωなど1kΩより十分に小さな値にします。

つまり、「想定している値より小さければショート」ということにしてしまうのです。

 

こんな風に、場合によってショートが示している抵抗値はかなり変わります。

 

以上、小田切でした。

ダンピング抵抗とは?

ダンピング抵抗とは信号配線に入れる抵抗のことです。

たとえばICとICをつなぐ信号線、直接繋いでもいいのに、製品の回路を見ていると抵抗が入っていたりしませんか?

そういうのがダンピング抵抗です。

 

ダンピング抵抗の役割は大きく2つあります。

 

◯波形の成形

配線にはインダクタ成分があるので、電流が流れ続けようとすることにより、

オーバーシュートなどの意図しない電圧が発生します。

配線に抵抗成分があると電流が流れにくくなるのでオーバーシュートなどが小さくなります。

ということで、オーバーシュート・アンダーシュートを減らすためにダンピング抵抗を使います。

でも、大きくすると駆動力が小さくなるので今度は波形がなまります。

 

◯静電気・活線挿抜からの保護

コネクタからICに配線される場合にその配線にダンピング抵抗を入れます。

基本的に普通のコネクタは活線挿抜(電源入れたままの抜き差し)は禁止ですが、実際にはやられることがあります。

そのときにやはり配線のインダクタ成分により、大きな電圧が瞬間的に発生します。

その電圧から保護するために抵抗を入れているわけです。

また、静電気にもきも~ち効くかも?ということで入れてあります。

(静電気に対処するには当然ちゃんとした対策部品と組み合わせます)

 

ということで、ダンピング抵抗は非常に大事です。

ダンピング抵抗が全然入っていない回路図を自分が見ると「素人かよ」と毒舌を吐きますのでご注意下さい。

とはいえ、あまり大きな抵抗を入れると波形がなまりますので、加減が大事です。

だいたい10~100Ωくらいが普通です。

実際の波形を見て問題がないことを確認しましょう。

 

以上、小田切でした。

デバッグで波形の評価はどこまでやればいいのか?

デバッグで当然のことながら、オシロスコープで各部の波形を見ます。

そして見るからにおかしければ当然対処します。

それはまぁ、あんま問題ありません。

 

問題は、「パット見問題ない」時に「厳密に何を合格とするか」です。

 

波形の評価というのは、細かく見出したら本当にキリがありません。

 

1,Highの電圧

2,Lowの電圧

3,立ち上がり速度

4,立ち下がり速度

5,オーバーシュート

6,アンダーシュート

7,他の信号(クロックなど)との時間関係

8,USBやEthernetなどオシロスコープでまともに取れない信号に対して、専用試験機による波形評価

 

◯簡単評価

例えば、とにかく動けば良いもの(一台だけの間に合わせの品)なら「1-2」だけかもしれません。

ここだけは必須です。

もし、3.1V以上必要な相手に対してHighが2.9Vにしかなってなければ問題です。

 

◯基本評価

この場合、「1-6」まででしょうか。

立ち上がり速度やアンダーシュートまで見ます。

でもこれも微妙なんですよね。

I2Cなどは遅いので問題ありませんが、PUSHPULLで動いている波形はかなり速いので、プローブとの相性や接続方法でオーバーシュートやアンダーシュートが大きく変わります。

立ち上がり速度ぐらいは正確に測定できなくても「◯us以下」ぐらいいえますが、アンダーシュートやオーバーシュートは正確に測定するの難しいです。

本当はICの定格が「VCC+0.3V」であれば、オーバーシュートは0.3V以下でないといけないんですが、それやりだすと結構大変です。

(だって全部のダンピング抵抗を集合抵抗含めて付け替えるの?って話です)

オーバーシュートは「ごにょごにょ」なときもあります・・・

 

◯真面目に評価

この場合、「1-7」まででしょうか。

他の信号とのタイミングを見出すと本当に大変です。

例えばSD信号なら、「CLK」「CMD」「DATA0」「DATA1」「DATA2」「DATA3」の6つの信号の関係を全部見ることになるんです。

もちろんやるべきなんですが、実務的にはかなり大変・・・。

実際には(本当はいけませんが)スクリーンショットだけ取って「ほら問題ないでしょ?」と見た目だけで済ましてしまうこともあったりして・・・。

本当はすべての信号の間のタイミングを全部測定して規定以内か調べないといけません。

 

◯くそ真面目に評価

この場合「1-8」までやります。

もうここまで来ると、担当者の判断ではなく、お客さんが「こういう試験をやってくれ」と依頼してきた場合だけですね。

EthernetやUSBなどは専用の試験機などがあったりしますが、当然それなりな費用がかかります。

ここまでやると測定だけでおお仕事です。

 

とまぁ、こんなイメージでございます。

 

以上、小田切でした。

基板のデバッグ、まずやるのはショートチェック

回路を設計し、アートワークも終わり、部品実装も行い、部品が乗った完成基板が上がってきました。

さて、ここでなにから始めるでしょうか?

 

いきなり通電!

NG! 駄目です。

 

考えてみて下さい。

初めての基板なんて、何がどうなっているかわかりません。

もしかしたら、電源のプラスとマイナスが間違ってショートしているかもしれないのです。

そこに仮に高電圧をかけたら大電流が流れて火事になってしまいます。

 

ですから、

一番最初にやることは電源のショートチェック

です。

ここがクリアできていれば、火事になることはそうそうありません。

逆に言うと、ここでミスすると普通に危険です。

 

1,電源入力のショートチェック

電池やACアダプタからの供給が普通です。

そこに接続される端子間の抵抗を測りましょう。

ここがショートしているのが一番危ないです。

 

2,内部電源のショートチェック

基板の中で3.3Vや5Vなどを生成していると思います。

その3.3VとGNDの間の抵抗を測定しましょう。

ここがショートしている場合、燃えることはめったにありませんが、当然動きません。

 

3,初めて通電

ここまできてから初めて通電です。

 

火傷したり電源を壊したりしないように、上記の順番を守りましょう。

 

以上、小田切でした。