SSブログ

STC90C52RCにBASIC52の書き込み [マイコン]

実は、STC89C52RCを多めに買ったら、1個STC90C52RCが混じっていました。
これにもBASIC52を書き込んでみました。
というか、STC89C52RCへの書き込み成功の前にこちらに書き込んでみたのでした。

あっさり書き込めて、BASIC52はちゃんと動きました。
nice!(0)  コメント(0) 

STC89C52RC 書き込み 成功編 [マイコン]

STC_BS52.jpg
書き込みできました。さらに、BASIC52が動きました。

書き込みできなかった原因は、書き込みソフトでMCUの選択を間違えていました。
STC89C52RCとすべき所をSTC89C52を選択していました。

書き込み環境ですが、
書き込みソフトは、
stc-isp-15xx-v6.86L.exe
を使いました。
USBシリアル変換モジュールは、
http://daisan.blog.so-net.ne.jp/2018-02-17-1
これです。
書込回路は、
STC-TOOL.pdf の 15ページにある書き込み回路図を参考にしました。
基本、TxD、RxD、GNDをモジュールとつなぎ、外部から5V電源、それとリセット回路です。
さらに、tomi9jpさんからアドバイスをいただき、P1.0、P1.1を10kでプルアップしてあります。

注意点は、TxD、RxDはクロス接続です。ショットキーダイオードが入っていますが、これがないと、しっかり電源OFFできません。電源のON、OFFも重要なポイントなので、電源スイッチがついたボードを用意しました。
クリスタルは、11.0592MHzがお約束。BASIC52はこれが基準です。
STCISP2.jpg

書き込み手順
書き込みソフトのインストールは単なるコピペです。
CH340Gのドライバもインストールしておきます。
パソコンと書き込みボードを接続します。書き込みボードの電源はOFFです。
ソフトを起動します。
MCUタイプを選択します。STC89C52RCです。なにやら文字化けした表示がありますが、無視。
書き込みするHEXファイルを選択します。BASIC52のV1.3である、version_1p3_hex.HEXを使いました。
COMは自動認識しているはずです。
DownLoad/Progranボタンを押します。
ここで書き込みボードの電源をONします。このとき、CPUはどのモードで立ち上がるか判断しているようです。
書き込みできたら、ソフトの右下に表示されます。書き込みは、ほんの数秒です。

今回間違えた、STC89C52RCとSTC89C52について、
STC89C52は実物が存在するのかわかりませんが、書き込みソフト上に存在します。
STC89C52_RC.jpg
上がSTC89C52RCを選択し、version_1p3_hex.HEXを読み込んだときのバッファの最後です。
20 22
と、8kバイトちょうどまで読み込んでいます。
真ん中がSTC89C52を選択し、version_1p3_hex.HEXを読み込もうとしたときの警告です。
下がそれを無視して読み込んだときのバッファです。
最後の7バイトが欠けています。この部分は、MCU IDが書かれている予約領域のようです。
うっかりするとはまり込む落とし穴なのでためしてみようとお思いの方はご注意ください。

お世話になったtomi9jpさん
参考にさせていただいたprittyparakeetさん
ありがとうございました。
STCマイコンに関する日本語の情報はこの辺りしか見つかりませんでした。
nice!(0)  コメント(6) 

STC89C52 書き込み 失敗編 [マイコン]

STC89C52_1.jpg
手元に8052BASICボードがあることと、以前、AT89C52にBASIC52を書き込んで動かしたことがあるので、今度はSTC89C52にBASIC52を書き込んでみようとしました。それにしても、情報は無いですね。
とにかく、手持ちのROMライターはどれも対応していません。
情報は、専用ソフトを使い、シリアル経由で書き込めるとのこと。
ならば、その専用ソフトはどれか、シリアルラインのつなぎ方がわかれば書き込めるはず。
tomi9jpさんが書き込まれていますので、できるはず。

ここが本家のようですが、中国語。
とりあえず、CH340Gボード経由で繋いでみることにした。
ソフトは、
stc-isp-15xx-v6.86L.exe
で、WinXPのノートを引っ張り出してきてインストール(コピーだけだったけど)した。
しかし、ソフトは、CH340Gを認識していますが、CPUを認識しているようには思えない。
水晶は、11.0592MHzで発振しています。
ソフト上ではちゃんとMCUをSTC89C52にセットしました。
あと、何が必要なのだろう。

