はんだ吸取器の製作(その1) [3D_printer]
「電動こて先クリーナー」の連載記事ではブラシ式のこて手先クリーナーの製作について書きましたが、今回は電動はんだ吸取器の製作について書いてみたいと思います。
実は AliExpress で下の写真の上側に映っている電動式の半田吸取器を購入したのですが、半田吸引用のソレノイドがうまく動かなかったことから返金手続きを行いました。そこで写真の中央に映っているポンプと下側に映っているバネ動作のワンショット式の吸取器を使ってはんだ吸取器を自作することにしました。合金チュウチュウと命名します(イメージ悪すぎ?w)。
★変更 2023/07/01 {
イメージ悪すぎなので名称をチュー太郎に変更します。
}
自作と言っても市販のサンハヤト製はんだシュッ太郎もどき(以降、シュッ太郎もどきと記す)とポンプを組み合わせただけではあるのですが、どれくらいの効果があるものなのか評価したいという気持ちもあります。
3D CADで設計したものが下図になります。ポンプの部分はグリップ部分に収めました。グリップは細くしたかったのでポンプを格納できる最小限のサイズにしている関係上、角を丸めるフィレット量が少なくなり、少し角張った印象があります。
内蔵部品は下図のように収めました。後方奥にある円柱形のものはポンプの電源用のDCプラグです。
ポンプのモーターの固定は下図のように内部にサポート用の突起を設けました。
シリコンチューブでポンプの吸引口とシュッ太郎もどきのテール部を連結します。テール部分にシリコンチューブを取り付けるために作成した部品が下図になります。左側はネジ山を切って取付てあるので取り外し可能で、この部分にスチールたわしを詰めて吸取った半田をフィルターし、ポンプへの半田屑の流入を防止します。
中央にある溝は気密性を確保するためのゴム製リングパッキン用のもので、パッキンはピストン部についていたものを流用します。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
実は AliExpress で下の写真の上側に映っている電動式の半田吸取器を購入したのですが、半田吸引用のソレノイドがうまく動かなかったことから返金手続きを行いました。そこで写真の中央に映っているポンプと下側に映っているバネ動作のワンショット式の吸取器を使ってはんだ吸取器を自作することにしました。
★変更 2023/07/01 {
イメージ悪すぎなので名称をチュー太郎に変更します。
}
購入したはんだ吸取器と自作用の部品 |
|
自作と言っても市販のサンハヤト製はんだシュッ太郎もどき(以降、シュッ太郎もどきと記す)とポンプを組み合わせただけではあるのですが、どれくらいの効果があるものなのか評価したいという気持ちもあります。
3D CADで設計したものが下図になります。ポンプの部分はグリップ部分に収めました。グリップは細くしたかったのでポンプを格納できる最小限のサイズにしている関係上、角を丸めるフィレット量が少なくなり、少し角張った印象があります。
はんだ吸取器の外観(CAD画面) |
|
内蔵部品は下図のように収めました。後方奥にある円柱形のものはポンプの電源用のDCプラグです。
はんだ吸取器の内蔵部品位置(CAD画面) |
|
ポンプのモーターの固定は下図のように内部にサポート用の突起を設けました。
グリップ部内側の構造(CAD画面) |
|
シリコンチューブでポンプの吸引口とシュッ太郎もどきのテール部を連結します。テール部分にシリコンチューブを取り付けるために作成した部品が下図になります。左側はネジ山を切って取付てあるので取り外し可能で、この部分にスチールたわしを詰めて吸取った半田をフィルターし、ポンプへの半田屑の流入を防止します。
中央にある溝は気密性を確保するためのゴム製リングパッキン用のもので、パッキンはピストン部についていたものを流用します。
吸い込み部のフィルタ構造(CAD画面) |
|
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
ポケコン(G850)用拡張ボード(EborsyEEP)でCP/M(その2) [ポケコン]
前回の記事で書いたように今回設計したプリント基板を JLCPCB さんに製造依頼していましたが、無事届きました。
プリント基板のアップ写真が下の写真です。緑色のレジストだと土日も製造工程が進むようなのでレジストを緑色にしました(製造日数の表示が緑レジストでは2日間で青レジストだと4日間だった)
基板周辺に若干ザラツキがあったので少しヤスったら滑らかな手触りになりました。
部品実装後の状態が下の写真になります。動作確認前なので GAL はソケットを使って実装しています。最初はうまく動かず、左上の3つのショットキーバリアダイオードを半田付けし直した関係で少し汚いですね^^;
尚、GAL 用の PLCC ソケットは半田ごてを使って半田付けしました。
下の写真がボトム面です。左下の EEP の LED が少し傾いていますね^^;
ICパッケージの刻印が読めるように撮りたかったのですが、読める状態では基板面が反射してしまったので残念ながらこの写真では刻印は読めません。
一発で動作とは行きませんでしたが、EEPROM とのやり取りができる状態になりました。下図は EEPROM の ID を読んだ際のロジアナ波形です。ビットレートは図から判るように送信/受信でそれぞれ 308Kbps/236Kbps 程です。
ロジアナのソフトウェアをバージョンアップしたので従来より見た目がかっこよくなりました。従来の方が良かった機能もあるので従来のソフトウェアも使える状態にしています。
次は CP/M の移植ですが、今回使用している EEPROM(W25Q32JV)は最小の消去単位(=書込み単位)は 4KB なのでこのバッファを BIOS 領域に配置すると CP/M のサイズが小さくなる(PC-G850は C000H-FFFFH を RAM 化できないのでただでさえ CP/M のサイズが小さい)のでバンク切替えしながらどのように効率よくハンドリングすればいいのか少し考えてみます。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
プリント基板のアップ写真が下の写真です。緑色のレジストだと土日も製造工程が進むようなのでレジストを緑色にしました(製造日数の表示が緑レジストでは2日間で青レジストだと4日間だった)
基板周辺に若干ザラツキがあったので少しヤスったら滑らかな手触りになりました。
EborsyEEP のプリント基板 |
|
部品実装後の状態が下の写真になります。動作確認前なので GAL はソケットを使って実装しています。最初はうまく動かず、左上の3つのショットキーバリアダイオードを半田付けし直した関係で少し汚いですね^^;
尚、GAL 用の PLCC ソケットは半田ごてを使って半田付けしました。
EborsyEEP のプリント基板(部品実装後のトップ面) |
|
下の写真がボトム面です。左下の EEP の LED が少し傾いていますね^^;
ICパッケージの刻印が読めるように撮りたかったのですが、読める状態では基板面が反射してしまったので残念ながらこの写真では刻印は読めません。
EborsyEEP のプリント基板(部品実装後のボトム面) |
|
一発で動作とは行きませんでしたが、EEPROM とのやり取りができる状態になりました。下図は EEPROM の ID を読んだ際のロジアナ波形です。ビットレートは図から判るように送信/受信でそれぞれ 308Kbps/236Kbps 程です。
ロジアナのソフトウェアをバージョンアップしたので従来より見た目がかっこよくなりました。従来の方が良かった機能もあるので従来のソフトウェアも使える状態にしています。
EEPROM の ID 読み取り時のロジアナ波形例 |
|
次は CP/M の移植ですが、今回使用している EEPROM(W25Q32JV)は最小の消去単位(=書込み単位)は 4KB なのでこのバッファを BIOS 領域に配置すると CP/M のサイズが小さくなる(PC-G850は C000H-FFFFH を RAM 化できないのでただでさえ CP/M のサイズが小さい)のでバンク切替えしながらどのように効率よくハンドリングすればいいのか少し考えてみます。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
ポケコン(G850)用拡張ボード(EborsyEEP)でCP/M [ポケコン]
「シリアルEEPROMでCP/M」の記事で書いたように 32MBit の EEPROM(W25Q32JVSIQ)で CP/M を起動できたので「ポケコン(G850)用拡張基板(その7)仮想画面でCP/M」の記事で書いた CP/M 起動のために使用しているメモリと SD カードを実装したシステムバス用拡張基板(Eborsy)を EEPROM 対応し、EborsyEEP を作ることにしました。
これにより SD カードの使用制限から解放され、また相性問題も無くなるというメリットがあります。
回路図を下図に示します。
★追記 2023/06/10 {
間違い発見!3つのショットキーバリアダイオードの方向が逆ですね^^;
⇒パターン図は問題無かったので回路図のみ修正しました
}
グランドベタ化前のパターン図が下図になります。今回は最初から動作確認用の端子を設けない小型設計にしていますが、SPI 信号だけはロジアナで解析できるように配慮しました。緑色の部分はグランドです。
下図がグランドベタ化後のトップ面のパターン図です。 GAL は PLCC パッケージにしました。トラックが結構込み合っていますね。いつものことではありますがオートルータではエラーが取れなかったのでオールマニュアルで設計しています。AIで奇麗に自動ルーティングできるようになって欲しいものですね。
下図がボトム面です。ボトム面には SRAM と シリアル EEPROM 等を配置しました。
下図が3D表示したトップ面です。朱色の立方体は G850 のシステムバス部へ接続するコネクタです。いつの間にか aitendo さんでの販売が復活していましたが、「ポケコン(G850)用拡張基板(その10)コンパクト化(その2)」の記事で書いたように以前のものとピンの曲げ方向が逆になっているので注意が必要です(このため EborsyCompact のパターンを再利用できなかったorz)。
PLCC の GAL 周辺には部品を実装しないことでソケットも付けられるように考慮しました。
下図がボトム面の3D表示です。ICの1番ピンの位置が揃っていませんが、配線がし易いように配置したためです。
JLCPCB さんへ製造依頼しました。最近、また円安なので少し心配でしたが PayPal の換金レートは145.55円/$でした(今年の1月は135.70だった)
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
これにより SD カードの使用制限から解放され、また相性問題も無くなるというメリットがあります。
回路図を下図に示します。
EborsyEEP の回路図 |
|
間違い発見!3つのショットキーバリアダイオードの方向が逆ですね^^;
⇒パターン図は問題無かったので回路図のみ修正しました
}
グランドベタ化前のパターン図が下図になります。今回は最初から動作確認用の端子を設けない小型設計にしていますが、SPI 信号だけはロジアナで解析できるように配慮しました。緑色の部分はグランドです。
EborsyEEP のパターン図(グランドベタ化前) |
|
下図がグランドベタ化後のトップ面のパターン図です。 GAL は PLCC パッケージにしました。トラックが結構込み合っていますね。いつものことではありますがオートルータではエラーが取れなかったのでオールマニュアルで設計しています。AIで奇麗に自動ルーティングできるようになって欲しいものですね。
EborsyEEP のパターン図(トップ面) |
|
下図がボトム面です。ボトム面には SRAM と シリアル EEPROM 等を配置しました。
EborsyEEP のパターン図(ボトム面) |
|
下図が3D表示したトップ面です。朱色の立方体は G850 のシステムバス部へ接続するコネクタです。いつの間にか aitendo さんでの販売が復活していましたが、「ポケコン(G850)用拡張基板(その10)コンパクト化(その2)」の記事で書いたように以前のものとピンの曲げ方向が逆になっているので注意が必要です(このため EborsyCompact のパターンを再利用できなかったorz)。
PLCC の GAL 周辺には部品を実装しないことでソケットも付けられるように考慮しました。
EborsyEEP の3D表示(トップ面) |
|
下図がボトム面の3D表示です。ICの1番ピンの位置が揃っていませんが、配線がし易いように配置したためです。
EborsyEEP の3D表示(ボトム面) |
|
JLCPCB さんへ製造依頼しました。最近、また円安なので少し心配でしたが PayPal の換金レートは145.55円/$でした(今年の1月は135.70だった)
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
シリアルEEPROMでCP/M [Z80]
SDカードは使用制限があるので自作基板で使用した場合、公開し辛い面がありました。SDカードの中でも使用されているであろうEEPROMを使って CP/M を起動できないか実験しました。
秋月さんで販売している1MbitのシリアルEEPROM(S-24CM01CIーJ8T1U4)を購入していましたが、今回はより容量が大きな海外の通販で見つけた 32MBit EEPROM(W25Q32JVSIQ) を使って実験してみました。後者の方が書込み速度が遅く、許容している書込み回数も少ないのですが容量の大きさを優先しました。
最近、秋月さんで 4Mbit のフラッシュメモリ(IS25LP040E) を販売開始したようです。
今回使用した 32MBit EEPROM(W25Q32JV) のブロック図が下図になります。消去時の単位は 4KBytes/32KByte/64KByte/chiperase と柔軟性があり、最小単位は 4KByte です。
EEPROM とのインターフェースは基本的には SPI で今回は GAL を使って Z80 側のソフトウェアで対応することにしました。この EEPROM はデータ線が 2bit や 4bit の拡張インターフェースの機能もあるのでソフト対応しておくことで後日高速化できる余地を残すという意図もあります。
まずはデータ線が 1bit の SPI インターフェースでの接続実験を行いました。
下図は今回の EEPROM 評価時の回路です。上述のように GAL(GAL22V10D)を使用して EEPROM を接続しています。
実験環境は下図のように Z80GalCompact の CPU ソケットを拡張して EEPROM を実装しています。
下図はデバイスの ID を読込んだ際のロジアナ波形です。ソフト対応での転送ビットレートは送信/受信でそれぞれ 770KB/590KB 程です。Z80GalCompact は Z80 が 20MHz で動作していますが、シリアル通信用のタイマー割込みのため実質速度は 16MHz 程度です。
下図はステータス1~3の書込み後に読み出した際のロジアナ波形です。今回使用した EEPROM は型名の最後の Special Optoins が'Q'で Status2 の QE bit が 1 に固定になっています。
下図はデータリード時の波形で先頭の 0x03 がリードコマンドで次の 3 バイトがリード対象のアドレスでその後にリードデータが続きます。複数個所でクロックに隙間が発生しているのはシリアル通信のためのタイマー割込みのためです(この波形はCP/M起動時のもので割込み許可状態で動作している)。
リードデータ長に関しては自由にリードできるのですが、ライトの場合は、事前にデータを消去する必要があり、消去の最小単位が前述したように4Kバイトなので CP/M で使う場合のブロック長は最小でも4Kバイトということになります。
CP/M で使用する場合のブロック長は前述のように消去の最小単位である4Kバイトにし、ディスクパラメータを新規に作成し、ブロッキング/デブロッキング処理を実装しました。
下図は CP/M を立ち上げて STAT コマンドで DSK: のパラメータを表示した際の画面キャプチャーです。モニタで CP/M の HEX ファイルをロード後、GO コマンドで起動していますが、 シリアル送受信の割込みルーチンをBIOS 内の処理へ切替えている関係でスタートメッセージの先頭が文字化けしていますね。4KB のバッファを BIOS 内に持っているため 59K CP/M です。
アクセス速度に関しては SD カード時との差異を殆ど感じずに違和感の無い速度でした(消去に時間が掛かるので大量書込み時は遅く感じるかもしれません)。
冒頭で書いたように SD カードを利用して開発した CP/M 基板を公開し辛かったのですが、今回シリアル EEPROM で CP/M を起動できたので色々応用できそうです。
★追記 2023/06/06 {
HITECH-C で hello.c をコンパイルするのに要する時間を比較してみました。下の画面キャプチャで前半がSDカードでブートした従来の CP/M で後半が EEPROM でブートした CP/M です。コンパイル時間を TeraTerm のマクロで計測した結果が "Start=" と書かれた行になります。特にリンク時間(=書込み量が多い)が遅い感じで EEPROM の場合、1.75倍程度の時間が掛かっています。
}
Twitterに投稿した動画付きメッセージも貼っておきます。
秋月さんで販売している1MbitのシリアルEEPROM(S-24CM01CIーJ8T1U4)を購入していましたが、今回はより容量が大きな海外の通販で見つけた 32MBit EEPROM(W25Q32JVSIQ) を使って実験してみました。後者の方が書込み速度が遅く、許容している書込み回数も少ないのですが容量の大きさを優先しました。
最近、秋月さんで 4Mbit のフラッシュメモリ(IS25LP040E) を販売開始したようです。
今回使用した 32MBit EEPROM(W25Q32JV) のブロック図が下図になります。消去時の単位は 4KBytes/32KByte/64KByte/chiperase と柔軟性があり、最小単位は 4KByte です。
EEPROM(W25Q32JV)のブロック図 |
|
EEPROM とのインターフェースは基本的には SPI で今回は GAL を使って Z80 側のソフトウェアで対応することにしました。この EEPROM はデータ線が 2bit や 4bit の拡張インターフェースの機能もあるのでソフト対応しておくことで後日高速化できる余地を残すという意図もあります。
まずはデータ線が 1bit の SPI インターフェースでの接続実験を行いました。
下図は今回の EEPROM 評価時の回路です。上述のように GAL(GAL22V10D)を使用して EEPROM を接続しています。
EEPROM 評価用回路図 |
|
実験環境は下図のように Z80GalCompact の CPU ソケットを拡張して EEPROM を実装しています。
Z80GalCompact に接続した EEPROM 基板 |
|
EEPROM 部のZOOM |
|
下図はデバイスの ID を読込んだ際のロジアナ波形です。ソフト対応での転送ビットレートは送信/受信でそれぞれ 770KB/590KB 程です。Z80GalCompact は Z80 が 20MHz で動作していますが、シリアル通信用のタイマー割込みのため実質速度は 16MHz 程度です。
デバイスID読込み時のロジアナ波形例 |
|
下図はステータス1~3の書込み後に読み出した際のロジアナ波形です。今回使用した EEPROM は型名の最後の Special Optoins が'Q'で Status2 の QE bit が 1 に固定になっています。
ステータスリード/ライト時のロジアナ波形例 |
|
下図はデータリード時の波形で先頭の 0x03 がリードコマンドで次の 3 バイトがリード対象のアドレスでその後にリードデータが続きます。複数個所でクロックに隙間が発生しているのはシリアル通信のためのタイマー割込みのためです(この波形はCP/M起動時のもので割込み許可状態で動作している)。
リードデータ長に関しては自由にリードできるのですが、ライトの場合は、事前にデータを消去する必要があり、消去の最小単位が前述したように4Kバイトなので CP/M で使う場合のブロック長は最小でも4Kバイトということになります。
シリアルEEPROMリード時のロジアナ波形例 |
|
CP/M で使用する場合のブロック長は前述のように消去の最小単位である4Kバイトにし、ディスクパラメータを新規に作成し、ブロッキング/デブロッキング処理を実装しました。
下図は CP/M を立ち上げて STAT コマンドで DSK: のパラメータを表示した際の画面キャプチャーです。モニタで CP/M の HEX ファイルをロード後、GO コマンドで起動していますが、 シリアル送受信の割込みルーチンをBIOS 内の処理へ切替えている関係でスタートメッセージの先頭が文字化けしていますね。4KB のバッファを BIOS 内に持っているため 59K CP/M です。
アクセス速度に関しては SD カード時との差異を殆ど感じずに違和感の無い速度でした(消去に時間が掛かるので大量書込み時は遅く感じるかもしれません)。
DSK:パラメータ表示画面例 |
|
冒頭で書いたように SD カードを利用して開発した CP/M 基板を公開し辛かったのですが、今回シリアル EEPROM で CP/M を起動できたので色々応用できそうです。
★追記 2023/06/06 {
HITECH-C で hello.c をコンパイルするのに要する時間を比較してみました。下の画面キャプチャで前半がSDカードでブートした従来の CP/M で後半が EEPROM でブートした CP/M です。コンパイル時間を TeraTerm のマクロで計測した結果が "Start=" と書かれた行になります。特にリンク時間(=書込み量が多い)が遅い感じで EEPROM の場合、1.75倍程度の時間が掛かっています。
HITECH-Cでのhello.cコンパイル時間比較 |
|
★追記 2023/06/13 {
今回使用している EEPROM は読出しに関しては任意のアドレスから任意長のリードができるので EEPROM バッファにヒットしない場合には EEPROM からデータを読込んで DMA 領域に直に書き込むようにしました。このようにブロッキング/デブロッキング処理をハイブリッド化することで読込み時のバッファリング処理を極力省き高速化しました。
この変更後の HITECH-C で hello.c をコンパイルするのに要した時間を測定した結果が下図になります。前半が SD ブートで後半が EEPROM ブートになります。なんと SD カード上でのコンパイルより高速になりました^^
}
今回使用している EEPROM は読出しに関しては任意のアドレスから任意長のリードができるので EEPROM バッファにヒットしない場合には EEPROM からデータを読込んで DMA 領域に直に書き込むようにしました。このようにブロッキング/デブロッキング処理をハイブリッド化することで読込み時のバッファリング処理を極力省き高速化しました。
この変更後の HITECH-C で hello.c をコンパイルするのに要した時間を測定した結果が下図になります。前半が SD ブートで後半が EEPROM ブートになります。なんと SD カード上でのコンパイルより高速になりました^^
EEPROM上でのhello.cコンパイル時間(改善版) |
|
Twitterに投稿した動画付きメッセージも貼っておきます。
32MbitのシリアルEEPROM(W25Q32JVS)を使ってCP/Mを起動できました
— skyriver (@wcinp) June 4, 2023
体感的にはアクセスがSDカードより遅いという感じはありませんでした
消去の最小単位が4Kバイトなのでディスクパラメータを新設しブロッキング/デブロッキング処理を実装しています#Z80GalCompact #CPMhttps://t.co/eYbvvMhUSV pic.twitter.com/N11V0VYHYD