2024年1月28日日曜日

自作CPUで遊ぶ 17

以前、デバッグ用コントローラを組み立てたが未完成だったので今日はその続きをした。
パルスモータドライバはDM556Dという中華製ドライバを使っているが、分解して基板を確認したところ制御信号はEL6N137というフォトカプラで受けている。
ネットでこのフォトカプラの仕様を調べると、LEDはVF=1.4V (typ)@IF=10mAだった。Zynqで直接10mA引くのはできないのでNPNトランジスタを介してドライブしている。 手持ちで2SC1815が大量にあったのでそれを使った。回路はユニバーサル基板に実装した。ZYBOのPMODコネクタは全部inchピッチになっているので写真のように横付けする感じ良い感じに接続できた。GNDを強化したかったのでウラ面に銅箔テープを貼ってGND電位にしている。トランジスタのベース抵抗やコレクタ部の電流制限抵抗はチップ抵抗を使った。パスコンは4つのPMODコネクタの3.3V-GND間に10uFと0.1uFを入れた。また各トランジスタのコレクタ部に0.1uFを入れておいた。
あと、X/Y/Z各軸のリミットスイッチと非常停止スイッチ、ゼロ調整プローブ用入力の回路も入れなければならない。

2024年1月14日日曜日

自作CPUで遊ぶ 16

あっという間に年が明けて2024年になってしまった。 
昨年は定年を迎えたり実父が亡くなったりと自分にとっては色々と節目の年だった。
2024年はどんな年になるだろうか。 
今年は何とかブログの更新頻度を上げていければと考えている。

前回はロジック部の実装を行った。
今回はZyboのpetalinux上でzumi32用のプログラムをコンパイルし、zumi32側にダウンロードして動作させるまでの実装と確認をした。zumi32側の命令メモリとデータメモリは下図のようにAXI I/F経由でARMからもアクセスできるようにしている。
petalinuxではこの空間をuioでアクセス出来るようにした。以下はプログラムローダのuioでマッピングしている部分だ。
C言語で書かれたzumi32用プログラムはコンパイルしてelfを生成後、objedumpでtextセグメントdataセグメントをそれぞれ抽出してダウンロード用のデータファイルに変換する。 Makefileで一連の処理を行う。
生成された.codeと.dataをプログラムローダでzumi32側のメモリにロードする。
以下のようなLチカプログラムを書いて、コンパイル〜ダウンロード&実行してみた。
無事動作した。

ERROR: Failed to spawn fakeroot worker to run ...

なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz  家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...