追記
STC-TOOL.PDFによれば、CH340Gを使う場合、TxDにダイオード、RxDに300オームの抵抗を入れる事になっている。やってみたけど、変化なし。
それから、書き込みボードの電源を入れると、21ピンになにやらパルスが出ます。
さらに、ソフトからMCUチェック等通信を行うと、5ピンだったか6ピンに方形波が出ます。
書き込み済?生きていることには違いないのかな。
nice!(1)  コメント(2) 

手持ちのZ280 [マイコン]

Z280.jpg
左側が、もう30年近く昔に秋葉原で買ったZ280です。たしか、ADOだったかな。
87年なので、ホント、初期の物ですね。
右が偽造品です。
Z8028010VSCで Z180なんてあり得ません。1007って、2010年?
ちなみに、偽造品裏側の四隅にあるくぼみ、右上のくぼみに
PHILIPPINES
とマーキングされています。これ、何者なのでしょうか。
nice!(0)  コメント(0) 

「SBC6809Eアダプタ」作ってみました。 [マイコン]

68Eadpt.jpg
写真の通り動きました。
今回も参考にさせていただきました。ありがとうございます。
https://sbc738827564.wordpress.com/2018/03/17/sbc6809e%e3%82%a2%e3%83%80%e3%83%97%e3%82%bf%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%9f/

工夫したのは、PICの出力ピンを変えました。裏返しますから、反対側が良いだろうと。
なので、Qは、2ピンから、Eは、3ピンから出ています。

失敗は、瞬間接着剤で止めたのですが、つけすぎたのか、ソケットの足が4つふさがってしまい、気づかず挿入して、足を曲げてしまいました。
針でコリコリ穴を開けて何とかなりました。現在、接着は外れています。
でも、半田付け時は、接着していた方が作業はしやすいです。
後は、写真で判断してください。

結果
未確認だった、HD63C09EPを動かして見ました。全く動かないもの1つ、Eボードでたまに動くもの1つと言う結果でした。
全く動かないものは、どちらのボードでも脈すらありませんでしたので、不良品決定です。
これ、たまに動く63C09EPのとなりにあったので、Eであった可能性は高いと思います。
結局、手持ちの09に偽造品はありませんでした

その後
手持ちのHD63B09Pが動かなかった(実は只の接触不良)ので、ebayでHD63B09Pを買ったところ、偽装のEタイプでした。CMOSではありましたが。
普段利用しているAliでは偽装に当たったことがありませんので、店舗によるように思います。
nice!(0)  コメント(0) 

6309<->6809のチェックだ [マイコン]

CHK309.jpg
vintagechipsさん作成のCHK309でチェックしました。とりあえず、HD63C09Pです。Eタイプは後回し。
今のところ、偽造品は見つかっていません。
こうなると、手持ちに偽造品が無いことが悔しいなあ。

秋葉原で1個買うつもりでAliで10個買って、偽造品が入っているか、わくわくしそう。病気か
nice!(1)  コメント(0) 

HD63C09Eを動かす ちょっとやってみた [マイコン]

SBC6809ボードが届いたので、部品を取り付け、Eタイプかためしてみた。
発振器がブレッドボード外付けなので、どうも接触が悪いみたいで不安定です。
発振周波数を1MHz程度にして、
MC38B09EP 1個
HD68B09EP 3個
HD63C09EP 2個
全部動きました。これらは国内でだいぶ前に購入したものです。
あと、昨年Ailで買ったHD63C09EPが少々ありますが、しまい込んでいるので後で確認します。

ついでにHD63C09EPで発振周波数を上げてみました。
10 PRINT "A"
20 GOTO 10
これをRUNさせます。
発振モジュールは現在最大で15.9MHz程度なので、EQはその1/4で3.97MHzです。
で、最大でも動くんですね。その状態で、CTRL+Cで止まりました。
ただし、リセットしても立ち上がりません。
ちなみに、MC68B09EPは、EQが2.9MHz以上になると、BASICの行番号が解釈できなくなります。

