今日届いた基板(3)

JLCPCBからDHLで今日届いた基板です。

3種類届きました。1種は新規で2種はRev02でバグ修正版です。

今回は11月13日にJLCPCBに頼んで20日に届きました。基板のレジストにグリーン以外を頼んだ関係でJLCPCBの生産が3,4日で輸送が3日と言う感じです。

PC8001-CP/M 生産進捗です。

DHLの貨物追跡状況でほんとに国外から来たのと思えるほど早く届きました。JLCPCBからメールが来たと思ったら、数時間後にはDHLからメールが来てその2日後には手元に基板があります。

問題は、こんなに早く届いても週末までは時間があることです。

USBシリアルのボーレート

Arduino 等を使用しているとシリアルのボーレートがズレているという事はありませんが、INS8060の様にポートを使用したシリアルの場合や、使用する水晶が無く他の水晶を使用する場合ボーレート設定が規定の値ではなく異なった値に変更する場合があります。

例としてはINS8060ボードは1200bps設定ですが実ボードで文字化けが起こります。そんな場合はTeraTERMのボーレート設定を1210bps、1190bps等に変更して文字化けが発生しないボーレート探して安定したボーレートに設定します。

SBCZ8 Rev03の時は、7.3MHz水晶指定の所、手持ちに無かったので12MHzを水晶を使用して9600bpsところを15.7kpbsに変更して動作確認を実施しました。

今回は、Windows10の環境でDsub9ピンのRS-232Cインタフェースで接続する必要がありこんなケーブルを使用しました。使用しているチップは PL2303 です。

UGREEN USB シリアル変換ケーブル RS232 USB 9ピン

今回は、9600bpsの8倍に設定したかったのでTeraTERMのボーレート設定を76.8Kbpsに設定して通信をしました。簡易的な通信確認ですのでキーボード入力したキーのアスキーコードを送受信します。

例)キーボードから1を入力
31 が期待値です

実際は
00FE が帰ってきました

なんで???

結論はPL2303は76.8Kbpsと設定した場合には、56.8Kbpsに設定されていました。その上は115.2Kbpsという事で選択画面に無い値には設定できなかった様です。

という事で ”USBシリアル ボーレート” で検索した所 秋山製作所 さんの”各種USB-シリアル変換ケーブルで動作する通信速度…”にUSBシリアルチップでの動作実験結果をまとめたドキュメントがありました。参考になりますので一度見ていただくと良いと思います。

この結果ではPL2303を使用したのがダメでいつものようにFT232やCH340を使用すれば今回の問題は発生しませんでした。

逆に考えれば、PL2303を使用したおかげでUSBシリアルのボーレート設定に対する知識が少し増えました。

秋山製作所 さんは シュアウェア で RS-232C Monitor and Analyzer を作られています。今回参考にさせて頂いたドキュメントなどよりまた使用させていただきたいと思いました。

【参考リンク】
 下記のwebサイトを参考にさせて頂きました。

PIC24Z8068Kを作った(2)

PICマイコンは面白い」 のブログで製作されているPic24CPMPic24CPM68Kを1枚のボードにしたPIC24Z8068KでPic24CPMが動作しました。

PIC24Z8068KをPic24CPM相当に修正(RAMをAS6C4008からTC551001に変更)
A18-A16を修正し RAMをAS6C4008 に戻して動作する事は確認済みです。

2in1に変更する段階でAS6C4008(512Kbyte)を使用してアドレス上位A18-A16をプルアップしていました。このためZ80のアドレスとPic24が設定するアドレスに問題が発生していました。

この確認の為、 A18-A16を修正しSRAMをTC551001(128Kbyte)に変更しました。

これでも動作しません。

最大のバグはZ80にNEC製D70008AC-8を使用した事の様です。写真の様にZ84C0020に変更した所問題なくCP/Mが起動しMBASIC上でSTARTRAKが動作しました。

Pic24CPMの起動画面とA,Bドライブのディレクトリ表示です。

今回の修正項目

  • A18-A16を68K時はプルアップ、Z80時はレベル固定

Rev02への変更

  • ZRES用のプルアップをジャンパーに影響されない様に変更する
  • KHALTのジャンパーは不要

しっかりとブログの方に”Z84C0020PEG(20MHz版のZ80、PICからクロック供給する関係で16MHzで動作)”と書いてありますので8MHzを使用した私のバグです。

【参考リンク】
 下記のwebサイトを参考にさせて頂きました。

PIC24Z8068Kを作った

PICマイコンは面白い」 のブログで製作されているPic24CPMPic24CPM68Kを1枚のボードにしたPIC24Z8068Kを組付けました。

PIC24Z8068KをPic24CPM68k設定にしました。

このボードで、Z80とMC68008と同時に使用できるわけではなく1枚のボードで設定によりどちらかのボードとして使用できるだけのボードです。

現在、 Pic24CPM はPIC24の起動メッセージが表示されるのみで動作できていません。ボード発注時からわかっていたシリアルの誤りは修正していましたので起動メッセージは表示されました。

SDカードの認識はOK、しかしSDカードのDI,DOが逆でしたので修正しましたが、状況は変わらずです。

という事でハードが悪いかCP/Mのイメージ―が悪いかわかりませんので Pic24CPM の動作は一時保留として、 Pic24CPM68K の動作確認に進む事にしました。

Pic24CPM68Kの動作としては、Z80を取り外して,MC68008を搭載してジャンパー設定を変更するだけです。この時24,31pinの設定はCLK側に設定しました。

後は、PIC24にHEXファイルをPICkit3を使用してHEXファイルを書込み、CP/M68K用のSDカードを準備しました。 PIC24にHEXファイル のアップデートはOneBitLoaderをダウンロードして実施すれば2回目以降は PICkit3 が必要ないのかな?

PIC24Z8068Kの Pic24CPM68K 動作はCP/M68Kの起動とファイルの確認、EXITによるpicleコンパイラの環境への復帰が確認できました。

これでPIC24のSDカードアクセスの確認とSRAM&MC68008に問題ない事がわかりましたのでZ80とPIC24の関係とCP/Mのイメージに対して確認すれば PIC24Z8068K の Pic24CPM 動作もできそうです。

今回このボードを作った目的は、3in1(Z80,MC68008,V20)を目指したのですがV20はダメで2in1となりましたが、PCBを2種類作った時に使用しないボードがたまるので共通化してみました。それと1枚で手間を惜しまなければCP/MもCP/M-68Kも楽しめます。(現在はCP/MはNGですが)

【参考リンク】
 下記のwebサイトを参考にさせて頂きました。

今日届いた基板たち(2)

JLCPCBからSF Expressで今日届いた基板です。 10月10日着予定の基板が13日遅れ、頼んでから26日かかりました。

PIC24Z8068K基板のJLCPCBの生産進捗です。このボードは、skyriverさんの3チップのボードの2in1 版です。

SF Expressの貨物追跡状況で途中10月8日から17日まで行方不明になっていました。また、その後もいろいろあり本日13日遅れで届きました。

ArduinoMegaでApple1

ArduinoMegaにRetroshield for Arduino MegaのR6502を追加してApple1として使ってみました。

基板は、他のボードを作った時のスペースに間借りしています。こちらでキットとして購入できますので気になった方はいかがでしょうか。

ArduinoMegaにk65c02_apple1を書き込んで起動した状態です。LCD Keypad Shieldを付けていますのでdefine USE_LCD_KEYPAD 1に変更しています。

WOZモニタで0番地、FFF0番地から16バイトをダンプ後に、BASICで”Hello World”を表示してみました。

LCD Keypad Shield の表示を見ると動作速度はおおよそ150KHzの様です。RetroShield 6502 for Arduino Megaの詳しい動作説明はRetroShield 6502 Operationにあります。

このRetroShield 6502 for Arduino Megaは使用するCPUによってジャンパーの切替えが必要です。

  1. R65x02
    • 1ピン:ショート、36ピン:オープン
  2. W65C02
    • 1ピン:オープン、36ピン:ショート 

今回はR6502を使用していますので1ピン(VSS):ショート、36ピン(BE):オープンで使用しています。

RetroShield 6502 for Arduino Mega で今回はApple1を使用しましたが、Arduinoのスケッチには下記があります。

  • k65c02_apple1
  • k65c02_c64
  • k65c02_kim1

このRetroshield for Arduino Megaが対応しているCPUは

  • MOS: 6502
  • Motorola: 6809
  • Intel: 8031 – 8085
  • RCA: 1802
  • Zilog: Z80

