CNCルータでの両面基板制作 HeightMap [CNC]
「レトロマイコンZ80ボードの構想(その18)BDS-C」の記事に貼った写真のように3チップ構成のCP/Mボードの両面基板の作成が難航しています・・^^;
10cm程度の大きさの基板では基板の歪み?等からZ軸を一定にすることが難しくなってきてミリング不足で銅層を切断できない部分が発生してしまいます。
使用しているgrblControl Ver0.8にはHeightMapを自動生成する機能があり、「マーティーの工房日誌」等を参考にさせて頂きHeightMap機能を使ってみました。
コントロール基板のA5端子がエンドミルと基板の導通状態の入力になり、エンドミル部分とモーターのケースが導通状態だったので、モーターケースにピンヘッダを半田付けし、コントロール基板のGNDを接続しています。ネット情報ではモーターシャフトに接続している例が殆どですが、モーターケースに取付けることで取り外し忘れによるシャフトへのコードの絡まり事故の危険がなくなります。
また、モータ側をA5にしている例が殆どですがモーターからのノイズを考慮してGND側を接続しました。
A5端子からケーブルを伸ばしてミノムシグリップで基板に接続した状態でプローブしてMAPを自動生成しました。
基板の浮きによる測定誤差が出ないように基板は捨て板(MDF)に両面テープで張り付けました。
(両面テープはScoch製の「はがせる両面テープ」(厚さ0.15mm)を使っていて剥がし易いように基板側の接着面を手で何回かタッチして粘着力を低下させてから貼り付けましたが結局剥がすのが大変でした・・これは今後の課題です)
赤い部分が上に上がっている(Z軸の数値が大きい)部分です。
Z軸のゼロ調整の同じ原理で自動でできるのですが、従来の手作業でやっていた時より結構上側で調整されました。
手で調整する時はエンドミルを少し基板に押し付ける感じでやっていてパターン切削時のZ軸は-0.04~-0.06mm程度の設定にしていましたが、今回はZ軸-0.06mmではミリングが不十分で結局-0.12mmの位置をゼロに設定し直しました。
しかし、ミリング結果は(写真を撮ってない^^;)は上図の赤色部分(特に奥の方)が切削不足という結果でした orz
原因はマイクロレベルで右側が浮いていた?(であれば捨て板への基板の取付方法が問題ということになる)
結局、HeightMapを未使用状態にして、切削不足の部分を再度切削し直しました。
(NCVCでNCファイルを再生させて必要な部分を特定してからテキストエディタでNCファイルを編集して必要な部分のみ残す・・という作業をしています^^;)
トップ面は明日やってみます・・・
★2018/04/29 追記
トップ面のミリングをやってみました。
CNCでアウトラインの切出しも行ったのでボトム面も含め写真を貼っておきます。
ボトム面とトップ面の位置合せは四隅に開けた穴で行っていてソルダーレジスト塗布時にPCBに穴があると穴にソルダーレジストが詰まるので次の順番での作業を予定しています。
トップ面の切削開始時に最初に左下のホールのアイソレーション用の円形を切削するのですが、ホールの位置にたいしてズレていることが判りました。
そこで原点のY軸側を+0.8mmして穴が中心になるように調整しました(それまで原点はいじっていないのに何故ずれた??)
トップ面の切削結果を見ると右側の二つのホールをアイソレーションする円形の切削がY軸に+0.8mm程度ズレてしまっていますねぇorz
最初は切削の深さが足りなかったので調整したのですが、Y軸調整する前の切削痕が残っていました。(マイクロスコープは上下左右が逆転します)
現象としてはX軸が約100mm進むとY軸が0.8mm増加するということになります。
これはCNCのX軸とY軸が正確に直行していないということだと思います。この調整は結構大変そう・・・
久々にマイクロスコープを使ったのでボトム面のViaとトップ面のTQFPのピンを貼っておきます。
ボトム面は今回ほぼ想定通りの切削が出来ました。
トップ面は直線部分が少しヨレヨレになっているところもあり、想定より悪い状態です。
特にTQFP周りは配線がかなり細くなったり、TQFPのピン間に余分な細い銅層が残ったりしていて想定より悪い出来でした。
ボトム面の切削時は両面テープで基板を固定していたのですが剥がすのが結構大変だったのでトップ面では基板の淵をマスキングテープで固定して切削しました。
流石にマスキングテープでは固定力が弱かったことが出来の悪さの一つの原因ではないかと思います。
★2018/04/30 追記
切削した基板を眺めてみると腑に落ちない点が出来てきました。
DesignSparkMechanicalを使って再現シミュレーションをしてみました。
始めに歪みがある状態でボトム面を再現
次の手順(1項は上記の操作)で検証してみました。
再現結果が下図です。
確かに今回起きた現象が再現されます。
ここで不思議なのが基板切り出しはトップ面で行っているのでボトム面の基板の淵の四角形が切出した基板に対して傾いているはずなのですが上のボトム面の写真を見ると基板の切出しと基板の淵の四角形の関係は傾いておらず、Y軸のみ0.8mmズレているように見えます・・・・何故??
ボトム面の切削時に四隅に開けた位置決め用のホール(捨て板にも開いている)にトップ面を上にしてピンを立ててみました。
ピンが多少傾きますがきちんと立ちます(なので平行四辺形ではないということ)。
じゃ~ズレの原因はY軸の脱調??
[TOP] [ 前へ ] 連載記事 [ 次へ ]
10cm程度の大きさの基板では基板の歪み?等からZ軸を一定にすることが難しくなってきてミリング不足で銅層を切断できない部分が発生してしまいます。
使用しているgrblControl Ver0.8にはHeightMapを自動生成する機能があり、「マーティーの工房日誌」等を参考にさせて頂きHeightMap機能を使ってみました。
コントロール基板のA5端子がエンドミルと基板の導通状態の入力になり、エンドミル部分とモーターのケースが導通状態だったので、モーターケースにピンヘッダを半田付けし、コントロール基板のGNDを接続しています。ネット情報ではモーターシャフトに接続している例が殆どですが、モーターケースに取付けることで取り外し忘れによるシャフトへのコードの絡まり事故の危険がなくなります。
また、モータ側をA5にしている例が殆どですがモーターからのノイズを考慮してGND側を接続しました。
ハイトマップ用ピン |
|
A5端子からケーブルを伸ばしてミノムシグリップで基板に接続した状態でプローブしてMAPを自動生成しました。
基板の浮きによる測定誤差が出ないように基板は捨て板(MDF)に両面テープで張り付けました。
(両面テープはScoch製の「はがせる両面テープ」(厚さ0.15mm)を使っていて剥がし易いように基板側の接着面を手で何回かタッチして粘着力を低下させてから貼り付けましたが結局剥がすのが大変でした・・これは今後の課題です)
自動生成されたハイトマップ |
|
赤い部分が上に上がっている(Z軸の数値が大きい)部分です。
Z軸のゼロ調整の同じ原理で自動でできるのですが、従来の手作業でやっていた時より結構上側で調整されました。
手で調整する時はエンドミルを少し基板に押し付ける感じでやっていてパターン切削時のZ軸は-0.04~-0.06mm程度の設定にしていましたが、今回はZ軸-0.06mmではミリングが不十分で結局-0.12mmの位置をゼロに設定し直しました。
しかし、ミリング結果は(写真を撮ってない^^;)は上図の赤色部分(特に奥の方)が切削不足という結果でした orz
原因はマイクロレベルで右側が浮いていた?(であれば捨て板への基板の取付方法が問題ということになる)
結局、HeightMapを未使用状態にして、切削不足の部分を再度切削し直しました。
(NCVCでNCファイルを再生させて必要な部分を特定してからテキストエディタでNCファイルを編集して必要な部分のみ残す・・という作業をしています^^;)
トップ面は明日やってみます・・・
ボトム面切削結果 |
|
★2018/04/29 追記
トップ面のミリングをやってみました。
CNCでアウトラインの切出しも行ったのでボトム面も含め写真を貼っておきます。
ボトム面 |
|
トップ面 |
|
ボトム面とトップ面の位置合せは四隅に開けた穴で行っていてソルダーレジスト塗布時にPCBに穴があると穴にソルダーレジストが詰まるので次の順番での作業を予定しています。
- ボトム面の切削
- 四隅の穴開け
- トップ面の切削
- 基板切り出し
- ソルダーレジスト塗布
- 残りの穴開け
トップ面の切削開始時に最初に左下のホールのアイソレーション用の円形を切削するのですが、ホールの位置にたいしてズレていることが判りました。
そこで原点のY軸側を+0.8mmして穴が中心になるように調整しました(それまで原点はいじっていないのに何故ずれた??)
トップ面の切削結果を見ると右側の二つのホールをアイソレーションする円形の切削がY軸に+0.8mm程度ズレてしまっていますねぇorz
最初は切削の深さが足りなかったので調整したのですが、Y軸調整する前の切削痕が残っていました。(マイクロスコープは上下左右が逆転します)
ボトムとトップのY軸ズレ(トップ面左下ホール部) |
|
現象としてはX軸が約100mm進むとY軸が0.8mm増加するということになります。
これはCNCのX軸とY軸が正確に直行していないということだと思います。この調整は結構大変そう・・・
久々にマイクロスコープを使ったのでボトム面のViaとトップ面のTQFPのピンを貼っておきます。
ボトム面は今回ほぼ想定通りの切削が出来ました。
ボトム面のVia |
|
トップ面は直線部分が少しヨレヨレになっているところもあり、想定より悪い状態です。
特にTQFP周りは配線がかなり細くなったり、TQFPのピン間に余分な細い銅層が残ったりしていて想定より悪い出来でした。
ボトム面の切削時は両面テープで基板を固定していたのですが剥がすのが結構大変だったのでトップ面では基板の淵をマスキングテープで固定して切削しました。
流石にマスキングテープでは固定力が弱かったことが出来の悪さの一つの原因ではないかと思います。
トップ面のTQFPのピン |
|
★2018/04/30 追記
切削した基板を眺めてみると腑に落ちない点が出来てきました。
DesignSparkMechanicalを使って再現シミュレーションをしてみました。
始めに歪みがある状態でボトム面を再現
ボトム面再現 |
|
次の手順(1項は上記の操作)で検証してみました。
- (x、y)=(100,70)の四角形の右端の辺を0.5mm上(Y軸)にずらした平行四辺形を作成
- 厚さ1mm(Z軸)の3Dオブジェクト化(紫色)
- Z軸方向に2mm移動して複写(ピンク色)
- 複写したものをY軸で180度回転
- 左下のホールがズレるので複写したものを-0.5mmY軸方向に移動
再現結果が下図です。
トップ面(ピンク)再現 |
|
確かに今回起きた現象が再現されます。
ここで不思議なのが基板切り出しはトップ面で行っているのでボトム面の基板の淵の四角形が切出した基板に対して傾いているはずなのですが上のボトム面の写真を見ると基板の切出しと基板の淵の四角形の関係は傾いておらず、Y軸のみ0.8mmズレているように見えます・・・・何故??
ボトム面の切削時に四隅に開けた位置決め用のホール(捨て板にも開いている)にトップ面を上にしてピンを立ててみました。
ピンが多少傾きますがきちんと立ちます(なので平行四辺形ではないということ)。
じゃ~ズレの原因はY軸の脱調??
トップ面での位置決めピン |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]
ヒートガン購入 [購入]
今まで使っていたホットガンはamazonで購入した1800Wのもので温度調整が出来ませんでした。
ebayで温度調整機能付きで風量調整もできるものを見つけたので購入してみました。
送風の温度を1℃単位で設定できるし送風量も調節できます。音も割合静かです。消費電力は650Wで先端に付けるアタッチメントが3種類と簡易スタンドが付属しています。
お値段は約4400円程で従来の物の2倍くらいです。
今まで使っていたものは今後収縮チューブ等の加工に使いますが、表面実装部品の作業は今回購入したヒートガン(従来の物はホットガンですが今回購入したものはHeatGunですw)がメインになる予定です。
温度調整機能がない従来のものはかなり高温の熱風が出ていたようで、基板を熱しすぎるとワザワザ手作業で塗布したソルダーレジストが変質することがありました。
今回購入したものは温度設定ができるのでebayで購入したソルダーペースト(ケースに低溶点と書いてある)で試したところ220°付近で溶けだしたので230°の設定で使えば良さそうです。この温度ではソルダーレジストは変質しないことも確かめました。
★追記 2018/04/26 {
使用したソルダーペーストのケースには sn45pb35bi20と成分比が書いてありました(Sn:錫、Pb:鉛、Biは・・ビスマス)。融点は220℃より低いものと思います。手持ちでもう1種類あるソルダーペーストは「Sn63/Pb37 183℃」と書かれていてネットで調べると錫と鉛の混合ではこの比率の時が融点が最も低くなるようです。
}
ネット情報ではホットプレートやトースターなどを改造してリフローしている人が多いようですが、私は両面に部品を実装したいのでヒートガン派です(お手軽ですしね)
※下の写真では先端が黒ずんでいるように見えますが実物はピッカピカです。
★追記 2020/12/23 {
ヒートガンには専用のスタンドが付属していますが安定せず使いづらいので、本体にパチッとハマるタイプのスタンドを作ってみました。
下記のリンクからダウンロードできます(商用利用以外であれば使用可能とします)。
}
ebayで温度調整機能付きで風量調整もできるものを見つけたので購入してみました。
送風の温度を1℃単位で設定できるし送風量も調節できます。音も割合静かです。消費電力は650Wで先端に付けるアタッチメントが3種類と簡易スタンドが付属しています。
お値段は約4400円程で従来の物の2倍くらいです。
今まで使っていたものは今後収縮チューブ等の加工に使いますが、表面実装部品の作業は今回購入したヒートガン(従来の物はホットガンですが今回購入したものはHeatGunですw)がメインになる予定です。
温度調整機能がない従来のものはかなり高温の熱風が出ていたようで、基板を熱しすぎるとワザワザ手作業で塗布したソルダーレジストが変質することがありました。
今回購入したものは温度設定ができるのでebayで購入したソルダーペースト(ケースに低溶点と書いてある)で試したところ220°付近で溶けだしたので230°の設定で使えば良さそうです。この温度ではソルダーレジストは変質しないことも確かめました。
★追記 2018/04/26 {
使用したソルダーペーストのケースには sn45pb35bi20と成分比が書いてありました(Sn:錫、Pb:鉛、Biは・・ビスマス)。融点は220℃より低いものと思います。手持ちでもう1種類あるソルダーペーストは「Sn63/Pb37 183℃」と書かれていてネットで調べると錫と鉛の混合ではこの比率の時が融点が最も低くなるようです。
}
ネット情報ではホットプレートやトースターなどを改造してリフローしている人が多いようですが、私は両面に部品を実装したいのでヒートガン派です(お手軽ですしね)
※下の写真では先端が黒ずんでいるように見えますが実物はピッカピカです。
HeatGun |
|
★追記 2020/12/23 {
ヒートガンには専用のスタンドが付属していますが安定せず使いづらいので、本体にパチッとハマるタイプのスタンドを作ってみました。
下記のリンクからダウンロードできます(商用利用以外であれば使用可能とします)。
ヒートガンスタンド(CAD) |
|
ヒートガンスタンド |
|
レトロマイコンZ80ボードの構想(その18)BDS-C [Z80]
CP/Mが動いたのでBD Software社のサイトからパブリックドメインで提供されているBDS-Cで遊んでみました。
プロトタイプ宣言が使えなかったり引数の型宣言が昔風ですが、十分遊べるレベルです。
ソースは「PIC24FJ64GAでGAME言語(その4)」の記事に書いたpicle言語のライフゲームソースからBDS-C用にコンバージョンしたので変数名等picle風ですw
コンパイル時の状況は下記のとおりで、さすがにコンパイル速度は結構早い(約3秒程度)です。
BDS-Cでライフゲームのソースをコンパイル
実行中の様子が下のキャプチャです。同じパターンの繰り返しになると自動的に乱数でパターン生成するようにしています。
ソースは次のとおりです。上記のようにpicleソースからコンバージョンしたので変数などがpicle風のままです ^^;
ライフゲーム(BDS-C on CP/M)
話は変わりますが、CNCでのPCB化に苦戦しています。
10cm程度の大きさになると基板面の平面に歪みが出て、部分的にミリング不足で銅層が繋がってしまう現象が発生してしまいます。
使用している grblControl にはHeightMapを自動的に測定する機能もあるのでこれを利用できるようにしないとある程度のサイズの基板の作成作業が安定しない・・
現状のミリング結果を貼っておきます。基板切り出し前のもので手で大きめにカットした状態のものです。
トップ面では左上と右端が切削しきれていません・・orz
ボトム面は左端が若干、銅層が切断できていない状態です。
★2018/04/21 追記
このサイトにBDS Cについて色々な情報が書いてあり、HTML5で動くMSXエミュレータのWebMSXが紹介されていました。
上記のLifeGameをMSX用の画面制御に変更してブラウザ表示で動かしてみましたのでキャプチャを貼っておきます。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
プロトタイプ宣言が使えなかったり引数の型宣言が昔風ですが、十分遊べるレベルです。
ソースは「PIC24FJ64GAでGAME言語(その4)」の記事に書いたpicle言語のライフゲームソースからBDS-C用にコンバージョンしたので変数名等picle風ですw
コンパイル時の状況は下記のとおりで、さすがにコンパイル速度は結構早い(約3秒程度)です。
|
実行中の様子が下のキャプチャです。同じパターンの繰り返しになると自動的に乱数でパターン生成するようにしています。
LifeGame with BDS-C on CP/M80 |
|
ソースは次のとおりです。上記のようにpicleソースからコンバージョンしたので変数などがpicle風のままです ^^;
|
話は変わりますが、CNCでのPCB化に苦戦しています。
10cm程度の大きさになると基板面の平面に歪みが出て、部分的にミリング不足で銅層が繋がってしまう現象が発生してしまいます。
使用している grblControl にはHeightMapを自動的に測定する機能もあるのでこれを利用できるようにしないとある程度のサイズの基板の作成作業が安定しない・・
現状のミリング結果を貼っておきます。基板切り出し前のもので手で大きめにカットした状態のものです。
トップ面では左上と右端が切削しきれていません・・orz
トップパターン |
|
ボトム面は左端が若干、銅層が切断できていない状態です。
ボトムパターン |
|
★2018/04/21 追記
このサイトにBDS Cについて色々な情報が書いてあり、HTML5で動くMSXエミュレータのWebMSXが紹介されていました。
上記のLifeGameをMSX用の画面制御に変更してブラウザ表示で動かしてみましたのでキャプチャを貼っておきます。
LifeGame On MSX Webemulator |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]
レトロマイコンZ80ボードの構想(その17)HALT以外の方法 [Z80]
「レトロマイコンZ80ボードの構想(その12)CP/M80 BIOS検討4」の記事に書いたようにPICとZ80のインターフェースとしてHALTを使用しています。
HALT脱出のためにRESETを使っていますがこの場合、割込み用FFと割り込みモードがクリアされるのでZ80側で割込み処理を使いたい場合には今回のHALT+RESET方式は使えません。
簡単な回路でZ80側で割込みも使用できる方法を思いついたので実験してみました。
PICとZ80のインターフェースにIORQ/とWAIT/を使う方法です。まずはZ80のIO Input/Outputサイクルのタイミングが下図です。
TWの立下りでWAIT/がサンプリングされます。
そこで、IORQ/を抵抗を介してWAIT/に接続し、PIC側ではWAIT/の状態を監視します(下図の接続、RA1は1例であり他のポートでも可)。
PIC側はWAIT/がlowになったら、BUSREQ/をアクティブにしてからWAIT/を監視していたポートを出力に切替でhighを出力しZ80のWAIT状態を解除します。
Z80側はWAIT/が解除されるのでT3サイクルの立上りでBUSREQ/を検出してBUSACK/をアクティブにしてバスを開放します。
Z80側は単純にI/O命令(InputでもOutputでも可、Outputの場合はデータバスにPIC側に渡したい情報を載せることも可能)を実行するだけです。
処理手順は次のようになります(下記のサンプルソースでは「PIC_SRV」部分)
PIC側の処理手順は次のようになります(下記のサンプルソースでは「 PicSrv()」部分)
「レトロマイコンZ80ボードの構想(その12)CP/M80 BIOS検討4」の記事に書いたHALT+RESETを使った場合に比べてZ80/PIC双方の処理が簡単になります。(但し、WAIT/制御用のポートが余分に必要になるので今回はHALT/RESET方式を採用しています)
上記の記事と同様にCP/MのBIOSでのコンソール入出力関連の機能で実験してみました。
Z80のキーセンス処理のループ部分を抜き取ったロジアナ画面も貼っておきます。
Z80側の実験用ソースは次のとおりです。
「Start」と表示後、キー入力状態をチェックし、キー入力があった場合には入力データを読込み16進で表示します。
PIC-Z80間I/FにWAITを使用した実験(Z80:アセンブラ)
PIC側では上記のZ80のアセンブル結果のバイナリファイルを MemWr() での書込み処理に変換するツールを作り、picleソース内に取り込んでいます。
PIC側でのリスト表示と実行結果を下記に示します。
末尾にある「pushed」の部分は '1'、'2'、'3'のキー入力をした結果です。
PIC-Z80間I/FにWAITを使用した実験(PIC側:picle言語)
[TOP] [ 前へ ] 連載記事 [ 次へ ]
HALT脱出のためにRESETを使っていますがこの場合、割込み用FFと割り込みモードがクリアされるのでZ80側で割込み処理を使いたい場合には今回のHALT+RESET方式は使えません。
簡単な回路でZ80側で割込みも使用できる方法を思いついたので実験してみました。
PICとZ80のインターフェースにIORQ/とWAIT/を使う方法です。まずはZ80のIO Input/Outputサイクルのタイミングが下図です。
Z80 Input or Output Cycles |
|
TWの立下りでWAIT/がサンプリングされます。
そこで、IORQ/を抵抗を介してWAIT/に接続し、PIC側ではWAIT/の状態を監視します(下図の接続、RA1は1例であり他のポートでも可)。
PIC側はWAIT/がlowになったら、BUSREQ/をアクティブにしてからWAIT/を監視していたポートを出力に切替でhighを出力しZ80のWAIT状態を解除します。
Z80側はWAIT/が解除されるのでT3サイクルの立上りでBUSREQ/を検出してBUSACK/をアクティブにしてバスを開放します。
Z80側は単純にI/O命令(InputでもOutputでも可、Outputの場合はデータバスにPIC側に渡したい情報を載せることも可能)を実行するだけです。
処理手順は次のようになります(下記のサンプルソースでは「PIC_SRV」部分)
- ワークエリアにサービスIDとサービス処理に必要なパラメータを設定
- I/O命令を実行
- PICがワークエリアに設定した処理結果を参照
PIC側の処理手順は次のようになります(下記のサンプルソースでは「 PicSrv()」部分)
- WAIT/がアクティブになるまで待つ(入力ポートでWAIT/信号を監視)
- BUSREQ/をアクティブにする
- 上記のWAIT/監視ポートを出力に切替えhighを出力後、ポートを入力状態に戻す
- サービスIDとパラメータに従い処理し、結果をワークエリアに保存する
- BUSREQ/をインアクティブにする
「レトロマイコンZ80ボードの構想(その12)CP/M80 BIOS検討4」の記事に書いたHALT+RESETを使った場合に比べてZ80/PIC双方の処理が簡単になります。(但し、WAIT/制御用のポートが余分に必要になるので今回はHALT/RESET方式を採用しています)
上記の記事と同様にCP/MのBIOSでのコンソール入出力関連の機能で実験してみました。
Z80のキーセンス処理のループ部分を抜き取ったロジアナ画面も貼っておきます。
Z80からPICへのサービス要求処理時の信号サンプル(WAIT方式) |
|
Z80側の実験用ソースは次のとおりです。
「Start」と表示後、キー入力状態をチェックし、キー入力があった場合には入力データを読込み16進で表示します。
|
PIC側では上記のZ80のアセンブル結果のバイナリファイルを MemWr() での書込み処理に変換するツールを作り、picleソース内に取り込んでいます。
PIC側でのリスト表示と実行結果を下記に示します。
末尾にある「pushed」の部分は '1'、'2'、'3'のキー入力をした結果です。
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]
レトロマイコンZ80ボードの構想(その16)回路図とPCB化 [Z80]
前回の記事でWordStarも動いたことを追記しましたが、CP/Mは動いているようなので回路図を整理し、パターン設計してみました。
回路図は下記のとおりで、PIC24FJ64GA004の少ないI/Oで対応していて主な特徴は次のとおりです。
尚、CADソフトはDesignSparkPCBを使っています。
次にパターン図ですが、TQFT変換基板の作成記事の時のようにCNCでプリント基板を作る予定なので、私のCNC環境で制作できそうな範囲内で小型化してみました(基板サイズは100mm x 70mm)。
回路的にはシンプルなので割合簡単にできると思っていたら結構、時間が掛かりました。
SDカードのフットプリントはDesignSparkさんのサイトで探しましたが、手持ちのSDカードホルダと同じものが無かったので自作しています。
最初は別のICの配置でパターン設計を進めていましたが、PIC24FJの部分で行き詰りそうだったので途中でICの配置を変更しています(最初の配置パターンはtwitterを参照してくださいw)。
斜めのコネクトラインが何本か残っていますが、これらはグランドの接続で、グランドをベタパターン化することで接続されるので問題ありません。
★2018/04/02 追記 {
CNCで制作するために考慮した点は次のとおりです。
グランドをベタパターン化後のトップ面とボトム面のパターンが下の2つの図です。
基本としてはトップ面を横方向、ボトム面を縦方向の接続パターンにしていますが、PIC周りでは臨機応変に接続しています。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
前回の記事でWordStarも動いたことを追記しましたが、CP/Mは動いているようなので回路図を整理し、パターン設計してみました。
回路図は下記のとおりで、PIC24FJ64GA004の少ないI/Oで対応していて主な特徴は次のとおりです。
尚、CADソフトはDesignSparkPCBを使っています。
次にパターン図ですが、TQFT変換基板の作成記事の時のようにCNCでプリント基板を作る予定なので、私のCNC環境で制作できそうな範囲内で小型化してみました(基板サイズは100mm x 70mm)。
回路的にはシンプルなので割合簡単にできると思っていたら結構、時間が掛かりました。
SDカードのフットプリントはDesignSparkさんのサイトで探しましたが、手持ちのSDカードホルダと同じものが無かったので自作しています。
最初は別のICの配置でパターン設計を進めていましたが、PIC24FJの部分で行き詰りそうだったので途中でICの配置を変更しています(最初の配置パターンはtwitterを参照してくださいw)。
斜めのコネクトラインが何本か残っていますが、これらはグランドの接続で、グランドをベタパターン化することで接続されるので問題ありません。
★2018/04/02 追記 {
CNCで制作するために考慮した点は次のとおりです。
グランドをベタパターン化後のトップ面とボトム面のパターンが下の2つの図です。
基本としてはトップ面を横方向、ボトム面を縦方向の接続パターンにしていますが、PIC周りでは臨機応変に接続しています。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
回路図は下記のとおりで、PIC24FJ64GA004の少ないI/Oで対応していて主な特徴は次のとおりです。
尚、CADソフトはDesignSparkPCBを使っています。
- 実装IC
当初の目標どおり、3チップ構成でTTL等は使用していません。- Z84C0020PEC(Z80 20MHz:40-Pin DIP) 16MHzで動作
- HM628128ALP-7(128Kbytes SRAM アクセスタイム 70ns:32-Pin DIP)
- PIC24FJ64GA004(44-Pin TQFP) 32MHzで動作
- 外部メモリのアクセス範囲
PICから64KB全空間をアクセスできた方がいいですが、CP/Mを立ち上げるための必須条件はメモリ領域の最初と最後の領域だけアクセスできればいいのでPICからのメモリアクセス範囲は- 0000h - 07FFh
- F800h - FFFFh
- Z80-PIC 間インターフェース
HALTを使用していますが、I/O数削減のため、HALT脱出のためにNMI(INT)ではなくRESETを使っています。詳細はここを参照してください。 - Z80のクロック
PICに内蔵している発信器のクロックをZ80へ供給している(Z80は16MHzで動作)ので外付けのクリスタルも不要です。 - スイッチ入力用ポートでLED制御用のポートを兼用しています。
Pic24CPMの回路図 Ver0.01 |
|
次にパターン図ですが、TQFT変換基板の作成記事の時のようにCNCでプリント基板を作る予定なので、私のCNC環境で制作できそうな範囲内で小型化してみました(基板サイズは100mm x 70mm)。
回路的にはシンプルなので割合簡単にできると思っていたら結構、時間が掛かりました。
SDカードのフットプリントはDesignSparkさんのサイトで探しましたが、手持ちのSDカードホルダと同じものが無かったので自作しています。
最初は別のICの配置でパターン設計を進めていましたが、PIC24FJの部分で行き詰りそうだったので途中でICの配置を変更しています(最初の配置パターンはtwitterを参照してくださいw)。
斜めのコネクトラインが何本か残っていますが、これらはグランドの接続で、グランドをベタパターン化することで接続されるので問題ありません。
★2018/04/02 追記 {
CNCで制作するために考慮した点は次のとおりです。
- ピンヘッダ
ピンヘッダ部分はスルホール処理をしないのでボトム面で結線する(ICソケットは丸ピンタイプのものを使用してトップとボトムの両面を半田付けするので対象外) - PowerトラックのVia
Viaはスズメッキ線を通して処理(曲げ固定Via処理法)するのでVia部の抵抗は小さいため、Powerトラック用Viaも通常のサイズのものを使用している。 - Via
Via処理も手作業になるのでなるべくビア数は少なくした(つもり)。 - TQFP取付部
Via処理後はViaが基板面から出っ張るのでTQFPの半田付け作業の邪魔にならないようにTQFPの直下にはViaを打たない。
パターン図(GNDベタ化前) |
|
グランドをベタパターン化後のトップ面とボトム面のパターンが下の2つの図です。
基本としてはトップ面を横方向、ボトム面を縦方向の接続パターンにしていますが、PIC周りでは臨機応変に接続しています。
トップ面のパターン(GNDベタ化後) |
|
ボトム面のパターン(GNDベタ化後) |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]
前回の記事でWordStarも動いたことを追記しましたが、CP/Mは動いているようなので回路図を整理し、パターン設計してみました。
回路図は下記のとおりで、PIC24FJ64GA004の少ないI/Oで対応していて主な特徴は次のとおりです。
尚、CADソフトはDesignSparkPCBを使っています。
- 実装IC
当初の目標どおり、3チップ構成でTTL等は使用していません。- Z84C0020PEC(Z80 20MHz:40-Pin DIP) 16MHzで動作
- HM628128ALP-7(128Kbytes SRAM アクセスタイム 70ns:32-Pin DIP)
- PIC24FJ64GA004(44-Pin TQFP) 32MHzで動作
- 外部メモリのアクセス範囲
PICから64KB全空間をアクセスできた方がいいですが、CP/Mを立ち上げるための必須条件はメモリ領域の最初と最後の領域だけアクセスできればいいのでPICからのメモリアクセス範囲は- 0000h - 07FFh
- F800h - FFFFh
- Z80-PIC 間インターフェース
HALTを使用していますが、I/O数削減のため、HALT脱出のためにNMI(INT)ではなくRESETを使っています。詳細はここを参照してください。 - Z80のクロック
PICに内蔵している発信器のクロックをZ80へ供給している(Z80は16MHzで動作)ので外付けのクリスタルも不要です。 - スイッチ入力用ポートでLED制御用のポートを兼用しています。
Pic24CPMの回路図 Ver0.01 |
|
次にパターン図ですが、TQFT変換基板の作成記事の時のようにCNCでプリント基板を作る予定なので、私のCNC環境で制作できそうな範囲内で小型化してみました(基板サイズは100mm x 70mm)。
回路的にはシンプルなので割合簡単にできると思っていたら結構、時間が掛かりました。
SDカードのフットプリントはDesignSparkさんのサイトで探しましたが、手持ちのSDカードホルダと同じものが無かったので自作しています。
最初は別のICの配置でパターン設計を進めていましたが、PIC24FJの部分で行き詰りそうだったので途中でICの配置を変更しています(最初の配置パターンはtwitterを参照してくださいw)。
斜めのコネクトラインが何本か残っていますが、これらはグランドの接続で、グランドをベタパターン化することで接続されるので問題ありません。
★2018/04/02 追記 {
CNCで制作するために考慮した点は次のとおりです。
- ピンヘッダ
ピンヘッダ部分はスルホール処理をしないのでボトム面で結線する(ICソケットは丸ピンタイプのものを使用してトップとボトムの両面を半田付けするので対象外) - PowerトラックのVia
Viaはスズメッキ線を通して処理(曲げ固定Via処理法)するのでVia部の抵抗は小さいため、Powerトラック用Viaも通常のサイズのものを使用している。 - Via
Via処理も手作業になるのでなるべくビア数は少なくした(つもり)。 - TQFP取付部
Via処理後はViaが基板面から出っ張るのでTQFPの半田付け作業の邪魔にならないようにTQFPの直下にはViaを打たない。
パターン図(GNDベタ化前) |
|
グランドをベタパターン化後のトップ面とボトム面のパターンが下の2つの図です。
基本としてはトップ面を横方向、ボトム面を縦方向の接続パターンにしていますが、PIC周りでは臨機応変に接続しています。
トップ面のパターン(GNDベタ化後) |
|
ボトム面のパターン(GNDベタ化後) |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]