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

2024年12月07日

StepからSVG/PNG/3DPDF変換

以前に3DデータのStepファイルを2Dに落とし込む際にFreeCADを使ってベクトルデータのままSVGファイルに変換する方法について紹介しました。複数の投影面で出力したい場合や変換したいファイルが多い場合はなかなか手間を要します。そこで新しいプロジェクトとして、Step2Svg.comのオンラインサービスを開始しましたので、こちらで紹介したいと思います。本サイトでStepファイルをオンラインで変換することで3DCADソフトウェアがインストールされていない環境でも共有や活用しやすい形式に変換することができます。

ConversionImage.png

Step2Svg.comでは3DデータのStepファイルを2Dデータもしくは3DPDF形式に変換することが可能です。2DデータはSVGやDXF、PNG形式に対応しています。3Dデータを6面にそれぞれ投影したデータとして6ファイルをダウンロードすることが可能です。なお、現時点ではサーバの制約上、Stepファイルの最大ファイルサイズは10MBに制限しています。

例えば下記のような3DCADソフトウェアがない場合にStep2Svg.comが便利です。
・他のユーザへ3Dデータを共有したい
・3DCADソフトウェアを使用せずに3Dデータを2Dデータの平面図に展開したい
・Stepファイルの中身を確認したい


例えば下記のように3DCADソフトウェアがある場合でもStep2Svg.comを活用することで更に便利になります。
・3DPDFを生成したい
・3Dデータを平面のベクタデータに変換したい


費用は1回の変換で100円です。信用支払い形式をとっているため、変換の際のユーザ登録不要、お試し変換自体は無料です。ただし、変換後のデータを削除せず、何かしらの目的をもって使用される場合はその変換に対してのみ、変換後に費用をお支払いください。


Stepファイルからイメージ図をベクターで作成する場合はSVGやPNGの変換が便利です。

3DPDF変換は3DCADデータがない環境で3Dデータを確認する際にAdobe Acrobat等のPDF Readerで確認することが可能なため便利です。なお、3DPDF変換形式をPDF Readerで開く際は通常、3Dコンテンツが無効となっているため、警告が出て表示されません。「オプション」から「今回のみこの文書を信頼する」をクリックすることで3DPDFデータを確認することが可能です。

3DPDF_Warning.png


3DPDF_Image.png

PDF Readerで3DPDFデータを立体で確認することが可能です。マウス操作で様々な向きや背景色を変更することが可能です。


現状はSVGやDXF、PNG、3DPDF形式に対応していますが、今後、要望に応じて変換形式やオプション等を増やしていきたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2024年11月09日

Web ADC Tool

以前にWeb HID APIを用いたMCP2210とWeb HID APIでブラウザを介して磁気エンコーダの動作確認をする通信するツール、Web USB Encoder Toolを紹介しました。今回はWeb HID APIとMCP2210を応用して、ブラウザを介して簡単にSPI接続のADコンバータ、MCP3208やMCP3204と通信するツール、Web ADC Toolを実装してみました。

WebAdcTool.png


対応するADコンバータはMicrochip社製のMCP3208、MCP3204に対応しています。ADコンバータの動作確認や接続確認等に便利です。接続後、Start/Stopボタンを押すと各チャンネルを順番に200msec毎に変換して電圧値が更新されます。Web HID APIに対応したブラウザはEdgeもしくはChromeのみ対応となっており、24年9月時点ではFirefoxやSafariは対応していません。Web HID APIを用いることで専用のソフトウェアなしでブラウザ単体で様々なツールを実装できるのは非常に魅力的だと思いました。今後もWeb HID APIを用いた応用的な機能を開発して順次公開したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2024年10月12日

GreenPAK Writer

以前にプログラマブルデバイスGreenPAKを紹介させて頂きましたが、今回はUSBシリアルI2C変換基板V2[スイッチサイエンスElecrow]を使って何度も書き換え可能なMTPタイプのGreenPAKに書き込みを行うツール、GreenPAK Writerを開発しましたので、紹介したいと思います。MTPタイプのデバイス、SLG46824 /SLG46826 /SLG47004にプログラムを書き込む方法として、下記の方法があります。

1. 専用のデバッガ書込ツールSLG4DVKGSD
 販売サイト[秋月]、[Digi-key]、[Mouser]


3. マイコン等からの書込



開発環境Go Configure Software Hubからデバッグや書込が可能な1.のSLG4DVKGSDが王道ですが、流通量が少ないようで、在庫なしのタイミングが多々あるのが難点です。その次に多いのは2.のArduinoからの書込ですが、コード上にプログラムを埋め込んでいるため、プログラムを変更する度にArduino側も書き換えが必要なため、手間が非常にかかります。既に確定したプログラムを大量に書込する場合は2.や3.が便利ですが、試行錯誤しながら使用する場合で、1.を使用しない場合は非常に不便でした。そこでUSBシリアルI2C変換基板V2を使ってEdgeやChrome等のブラウザから簡単に書込可能なGreenPAK Writerを開発しました。