でこれからも増えていくようです。

覚え書きとしてこのシールドには”DIO2.h”が使用されている為Arduino Library ListよりDIO2をインストールしました。このライブラリーはIOの高速化対応みたいなので調べてこれから使用させていただく予定です。

PICの学習中

これから使用しようとしているPICが、本屋の本を見ていたら通称PIC16F1シリーズと出ていましたので久しぶりにPICの本を購入させていただきました。

前回購入したのはUSBを使用する為に購入した本でこれで2冊目です。もちろん著者は後閑さんですね。

この本は、2018年4月には出ていたのでもっと早く気が付いていればと思います。

PIC16F1シリーズ、8ピンはクロックジェネレータやボーレートジェネレータ&リセットに、多ピンの物はブートローダ等に使用します。機能的にも端子配置からもおすすめですね。

PIC16F1シリーズの使用予定品です。
            RAM   ROM
8ピン PIC12F1822  128Byte 2KWord
8ピン PIC12F1572  256Byte 2KWord
8ピン PIC16F18313  256Byte 2KWord  
14ピン PIC16F18323 256Byte 2KWord  
20ピン PIC16F18346 2KByte 16KWord  
28ピン PIC16F18857 4KByte 32KWord
40ピン PIC16F18877 4KByte 32KWord  

Apple1 のドキュメント

Apple1のドキュメントやBASICのプログラムは、Briel Computer の replica1用に提供されているCurrent replica 1 plus CD: replica 1 plus CDApple1 をダウンロードして頂くのが良いと思います。

ダウンロードしたファイル内にはreplica1の回路図やファームウェアなどもありますので興味のある方は詳しく調べてみてください。

  • r1pluscd.zip\CD\manuals APPLE1のドキュメント類があります
  • r1pluscd.zip\CD\software BASICファイルがあります

replica1ですが現在はReactiveMicroの方で入手可能ですので興味のある方どうぞ。

R6502 Apple1 Replicaを作る

Apple1レプリカも今回で3機種目です。L-Star PlusA-ONEのクーロン、そして今回がR6502 Apple1 Replicaという3種でApple1の本当のクーロンは残念ながらありません。

Hvetebolleで公開されているR6502 Apple1 Replicaを作らせていただきました。こちらのバージョンはビデオ出力&キーボード対応はありませんがArduino NANOを使用したUSBシリアルでのPC接続が可能な構成になっています。また、RC2014に対応したバックプレーンにて拡張も可能な構成になっているようです。

作成に当たってGithubで公開されているデータについて下記変更をさせていただきました。変更させて頂いたKicadおよびPIC12F1822のデータはこちらに公開させていただきます。ライセンスはオリジナルの”GNU GENERAL PUBLIC LICENSE”です。

  • PIC12F1822の追加
  • X1の代わりにPIC12F1822で1MHzのクロック供給
  • NE555の代わりにPIC12F1822でパワーオンリセットおよびリセットSWの500mseリセットを生成

部品表

品名品番個数商社
ROM28C2561
RAMHM622561
CPUR6502(WD65C02)1
IC74LS001
IC74LS041
IC74LS1381① ②
ICMCP23S171  ②
ICMC68211
ICPIC12F18221① ②
ICArduino NANO1  ②
コンデンサ0.1μF(104)8① ②
コンデンサ0.01μF(103)1① ②
抵抗3.3KΩ5  ②
抵抗330Ω1  ②
抵抗10KΩ1  ②
ICソケット8pin1① ②
ICソケット14pin2① ②
ICソケット16pin1① ②
ICソケット28pin300mil1① ②
ICソケット28pin600mil2① ②
ICソケット40pin2① ②
ピンソケットピンソケット1×152  ②
ジャンパージャンパーピン8① ②
ピンヘッダーピンヘッダー 1×22① ②
ピンヘッダーピンヘッダー 1×33① ②
L型ピンヘッダーL型ピンヘッダー 1×21① ②
L型ピンヘッダーL型ピンヘッダー 1×401① ②
LEDLED1① ②
タクトスイッチ6mx6m1① ②
商社は
①オレンジピコショップ秋月電子通商

L型ピンヘッダーについては各社で扱っている形状が異なります。
個人的には②の形状を使用しています。(1x40は実装していません)
RC2014用の1x40の形状は①のタイプが通常使用されている様です。

