閉じる

UI言語[UI Language]

記事自体は翻訳されません! 記事によって英語版があったりなかったりします。翻訳がある記事は文頭に記載があるよ!
Each articles themselves will not be translated by this setting. Some of article has translation and some of them doesn't. You will notice if the article has its translation by its preamble!

テーマ[Theme]


アイキャッチ画像

シフトレジスター74HC595を交換したら動かなかった話


同じ74HC595なのに交換したら動かない

#軸の秤はディスプレイやキーパッドを持つ本体と、ステッパーが稼働して重さを測定する測定部が分かれているんですが、その間を繋ぐ線を少なくするため、シフトレジスターの74HC595を2つ、測定部に積んでいます。

秋月で購入したDIPパッケージの74HC595を使ってブレッドボードでのテスト、JLCPCBの部品実装サービスでSOP-16パッケージの74HC595を実装したrev2基板と問題なかったので、rev3基板では別途購入したSOP-16の74HC595を自分でリフローしたんですが、ここに来て動かなくなってしまいました。

軸の秤 測定部基板 rev.2
軸の秤 測定部基板 rev.2

軸の秤rev2の測定部基板。右側の縦2つのSOP-16が74HC595。これは部品実装サービスを使ったもので、この基板では問題なく動作していた。

最初に秋月で購入したもの(問題ない)

DIPパッケージ。

部品実装サービスで実装してもらったIC(これも問題ない)

SOP-16パッケージ。LCSCの部品番号はC5947

交換して動かなくなった問題のIC

これもSOP-16パッケージ。LCSCの部品番号はC110383


症状

症状としては、74HC595の出力側から3.3Vが出ないというもの。マルチメーターでテストしたところ、ごくごく僅かな電圧の変化があったりなかったり(マルチメーターの2000mVや200mV辺りで見ても一桁程度の変化)

症状の確認として、秋月で購入したU74HC595-D16-Tで好きなピンから3.3Vが出力できる事をブレッドボードで確認した後、2.54mmピッチ変換基板に実装した問題の74HC595Aに交換すると、たちまち動かなくなってしまいます。
確認では他の個体を使ったので、#軸の秤の基板に取り付けたICがたまたま壊れていたという可能性もゼロに近くなりました。

動かない74HC595
動かない74HC595

同じ信号を入力しても片方だけ動かない。単体で動いていたものを交換すると動かない。もーさっぱりぷー。お手上げ。

こうなるともうお手上げ。
ICに何か問題があるのだろうとか、ラッチやクロックの信号に問題ある(波形とかタイミングとか?)のだろうとか色々考えてはみても、オシロスコープ持ってないし第一使い方もわからない。電子工作初心者にはもーどうしようもありません。

同じ状況とおぼしき書き込み

Arduinoのフォーラムに一件だけ非常に近い状況と思しきスレッドがあったのですが、残念ながら解決や有用な情報は無いままクローズされています。

ちなみに、この時点で僕がデータシートから読み取れた当該ICの一番大きな違いは、他の74HC595だとOE(Output Enable)の13番とSRCLR(或いはMR(Master Reset))の10番が、いずれもNCになっている点。このため、これらのピンに関しては未接続、High、Lowと考えうるパターンを全て試してみたけどダメだったことを追記しておきます。


さて、ここまでで手がかりは網羅できたと思います。電子工作に明るい方はなぜ74HC595Aから電圧が出てないのかわかってしまったでしょうか(読者への挑戦風)。


答え

オープンドレイン!!

もうすっかり諦め、ブラックフライデーで購入した第11世代Kindle Paperwhiteで遊んだりしてたんですが、ずーっとひっかかってて気が付くとちょいちょい検索してました。でもやっぱり何も見つからず。
ふと、製造会社もデータシートも中国語だし、中国の情報検索できればいいんじゃねと、とりあえず百度バイドゥで検索してみたんです。そしたらなんと本当に…… あった!

上記ページの 〈六、74HC595A和75HC595D的区别〉というところに、まさに知りたかった74HC595Aと一般的な74HC595との違いが!
翻訳すると6. 74HC595Aと75HC595Dの違いと書いてあるらしい。ビンゴ!

74HC595A和75HC595D的区别の日本語訳
74HC595A和75HC595D的区别の日本語訳

Google翻訳を使ったスクショ。74HC595Aはオープンドレイン出力なので、プルアップ抵抗が必要!

というわけで、74HC595Aは “オープンドレイン出力”なので出力ピンにプルアップ抵抗が必要だったということのようです。

ちな自分はこのページを見るまでオープンドレインなる言葉を見たことも聞いたこともありませんでした。どういう理屈なのかは下記ページでなんとなく理解できた気がします。

プルアップ抵抗については自作キーボードのキーマトリクスとか、ESP32のEN/BOOTスイッチ周りに使われてるので徐々じょじょにわかってきたところですが、ICの出力ピンでも使うことがあるんですねぇ……
でも、74HC595って出力ピンが8つもあるので抵抗も8つ必要で、なんだか面倒くさい気もするんですが、上記ページのレベルシフタやワイヤードORのように素人には考え及ばない必要なケースがあるのでしょう。

ちなみに、74HC595の場合、カスケード用の出力もあるので計9個の抵抗が必要なのではと最初思ったんですが、テスターで見てみるとカスケード用の出力は抵抗無しでも電圧が出ていました。既にプルアップ抵抗したシリアルデータがそのまま繰り上がってここに出力されるので、電圧もそのままという事でしょうか。いずれにしろカスケード用出力にはプルアップ抵抗は必要なさそう。はーややこしい。

プルアップ抵抗を追加して動くようになった74HC595A
プルアップ抵抗を追加して動くようになった74HC595A

というわけで、出力ピンにプルアップ抵抗を挟むことで74HC595A経由でLチカ出来た。はー長かった。
なお10番と13番は仕様通りNCの様で、3.3Vに繋いだりGNDに繋いでも動作には影響せず。

答えがわかってみれば、確かにデータシートの冒頭、最後の行に「数据输出方式为低电平及高阻态。」ってあって、これを翻訳してみると「データ出力モードは、低レベルで高インピーダンスの状態です。」だそうで。
まーでもわからなかったのは仕方ないのです。自分のレベルじゃこれを日本語で読んでも 「あ、抵抗が要るな」ってわからないし、そもそも中国語だし、さらにオープンドレイン自体知らないし。


後記

というわけで、同じ74HC595でもそのままは交換出来ないものもあるという発見でした。

結局のところ、どうせ同じだろうし安いからと実際に動いていたのと違う型番を注文した自分が悪いのです。同じSOP-16パッケージでも、Nexperiaの74HC595Dを注文していればこんなに悩む事にはならなかったわけで。
まーでもオープンドレインというものを知れたし、ICからの出力にもプルアップ抵抗が必要になる事があるという勉強になったからいっか。

あ、あと、中国語でICチップのこと芯片っていうのを知りました(笑)

いじょ。

この記事のタグ[This article is filed under]: 電子工作[Electronics] | トラブル[Trouble]


この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!

That's all for this article. Thank you for your reading.
Please share this if you like it!

Twitter | Reddit | Facebook | Pinterest | Pocket

前の記事[Prev Post]

前の記事のアイキャッチ画像

【これで完璧】JLCPCBにKiCadで作った基板を注文する方法【のハズ】

次の記事[Next Post]

次の記事のアイキャッチ画像

【コミケ】フォースカーブ測定マシン「軸の秤」頒布します!【C99】