GreenPAK_Writer.png


Web Serial APIを活用して、ブラウザから直接、COMポートを介してI2CデバイスのGreenPAKを制御しています。そのため、スクリプトはすべてブラウザ内で完結しているため、クラウド等を介さずに書込や読込等の操作をすることが可能です。

Connection.png

使用方法は下記の手順で行います。
@事前に上図のようにUSBシリアルI2C変換基板V2のRST端子とIO0をケーブルでジャンパさせます。
AUSBシリアルI2C変換基板V2とGreenPAKをI2Cで接続してPC等のUSBポートにUSBシリアルI2C変換基板V2を接続します。
BGreenPAK Writerにアクセスして、接続後、ControlCode(I2C Address)をPing機能で確認します。多くのデバイスの初期状態は0x01(0x08)です。
CNVM消去を行います。
DGo Configure Software HubのExportからhexファイル形式を選択してエクスポートして、そのファイルをGreenPAK Writerに読み込ませて、NVM書込を実行します。
EGreenPAKの電源を一旦切ってから再度、投入すると書き込んだプログラムが実行されます。

GreenPAK_Export1.png

GreenPAK_Export2.png


なお、@でRST端子とIO0をジャンパさせる理由はSLG46824/SLG46826でNVM消去時にACKを返さないというエラッタがあるためです。エラッタによってI2Cに準拠しない挙動をします。そのため、消去時にI2C通信エラーが毎回発生して以降のI2C通信ができません。対策としてページ消去ごとにUSBシリアルI2C変換基板V2内のSC18IM704をリセットさせて、I2C通信エラーを強制的にクリアさせています。SLG47004ではこのようなエラッタはありませんが、共通仕様としてSLG46824/SLG46826に合わせてジャンパさせてください(ジャンパなしの場合、処理が進まない場合があります)。

また、GreenPAKの設定メモリの書き込みや削除は1ページ16byte単位となっており、1ページ毎に書き換える必要があります。USBシリアルI2C変換基板V1ではSC18IM700を搭載しており、バッファサイズが16byteです。コマンドやアドレスを含めると20byte以上になり、バッファサイズ16byteを超えるため、書込ができません(分割して書込できない)。そのため、バッファサイズが256byteに拡張されたSC18IM704を搭載するUSBシリアルI2C変換基板V2のみ対応しています。なお、現在販売[スイッチサイエンスElecrow]しているUSBシリアルI2C変換基板はすべてSC18IM704を搭載したV2です。

MTPタイプのデバイスはSLG46824/SLG46826/SLG47004の他に先日発表されたSLG46827もありますが、まだ入手できていないため、使用可能か現時点では不明です。個人的にはSLG46824/SLG46826よりも、エラッタがなく、アナログ機能が強化されたSLG47004が好みです。SLG47004を活用したデバイスを今後、紹介したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2024年09月14日

シーリングカバー

先日、ARTWORKSTUDIOのGrid PLUS 4とGrid PLUS 3を購入しました。購入前から分かっていたことですが、『丸型引掛シーリング』『ローゼット型取付器具』に取り付ける場合、付属のシーリングカバーは対応していません。そのため、付属のシーリングカバーを外して使用する必要があります。

分かって取り付けたものの、実際に取り付けるとカバーがなく、せっかくのデザインの良さが半減しているようで気になります。

CoverBefore.png

市販品のカバー等も調べてみましたが、微妙にサイズが合わず、形状も微妙だったため、結局、自ら設計してみました。『丸型引掛シーリング』『ローゼット型取付器具』に対応するため、直径を一回り大きくしています。純正のカバー同様に2つのパーツの接合部分はちょうど、照明のパイプ部分と重なる設計です。また、留め具の突起があるため、片方のみ中央部分に切り欠きがあります。切り欠きがあるパーツと切り欠きがないパーツを組み合わせて使用します。




cover.png


CoverA.png

今回はJLPCBの3Dプリントサービスを利用して出力しました。1個1500円程度でペアで使用するため、1台当たり3000円でした。材料は白色のSLS(Nylon) 1172Pro Nylonと黒色のSLS(Nylon) 3201PA-F Nylonで2台分オーダーしました。送料含めて6000円強でした。

実際に取り付けてみるとシーリング取り付け位置の差で若干、天井との隙間が黒と白で違いましたが、格段に見栄えが良くなりました。

CoverAfter.png



CoverAfter2.png

STLデータはこちらで共有しています。また、JLPCBでもファイルをシェアしています。なお、非公式かつ材質や安全性等の評価をしていないため、データの使用・出力したカバーの使用は自己責任でお願いいたします。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 3Dプリンタ | このブログの読者になる | 更新情報をチェックする