Arduino NANOはamazonにてUSBシリアルがCH340の物がUSBシリアルがFTDIに比較して安いです。
私はこちらの物を購入しました。

オレンジピコショップさんで3,603円=3,393+210(IC、ICソケット、ジャンパー等)
秋月電子さんで1,385円=885+500(IC,抵抗、コンデンサ、ピンヘッダー等)
Arduino NANO 450円
で基板以外に部品代で5,500円ほどかかります。
参考に各ショップでの購入品を下記に追加いたしました。HM62256が在庫なしの為630円抜けています。

PIC12F1822を使用しない場合は、
NE555は②にあります。
水晶発振器は 千石電商オンラインショップ にあります
 水晶発振器 1MHz ハーフサイズ 水晶発振器 1MHz フルサイズ 

組付け

基板と部品がそろったら背の低い部品から取り付けて半田付していきます。

抵抗を実装します。(R2,R3,R4は実装しません)

  • 黒枠 R1,R6,R7,R8,R10に3.3KΩを実装します
  • 青枠 R5に330Ωを実装します
  • 黄枠 R9に10KΩを実装します
  • USB POWERのL型ピンヘッダー2×1を実装しても良いと思います

コンデンサを実装します。(C6,C11は実装しません)

  • 黒枠 C1,C2,C3,C4,C5,C7,C8,C9に0.1μF(104)を実装します
  • 黄枠 C12に0.01 μF(103)を実装します

ICソケットを実装します。(U6は実装しません)

  • U1,U8に40ピンICソケットを実装します
  • U2,U4に28ピン600milICソケットを実装します
  • U3に16ピンICソケットを実装します
  • U5,U7に 14ピンICソケットを実装します
  • U9に28ピン300milICソケットを実装します
  • U10に8ピンICソケットを実装します

LED、タクトスイッチ、L型ピンヘッダー、ピンソケットを実装します。

  • LEDは、上記のように足の長い方がアノード、短い方がカソードで写真に合わせて挿入し実装
  • タクトスイッチを実装
  • L型ピンソケットは黄色①、黒②の商社で扱っている者になります
  • ピンソケット1×14はArduino NANO用2個に実装

ピンヘッダーを実装します。

  • 2x1のピンヘッダーを2か所実装
  • 3x1のピンヘッダーを5か所実装

ジャンパーピンを実装します。

  • 黄枠 ショート
  • 青枠 WD65C02の場合はオープン、他のCPUの場合はショート
  • 緑枠 イネーブル側をショート(イネーブル位置は基板裏側を確認)
  • 水色枠 ROMに0番地から書き込みましたのでグランドとショート

水色枠の拡大写真です。(C12は裏側に0.01μFのコンデンサを実装しています)

プログラム書込み

1. Arduino NANOへの書込み 
  RC6502-Apple-1-Replica-master\RC6502 Serial IO\pia_communicator\pia_communicator.ino
  スケッチをコンパイルして書き込みます。
  コンパイル時にMCP23S17-masterライブラリが必要になります。
Githubには、 MCP23S17 のライブラリが数種あります。私が使用させて頂いたのは下記URLのライブラリでlibrariesの下に MCP23S17-master で展開して使用いたしました。
 URL:  https://github.com/MajenkoLibraries/MCP23S17 

2.28C256への書込み
   RC6502-Apple-1-Replica-master\RC6502 ROM\firmware\8K Basic & Monitor.bin 
  を0番地( $0000-$1FFF )から書き込んで下さい。

3.PIC12F1822への書込み
  R6502ckgen\R6502ckgen.hex
  を書き込んで下さい

1,2についてはgithubからダウンロードしたファイル
3についてはこのblogからダウンロードしたファイル

ICを実装

この画像には alt 属性が指定されておらず、ファイル名は 190816003.png です
  • PIC12F1822
  • MCP23S17
  • MC6821
  • R6502
  • HM62256
  • 28C256
  • 74LS138
  • 74LS04
  • 74LS00
  • Arduino NANO

確認

  • テスタなどで電源、グランドがショートしていないことを確認
  • 半田付け忘れが無いか確認
  • ジャンパー設定を確認

APPLE1のドキュメントやBASICファイルの入手方法を参考にして下さい。

R6502 Apple1 replica の使い方はこちらを参考にしてください。 (作成予定です)