2026年03月07日

I2Cカウンタ基板

ボタン押し回数や機器の使用回数、移動距離、ドアの開閉回数等、カウントして値を保持する場合に便利なのがカウンタICです。カウントICの中でもS-35770は24bitのバイナリアップカウンタでI2Cを介してカウント数を読み出すことが可能です。また、IC自体で0.01uAと消費電力も小さいため、電池で運用することも可能です。カウント信号の最大入力周波数は1000kHzで比較的高い周波数にも対応しています。

ただし、S-35770はカウントアップ専用で、カウントダウンすることはできません。また、I2Cを介してカウントデータを読み出すのみで、リセットすることはできません。なお、フリーレジスタ機能があり、カウント値とは別に3バイトの値を書き込み、読み出しすることが可能です。

S-35770のそのままの仕様ではリセットやLOOP(キャリーアウト信号)のIO状態をI2Cから取得や制御できないため、I2Cから制御可能なGPIO、PCA9536と組み合わせてI2Cを介して制御できるカウンタ基板を作成してみました。また、CR1220の電池を搭載することでカウント値を保持できるようにしました。

img1.jpeg

img2.jpeg



本基板はCR1220電池を搭載しているため、電源なしでカウント値の保持だけでなく、カウントも行うことが可能です。例えば、通常は本基板とスイッチ等(本基板のBATピンとCLKピンをスイッチに接続)を組み合わせてカウント数を本基板でカウントし、必要な時にマイコンと接続してカウント数を読み出すといった使い方が可能です。

なお、I2C GPIOを介してカウンタのリセット操作やLOOP信号の読み取りができますが、電池運用する場合は注意点があります。メイン電源を切る前にリセット信号のGPIOをデフォルトの入力に戻す必要があります。この理由として、GPIO出力のままの状態ではメイン電源が切られた際に電池でプルアップしているRST信号がLOWに引っ張られてカウンタがリセットされてしまうためです。この問題を防ぐためにI2C GPIOを入力状態にすることでRST信号がLOWに引っ張られることを防ぐことが可能です。

回路図やサンプルコード等はこちらで公開しています。また、スイッチサイエンスにて販売を開始しました。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2025年08月02日

ハーネス設計ソフトウェア

今回はOSSや無料で利用可能なハーネス設計ソフトウェアについて紹介したいと思います。基板設計や回路設計の分野ではOSSや市販のソフトウェアが多く開発や販売がされています。一方でハーネス設計ソフトウェアとなるとニッチな市場のため、あまり種類が少ないのが現状です。

ちょっとしたハーネス設計であればエクセルやパワーポイント等のポンチ絵で何とかやりくりできると思いますが、ハーネスの種類が多い場合やピン数が多い場合、後々の設計資産として残す場合にはやはり専用のソフトウェアやツールを活用した方が長い目で見るとよいです。特に設計情報(オス/メス、AWG、難燃性、結線図、コネクタピンアサイン等)の漏れは後々大きな問題になりがちです。

ただ、ハーネス専門としている業者でもない限りは高価な費用を払ってまで専用のソフトウェアを導入するに至らず、導入したとしてもライセンス所有者しかファイルを編集できないとなると使い勝手が悪いです。それらを考慮してOSSやWeb上で設計可能なハーネス設計ソフトウェアについて紹介したいと思います。


QElectroTech
インストール型のOSSでハーネスの他、制御盤等の設計に特化したソフトウェアです。

・Wirely
オンライン型のハーネス設計ソフトウェアです。
比較的に簡単にハーネス設計することが可能です。
見た目からWireViz+設計支援というイメージです。

ハーネス設計ソフトウェアというよりもMicrosoft Visioのオンライン版というイメージです。
きれいにフローチャートといった図形を記述する場合に活用できそうです。

・WireViz
比較的理解しやすいyml形式で記述することで設計可能なハーネス設計ソフトウェアです。
接続図やBOM等を生成することが可能です。


クラウド等を使用せずにハーネス設計支援を実現するのであれば、QElectroTechWireViz
クラウドを活用してハーネス設計支援を実現するのであれば、Wirely。
という感じでしょうか。


トライアル期間がある有償ハーネス設計ソフトウェアを含めればさらに幾つかありますが、ツールを使いこなすノウハウも必要になってくるため、上記のようなツールが比較的導入の敷居が低く、使い勝手もそこまで難しくないため、活用しやすいと思いました。タイミングがあれば、個々のツールの使い方等にも別の機会で触れてみたいと思います。

posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2025年07月05日

シフトレジスタを使用した簡易リモートIO

今回はマイコンやFPGAを使用せずにシフトレジスタとロジックIC、タイマICのみで簡易リモートIOを実現する方法について紹介したいと思います。

少し離れた場所にボタン入力やLED出力等のIO信号を複数、届ける場合、そのまま配線すると信号線に応じて多くの配線が必要となります。そこまで信号の速さが求められない場合は信号線をシリアル化して省配線化できれば理想的です。一般的にはマイコンやFPGA等でシフトレジスタを制御しますが、使用前にマイコンへ書き込みが必要だったり、マイコン周辺の回路も必要になってくるため、より多くの部品が必要になります。

今回はシフトレジスタとロジックICを組み合わせて、マイコンを使用せずにIO信号をシリアル化して、省配線化する方法を紹介したいと思います。この方法で片方向の同期で2線(同期クロック、データ)、双方向の同期で3線(同期クロック、データx2)の信号線で実現することができます。例えば8bitシフトレジスタを使用する場合、片方向で8線から2線で済むことになります。双方向でも16線から3線で済みます。本数が多い場合や伝送距離が長い場合は省配線による効果が非常に大きくなります。


主な使用部品としては、入力ICにSN74HC165、出力ICにSN74HC595、クロック生成にLMC555、ラッチ用カウンタに74HC4017、クロックとラッチの論理変換に2bitのインバータSN74LVC2G04の部品で実現できます。



設計のポイントとしては下記の3点です。
@シフトタイミング
Aラッチ/ロードタイミング
Bリセット後のクロック


@シフトタイミング
 SN74HC165、SN74HC595ともに立ち上がりでシフトするため、同じクロックを使用すると信号変化のタイミングと同時に信号を取り込んでしまうため、タイミングによってデータがずれてしまう問題が生じます。そのため、片方のクロックを反転させることで半周期タイミングをずらすことでシフト後の安定したタイミングで信号の取込みを行うようにしています。具体的にはSN74HC165にメインクロック(MCLK)、SN74HC595にメインクロックの反転クロック(/MCLK)を与えています。

Aラッチ/ロードタイミング
 74HC4017でメインクロック(MCLK)をカウントさせて8つ目にサブクロック(SCLK)として同期信号を生成させてます。9つ目の信号をリセット信号に接続することでカウンタリセットさせています。また、SN74HC165はHighでシフト、ローでパラレル信号の取込みなので同期信号の反転信号(/SCLK)を与えています。さらにそのままでは同期信号立ち上がりとメインクロックの立ち上がりがほぼ同じタイミングのため、タイミングによって先にシフトしてしまいます。その対策としてSN74HC165の反転同期信号(/SCLK)をCRフィルタで遅延させた信号(/SCLK_Delay)を使用することでロード後の最初のクロック(MCLK 0番目)を無視させています。

Bリセット後のクロック
 配線数を減らすためにメイン基板とサブ基板でメインクロック(MCLK)の配線をなくしています。その代わりにサブ基板では同期クロック(SCLK)からメインクロック(MCLK)を生成しています。LMC555やNE555にはリセット入力があるため、そのピンに反転同期クロック(/SCLK)を与えることでリセットさせてメインクロック(MCLK)を同期させています。ただし、LMC555やNE555の注意点としてリセット直後と通常の繰り返しでチャージ電圧が異なる仕様のため、リセット直後のみ周期が遅くなる問題があります。この問題に対して、リセット直後も通常の周期と一致させるためにリセット時にトランジスタを介して予めコンデンサをチャージさせることで回避しています。


TimingChart.jpg





実際に基板を起こして作ってみた基板がこちらです。

img1.jpeg
使い方としては下記のように電源を供給して、メイン基板とサブ基板に通信線と電源線を配線することで各IOが同期します。実際に省配線で入力8bit+出力8bitのIOを同期させることができました。

img3.jpeg


マイコンやFPGAを使用せずにシフトレジスタを活用するのは一般的には想定された使い方ではないと思いますが、シフトレジスタとロジックIC、タイマICのみで簡易リモートIOを実現することができました。今回はユーザ入力を想定しているため、メインクロックは8kHz、同期速度は1kHz程度で安定性や伝送距離(数m程度)を重視した設計にしています。今回の回路図やガーバー等はこちらで公開しています。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2025年06月07日

