aki_iic’s blog

己の欲せざる処人に施す事無かれ、狂人の真似するは即ち狂人なり

基板組立(その3)

 今月の基板(2025年11月)の続き。

aki-iic.hatenablog.com

 動いた順に(そのn)と命名する様にしたので順不同な処があります(本人以外は誰も気にしませんが:)。

 今回はダークホース:)のmc68ec000に関するものです。

www.nxp.jp

 資料は下記を参照下さい。作成中につき誤記等の情報が含まれる可能性があります(すみません)。

drive.google.com

 本件はmc68ec000をmode='L'で8bit bus modeで使用し、68008の代用にする事にあります。68ec000はmode='L'で8bit bus,mode='H' or Openで16bit bus modeで動作します(ダイナミックバスサイジングではなくリセット時に固定である点に注意)。

68000/68008/68ec000/68hc001(M68000UM/AD REV8)

68ec000/68hc001 mode pin

68ec000/68hc001 data bus (8bit時はD0-D7が有効、D8-15は未定義)

68ec000/68hc001 8bit mode時はLDSが有効(UDSは'H'固定)

 同様の機能はmc68hc001も有しておりますがオークション価格が数倍異なる(hc001の方が遥かに高い)のでワンコインで入手出来た68ec000を使う事にしました。

 なので自己引用になりますが元ネタ(m68008_v0)を以下に引用します(ご参考)↓

aki-iic.hatenablog.com

 以下、本題(転がし系ですが)・・・

1.基本的な考え方

ec000_v0 基本的な考え方

2.ブロック図

ec000_v0 ブロック図


3.概略仕様

ec000_v0 概略仕様

4.回路図

ec000_v0 回路図

5.パターン図(全レイヤ合成)

ec000_v0 パターン図(全レイヤ合成)

6.実装ボード(実物)

ec000_v0 実装ボード(現物)

 フォームファクタはいつもの100x100mm、2層、FR4の所謂ゾーン価格というかキャンペーン価格サイズです(やめられまへん:)。

 図中、左上はmc68ec000fn16(16Mhzで動作)、右上がpsd834f2j90(ロゴが見えるチップがあったので今後はそれにします)、左中が4Mbit sram、左下が16C550、右下が秋月のae-ft245rn(ae-ft245rlから倍の価格でリニューアルされた)です。リセットボタンが黄色なのは赤キャップを使い尽くした為。

#消費電力ですが0.12A(0.6W)とm68008_v0の1/3でチップは熱くならない様です。

 クロックも16Mhz迄いけるしオークション値(時価ですが)も手頃なので68008の代替で使いそう(アドレス24ビットなので8ビットバスの68000として使える(AVEC等の違いとピン配列が全く異なる点は注意)ので個人的には気に入っています。

7.開発環境

ec000_v0 開発環境(rlink)

 代わり映えしませんというか毎回同じ物で恐縮ですがこれで一通り賄えるので:)

20251212 10:58追記:省略が過ぎる気もする(すみません)ので追記します↓

aki-iic.hatenablog.com

 本機(に限らずですが)ではSTMicroのPSD834F2J90というPSD(Programmable System Device)を使用しています。一言で表現するならば、

 PSD834F2J90 = Flash(256KB) + SRAM(8KB) + GPIO + PLD + JTAG(ISP)

 なる部品であり、書き込みはISP(In System Program)で行います(上図のRlinkでUSB経由でPSDSoftExpressという専用ソフトで開発・書込を行う)。

#当方がこのObsolute(オークションサイトでは入手可能な場合もある様です)のマイナ部品を好むのは上記がJTAGISP出来るので煩雑なROMの書込/交換が必要ないという極めてものぐさな事由であります(既得権は渡さない的な:)。

 

8.dba画面

ec000_v0 dba画面

 何となく予感がされるかもしれませんが(正解です!)、本機のdbaは右上のメッセージ以外はm68008_v0のdbaを転がした物です、更に言えばPSDのロジックもm68008_v0の上位互換(DTACKを’L'に固定は流石にちょっと・・・と考えnDTACK=nASとPSD上で定義(大して変わらんが)しPB0から68ec000のdtackに接続しています。

 なのですみませんがPLDとdbaソースは省略(横着ですみません:)。

20251210 10:48追記:tkEasyGUIでボタンの色(文字、背景)が反映されない様なのでFreeSimpleGUIを試してみました。

retro μP tool画面(FreeSimpleGUI)

freesimplegui.readthedocs.io

 ライセンスはLGPLで、PySimpleGUIとの互換性もTkEasyGUIより高そうな印象(TkEasyGUIさん、ありがとう:)

9.Kicadのシンボルについて

 mc68ec000のシンボルがKicad9で2025年11月時点で見つけられなかったので68000FNをベースにローカルシンボルを作成しました。ピン配置は適当なのでA0が変な処に出てたりしてイマイチですがベースのシンボルを崩したく無かったのでご容赦。

9.1.68EC000のブロック図(データシートより)

68ec000ブロック図(NXP)

 図中、左下のMODEピンがLで8bit bus、H or Openで16biit busとなります。検知タイミングはハードリセット時、68ec000は68000と異なりVPAではなく68020/68030と同様なAVECピンが設けられています(図右下)、更に8bit bus modeの時はD0-7つまりLDSが有効なデータである点は要注意です(68020/68030の如きbig endianではありません)。更に加えて申せば、

 ピン配列が68000FNと微妙に全く異なる(電源ピン含めて)コイツ別チップと識別しないと大変な目に会う可能性があります(教訓)。

9.2.Kicadに入力(流用修正)したシンボル

68ec000fn Kicadシンボル(ローカルシンボル)

 よく見ると電源/GND含めて68000FNからピン配置がシフトしております。技術思想があるのでしょうがこのピン配列決めた奴〇〇に落ちろと言いたくなるの抑えつつ出来上がったシンボルとオリジナルの68000FNと並べたのが

9.3.68ec000と68000のシンボル列記

68ec000 68000 Kicad シンボル(ローカルシンボル)

 上図、左が68ec000fn、右が68000fnです。ピン配列が微妙にシフトしているんだな(溜息)・・・モトローラらしいというからしくないと言うか(溜息)。

 当方、今回初めてKicadのローカルシンボル作成しましたので何回も何回も何回もチェックして基板発注しましたが幸い、致命的な要素に当たらず基本動作はする様になった様で有り難かったです(やはりローカルシンボルは最後の手段:)。

10.まとめ

 ・68ec000をmode='L'で8bit bus modeで68008の代替として使用出来そうな事を試行しました(個人的には満足)。

 ・m68008_v1をベースにCPU周りだけ修正して他のPLD,ROM(dba)はほぼ流用(文言変更だけ)出来たのは有り難かったです。

 ・68008と異なりCPUも熱くならない様なので個人的には好印象:)