TEST_E.jpg
絵の上の方は、周波数を上げすぎた時、少し下げると、動いているようですが、行番号が・・・、
下が、2.9MHzの時でした。

手元に、63B系がないのでもう一つ不確定ですが、
EQの周波数が3.2MHz程度で動けばC、動かなければBではないでしょうか。

なお、まえに動かなかった68B09P,63B09Pもためしてみましたが、オシロを当ててみても、脈すらありませんでしたので、不良品確定です。

追記
実のところ、この結果は68B50の影響を無視しています。これがボトルネックの可能性があるかもしれません。
nice!(0)  コメント(0) 

HD63C09Eを動かす(前)実験 [マイコン]

CLK_E.jpg
HD63C09Eを動かすには、外部クロックが必要です。同じ作るなら発振周波数を変えるようにすれば、BとCがどこまで使えるか、わかるのではないかという淡い思いもあります。
と言うことで、用意したのが、発振器が秋月電子のLTC1799使用オシレーターモジュール(I-01569)です。
これ、1KHzから30MHzまで発振します。今回は、1MHzから15MHzまでにしています。
この信号をGAL(実際は、ATMELのATF16V8Bだけど)でEとQの信号を作ります。(今回、使用言語はABEL、開発環境は、ispLEVERを使いました。というか、ABELなら少しわかるので。)
この部分で元発振の1/4になります。
(写真、フォーカスが手前のジャンパーワイヤーに合ってしまいました。)
クロックは写真のようになります。
これを見て、クロックの電圧が低いなあ、と思われるでしょうね。
でも大丈夫、実験に使った電源は寿命の尽きたニッ水電池4個分、この時点で2.4Vしかありませんでした。
さあ、次は基板の改造だ。
nice!(0)  コメント(0) 

63C09P 68B09P [マイコン]

63.68.jpg
左HD63C09Pと右MC68B09Pのアドレスバス波形です。CMOSであるHD63C09Pはほぼ5Vフルスイングしています。NMOSであるMC68B09Pは、4V弱くらい。

あれ?めもりあってませんね。OWONのオシロでは5V近くと3.8Vくらいでした。画面を貼り付けるのに、DSOを使ったのですが、どこかおかしかったみたい。
でも、パルスの高さが違うのはわかりますよね。
nice!(1)  コメント(0) 

始めて買ったTTL [電子工作]

DYAmZS2VAAAqvAA[1].jpg
東芝製のTD3404APです。SN7404相当。
先ほどTL866のチェックが通りました。
nice!(0)  コメント(0) 

4ICs, Z80 homemade computerその4 CP/Mが動いた [マイコン]

Z80MBCCPM.jpg
CP/Mが動きました。写真は、書き込み中に写しました。
LEDがカラフルですが、これ、ダ○ソーのクリスマスイルミネーションをばらして取り出しました。

書き込みに参考にさせていただいたのは、こちらです。
https://sbc738827564.wordpress.com/2018/01/18/z80-mbc%e3%81%a7cp-m%e3%81%8c%e5%8b%95%e4%bd%9c%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/

さらりと書かれていますが、書き込みするファイルが8つあり、そこそこ時間がかかります。
1つのファイルをアップロードするのに約20分、SRAMに書き込むのに1分少々かかります。
私は、夜中に始めたので、途中で電源を切り、翌朝に続きを書き込みました。
再開後、もう一度、iDisk - S250317.hexをアップロードし、iDisk – Intel-Hex Disk image Loaderが動いてから、続きのファイルをアップロード、書き込んで行きました。

それから、メニューは、USERスイッチを押している間に、RESETスイッチを押し、USERスイッチを離すと出てきます。
nice!(0)  コメント(0) 

4ICs, Z80 homemade computerその3 なんとか動いた [マイコン]

Z80MCBRR.jpg
実は、こちら
https://sbc738827564.wordpress.com/2018/01/16/z80-mbc4chipz80%e3%83%9c%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e4%bd%9c%e3%81%97%e3%81%9f/
を参考に試行錯誤しました。
しかし、arduinoは使い慣れていないので、わからないことばかりでした。
それでも何とか、ブートローダーを書き込み、S221116_R100218_Z80.inoを書き込むところまで来ました。
ところが、しばらく書き込んだ後、エラーと出ました。えーーー、なんでーーー。
どこかで間違えたのか、別の方法を考えてみよう。
ふと、arduinoIDEに「コンパイルしたバイナリを出力」と言うメニューがある。
やってみるとHEXファイルが2つできている。
これをTL866でATmega32Aに書き込めないか。cnifigデータは、すでにATmega32Aにブートローダーを書き込んでいるので、それと同じにすればよいはず。
2つあるHEXファイルのどちらか、たぶん、bootloaderと書いてある方がメモリサイズに合うので、こちらでしょう。
これをブランクATmega32Aに書き込み、ボードにセット。
Teratermと繋いでみる。あれ、文字化け。じつは、IDEからの書き込み時、DTRがあるという理由から、CH340Gインターフェースを使っていました。これをそのまま使っていました。
これを秋月TTL-232R-5Vに変えてみると、動きました。
試しに、先ほど書き込みエラーとなったATmega23Aに交換してみると、動きます。
たぶん、そのエラーは、書き込み終了後、リセットして、もう一度アクセスしようとしたら繋がらなかったと言うエラーだったのでしょう。たぶん、元々のブートローダーは書き換えられたのでしょう。
それが証拠に、S221116_R100218_Z80.inoのバイナリを生ATmega23Aに書き込んだだけで動いたのですから。
これで、先達の皆さんとは違う方法で動かしたと言っていいのかな。

nice!(0)  コメント(0) 

4ICs, Z80 homemade computerその2 ATMega32A用のbootloader [マイコン]

4ICs, Z80 homemade computerで使うATmega32AはArduinoで作成したスケッチを描き込みます。
そのスケッチを書き込むために事前にbootloaderを書き込んでおくことになりますが、ATmega32A用のbootloaderはArduinoIDEには標準で入っていません。
ArduinoIDEにMightyCoreボードマネージャ追加すれば良いらしい。
https://github.com/MCUdude/MightyCore#how-to-install
ここを見ると、ボードマネージャーの追加以外にマニュアルインストールもできるらしい。
Download ZIPの中身を見ると、bootloaderのHEXファイルがいっぱいある。
ATmega32用だけでもいっぱいある。
使用するボーレートとクリスタルの違いでこれだけある訳か。
で、どれを使うのだ?

追記
"Internal 8MHZ osc."

ですか。

結論
実は、ここはTL866でATmega32Aを書き込んで、ボードを動かせないかと言うもくろみで書き始めたのですが、その3をご覧いただければ、意味が無くなったことがわかると思います。
nice!(0)  コメント(0) 

シリアルインターフェイスとCMOS回路 [マイコン]

SIF6303.jpg
プロセッサ誌1985年11月号にこんな回路が載っています。
22kで繋がっています。さらに、10kでプルアップしてあります。
74HC245で受けていますが、CMOSには違いありません。
リセット回路も論理を反転させていますね。
これで、どんな挙動をするのかためしてみたいなあ。

それにしても、「HD36C09P」と前回の「その12」のアクセスがドンドン上がります。
中身がたいしたことがないので申し訳ないです。

nice!(0)  コメント(2) 

モトローラ6800伝説」で遊ぶ 6809編その12 63C09P [マイコン]

6309_T.jpg
ひとまず、電解コンデンサを二つとも10uFにしました。
電源を入れると、正常に動きます。上の絵で、RUNさせると"Hello World"が表示され、"OK"が出ます。
ここで電源を切って1分後電源を入れました。"OK"が出ました。
LISTとキーを打つと、RAMの内容が出ましたので、消えていないようです。
もう一度電源を切ります。続いてシリアルコネクタを外して再び繋ぎます。
"・・"はそのときのものです。
もう一度電源を入れると、6は文字化けしたようですが、再び動き出しました。
63C09Pの37ピン、リセット端子をジャンパーコードでGNDとちょんちょんとショートさせました。
そのとき"OK"が出ました。ショート回数は3回ですね。
ここまでが実際にあったことです。
これでわかることは何でしょうか。
RAMがバックアップできるほどの微弱電流が流れている。
リセットがしっかりかからない。
と言うことなのかなあ。
以前、リセット用のICにPST518とか言うのがありましたよね。

nice!(0)  コメント(2)