NE555 1stクロック

タイマーIC、NE555はCR発振で簡単にタイマーやクロック出力を実現できるため、1970年代に発売されたICでありながら未だに多く活用されています。

NE555のリセットピンを電源にプルアップさせて連続的なクロックとして使用する場合には大きな問題になりませんが、NE555のリセットピンを活用して、必要なときのみクロックを出力する場合、NE555の回路そのままでは意図した動作を実現できません。具体的にはリセット直後はタイミングキャパシタは0Vからチャージされ、それ以降は1/3VCCからチャージされます。そのため、クロックの周期がリセット直後だけ長くなってしまう問題があります。



追加する回路としてはタイミングキャパシタにPNPトランジスタと1/3VCCとなるように抵抗を追加(下図黄色丸部分)します。

NE555_Reset.png



この回路によって、リセット中(RST 0V)はPNPトランジスタがONして、タイミングキャパシタが抵抗分圧によって1/3VCCにチャージされます。リセット解放後(RST VCC)でPNPトランジスタがOFFし、最初から1/3VCCでチャージを開始するため、リセット直後であっても一定のクロック周期のクロックを出力することが可能となります。


最近のICでは至れり尽くせりな仕様で意図通りに動くことが多いですが...昔からあるICの場合は互換性を重視している等の理由で応用的な回路では意図しない動作をすることが多々あるため、要注意です。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2025年04月05日

3D加速度&3D磁気センサ変換基板

今回は先日、設計/作成した3D加速度&3D磁気センサ変換基板について紹介したいと思います。

加速度センサとジャイロセンサを統合したICは多くありますが、加速度センサと磁界センサを統合したICは少し市場がニッチなようで種類もあまり多くなく、世に変換基板として出回っているもののの、IC自体は既にディスコン(生産完了品)になっている製品も残念ながら多くあります。

加速度センサ、ジャイロセンサ、磁界センサ等、すべて統合したICも世の中にはありますが、主な用途に応じて2つのセンサを組み合わせて使用することが多いです。例えば下記のような用途があります。


・加速度センサとジャイロセンサの組み合わせの用途例
 ドローンやロボットの制御: 姿勢安定化、動作補正目的。
 スマートフォン・ゲーム機: ジェスチャー操作や画面の自動回転検知。
 車両の安全システム: 横滑り防止装置、衝突検知。

・加速度センサと磁界センサの組み合わせの用途例
 コンパスアプリ・カーナビ: 方向と移動速度を同時に取得。
 ウェアラブルデバイス: ランニングや歩数計測目的。
 拡張現実(AR)アプリ: 方向感覚や位置情報の強化目的。

方向検知を目的とする場合に加速度センサと磁界センサの組み合わせを採用することが多いようです。加速度センサと磁界センサの組み合わせたICを可能な限り長期供給できるよう、既に発売から7年程度経過していますが、少なくとも2027年9月まで10年間の供給安定をSTが宣言しているIC、ISM303DACを選定し、変換基板を作成してみました。本音としてはここ数年発売のICで10年間の供給安定を謳っている後継品があれば良いですが、現状は販売されていないため、仕方なくISM303DACを選定しました。

ISM303DACは電源レンジが1.71Vから1.98Vです。3.3V系や5V系ではなく、電子工作レベルでは扱い辛いため、レベル変換を介して容易に3.3Vや5V系のマイコンに直結できるようにしてみました。 
ISM303DAC.jpg
3D加速度&3D磁気センサ変換基板の主な特徴は下記の通りです。
  • 磁界センサ 最大±50ガウス磁気感度
  • 加速度センサレンジ±2/±4/±8/±16g
  • 16bit分解能、256個のFIFOメモリを搭載
  • SPI/I2Cシリアルインターフェイス
  • I2CはGrove互換コネクタ搭載
  • 全IOにレベル変換ICを介してアクセス可能(3.3V/5Vの電源/IOに直結可能)


3D加速度&3D磁気センサ変換基板のガーバーやサンプルコード、回路図はこちらで公開しています。また、スイッチサイエンスのマーケットプレイスにて販売しております。今後は磁界センサをより精度高く使用するためのキャリブレーション等を紹介したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする