SBCZ80の改造で使用したPIC12F1822のファームウェアの紹介です。
今回は盛りだくさんになったため、全部ピン使用することになりました。
①シリアルインタフェース用クロック信号
②CPUクロック信号
③CPUリセット信号
④DRAMリフレッシュ用NMI信号
このPIC12F1822は、低価格で入手できます。秋月電子通商では、現在1個 ¥110(税抜き)で販売されています。ファームウェアを開発したり、書き込みしたり手間はかかりますが、その柔軟性に魅力があります。
今回、参照クロック、PWM、Timer0、Timer1各モジュールを使用しましたが、利用パターンに慣れると、結構簡単に利用できます。ただ、各モジュールで利用可能なピンの制約がある点に注意する必要があります。
PIC12F1822のファームウェアのソースコードを公開しますので、自己責任で自由に利用ください。なお、2MHz/4MHz/8MHz各CPUクロックのHEXファイルも同梱していますので、必要に応じ活用ください。
ちなみに、CPUクロック4MHz版は、Z80Aの4MHzに最適で、シリアルインタフェース用クロックと合わせて使用をお勧めします。シリアル速度自動設定が不要な場合は、5ピン(RXD)は、未配線にしておいてください。
DRAMリフレッシュ用NMI信号は、48KBにDRAM拡張する場合に使用したら良いかと思います。CPUリセット信号は、CPUリセット不良が発生するCPUとSIOの相性が悪い場合に利用ください。4ピン(PWR)に入れる直列抵抗は、ICSP(インサーキットプログラミング)しないのであれば、不要です。
この機会にICSP経由のソケットアダプタを製作しPICkit3との組み合わせて使いました。
下記は、電源投入時のPWR、~RST、~NMI、SIOのRTSの波形です。
次は、リセットボタン使用時のPWR、~RST、~NMI、SIOのRTSの波形です。