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) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2025年03月08日

Altium Designer Tips

今回は基板設計ソフトウェア、Altium Designerの設計で便利なショートカットやKiCadとの大きな差について少し紹介したいと思います。普段、KiCadを使用しているとAltiumとの考え方の差から使い方に戸惑う点が多々あります。それらを覚書として紹介したいと思います。

■便利なショートカット
・回路設計

右回転 → スペース キー

左回転 → Shift + スペース キー

X/Y軸反転 → X/Y キー

部品検索→J-Cキー


・基板設計

基板外形 → Mechanicalレイヤーで配置→ライン、四角形のオブジェクトで作図

基板外形設定 → デザイン→基板外形→セレクトしたオブジェクトから設定

回路図から読込 → デザイン→Import Changes From *.PrjPcb

平面表示 → 2

3D表示 → 3

3D回転 → Shift+右クリック

部品検索 → J-Cキー

部品反転 → Lキー

表示モード切換 → Shift+S

ベタGND → ツール→ポリゴン→ポリゴンマネージャ

ティアドロップ → Tools→Teardrops を選択

2点間計測の結果クリア→shift+C

3D部品の非表示→shift+Z

配線幅の変更→shift+W

■その他
・プロパティ表示
 画面右下のPanelsからPropertiesをクリック

・BOM生成
 回路図設計画面のレポート→Bill of Materials

・BOM修正
 BOMのパラメータ修正は直接、BOMを変更できない
 回路図設計画面のツール→パラメータマネージャからパーツを選択して、項目を修正する

フットプリントや3Dモデル更新
 基板設計画面でツール→PCBライブラリから更新
 もしくは部品を選択、右クリックでコンポーネントに対する操作→Update Selected Components From PCB Libraries

・画面外のオブジェクトを選択
 基板設計画面で意図せずに画面外にオブジェクトが配置されて選択できないことがあります。
 この場合は画面右下のPanelsからPCB Listをクリックし、座標でソートして画面外のオブジェクトをリストから選択します。



先日、24年8月にルネサスがAltium社を買収したことで、今後、Altium Designerの日本ユーザーがより多くなってくると思いました。Altium Designerの日本語の情報は少なく、見つかっても古いバージョンの情報だったりして、検索だけでは解決策が見つからないことが多々あります。今回、紹介しきれなかった項目については別の機会に紹介したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2025年02月08日

万年カレンダーユニット

今回は先日、スイッチサイエンスで販売開始したデバイス、万年カレンダーユニットについて、紹介したいと思います。

以前からサイズ2.13インチ、解像度250x122、消費電流14uA前後の超低消費電力LCDを活用したいと考えていました。Aliexpressの商品サイトにはe-paperと記載がありますが、電源断で表示が消えるため、厳密にはe-paperではありません。ただし、非常に消費電力が小さいことからバッテリやキャパシタを組み合わせればe-paperのように使え、高コントラストで見やすいことからこのような表現をしていると思われます。また、詳細は不明ですが、見た目や挙動からベースはシャープのメモリ液晶から派生したLCDだと思われます。

海外では高解像度、超低消費電力、高コントラストの特徴を活用したデバイスがいくつか紹介されています(hacksterhackaday)。

高解像度、超低消費電力、高コントラストの特徴を活かし、日頃からデスクサイドで活躍できそうな万年カレンダーを設計してみました。市販品の万年カレンダーは壁掛けタイプや大きなものが多いと感じていました。パソコンのディスプレイ横に置いても邪魔にならないサイズ、サイズ幅82mm 、高さ32mm、奥行30mm(突起部、USBコネクタ除く)にしてみました。


img1.jpg


マイコンは今なら低消費電力のRP2350を選択しますが、開発段階では販売されていなかったため、RP2040を使用しています。電池で駆動させるため、電源管理ICとしてプッシュボタンロードスイッチ、XC6194を使用しています。XC6194は押しボタンでON/OFFするためのロードスイッチで、ONのパルス信号を送ると、ロードスイッチがON、ラッチします。今回は押しボタンのパルス信号の代わりにRTCのINT信号に接続し、RTCのINTを1分タイマ割込に設定することで、電源管理ICからRP2040を1分に1回、起動させています。LCDの描画処理後、シャットダウン信号をRP2040からXC6194に出すことでOFFさせています。

BLEデバイスに限らず、電池駆動のデバイス開発に便利なPower Profiler Kit II (PPK2)で1分間の電流を測定したところ、平均200~300uAと分かりました。2000mAh程度のニッケル水素充電池で約1年程度の寿命を実現することができました。なお、電流や電池寿命は使用環境や使用方法によって大きく変動するため、数値を保証するものではありません。



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

2025年01月11日

RP2040 BOOTスイッチの注意点

明けましておめでとうございます。本年もよろしくお願いいたします。RP2040を実装したある組込基板を開発している中で不思議な現象に悩まされていましたが、原因が分かったため、紹介したいと思います。

不思議な現象として、電源投入後、概ね正常に起動するが、時々起動しないという現象でした。起動しない状態になった際、RSTボタンを押すとすると正常に起動しました。プログラムが意図せずハングアップしているのかと思い、watchdogを有効にしてみましたが、上手くwatchdogのRSTが働かない・・・・という現象でした。


原因としてはBOOTがLOWと判断され、意図せずに書き込みモードで起動していたようです。基板の電源仕様の影響も多少ありますが、真因としてはBOOTスイッチのチャタリング防止0.1uFのキャパシタが邪魔して、起動時にBOOT信号がLOWとして判断されていたようです。当然ながら書き込みモードではwatchdogは働かず、書き込み待機状態になっていたようです。


RP2040_BOOT_SEQ.png


RP2040のBOOTピンは外部FlashのCSピンと併用のため、起動直後にCSの状態を見て、通常起動するか、書き込みモードに入るか、判断される仕様です。RP2040のデータシートを確認するとCSのプルアップを有効にしてから100usec後にCSの状態を確認するようです。推奨回路やPico基板では10kΩでプルアップしつつ、1kΩでBOOTスイッチに接続されています。その回路そのままであれば問題ありませんが、抵抗で接続されたBOOTスイッチに更にキャパシタがあるとローパスフィルタとなってCSの立ち上がりが遅くなります。それにより、電源投入直後にCSがLOWと判断され、意図せず書き込みモードに入っていたようです。

電源の立ち上がりや最初のBOOTローダの起動時間を無視して、単純にCRのローパスフィルタとして考えると、抵抗は合計11kΩ、キャパシタは0.1uFなので、立上りは約2msecとなり、起動時の100usecに間に合いません。100usecに間に合わせるためには理論上、キャパシタを3.3nF程度より小さくする必要(3.3nF→立上り84usec)があります。

RP2040_BOOT_SW_Capacitor.png
今回のRP2040を実装した組込基板はRP2040自体の電源をロードスイッチで管理する仕様だったため、通常の電源の立ち上がりに比べて緩やかであったことも多少影響していると思われます。

プッシュボタンスイッチがあるとチャタリング防止のため、習慣として0.1uF程度のキャパシタをパラに入れてしまいますが...Picoの標準回路同様にRP2040のBOOTスイッチにおいてはチャタリング防止のキャパシタを入れるのは避けた方がよさそうです。もし、入れるとしても0.1uFではなく、1nF程度の十分に小さなキャパシタに限られます。RP2040の他、最近リリースされたRP2350、RP2354等のBOOTスイッチは外部FlashのCSピンと併用のため、BOOTスイッチ周辺の回路設計には注意が必要だと思いました。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする