2020/07/15(水)中古の8751Hの書き込みが上手く行かない

イレーズ時間を長めに取っても上手く書き込めない幾つかの8751Hだが、外部ROMモードで試して見た結果、イレーズ直後は動作するが、書き込みに失敗すると外部ROMモードでも動作しない。そして再度イレーズすると外部モードでは動作する。8751HにはLockビットがあるので、書き込み失敗はそれが原因かな。それとも長めにイレーズせよというのはLockビットが中途半端にイレーズされないのが原因か。これから6時間イレーズに挑戦してみよう。

続きを読む

2020/05/10(日)9V乾電池の破裂事例

夜中に自分の部屋でPCを操作している時に、突然、直ぐ近く部屋の何処かで破裂音がした。最初は、AC回路のショート?電解コンデンサーの破裂?と色々考えたが、電源の入っていない機器の中は置いておいて、動作しているのはPC以外はなんだろう。HUBかサーバPCか。サーバPCは年代物なので考えられる。しかし問題なく動作しているしサーバPCを引き出して分解するにしろ明日の朝にする事にして、部屋中の電源を落としてその日は寝ることにした。

続きを読む

2020/05/06(水)MCS BASIC52でマンデルブロ集合ベンチマーク

BASIC-52*1が動く環境が出来上がったのでASCIIART(マンデルブロ集合)ベンチマークを走らせて見ました。11.059MHzのSTC89C52にBASIC-52(V1.1)を書き込んで実行すると6分38秒要しました。BASIC-52ではFOR-NEXTループ内からループの外へGOTOするとエラーとなる為プログラムの一部を修正。またダブルスピードモードでは3分20秒で終了。

続きを読む

2020/04/12(日)2KBのSRAM内蔵8051マイコン-STC15F2K08S2でTinyBasic

STC15F2K08S2というマイコンをaitendoさんで見つけてBasic51(Tiny Basic)を走らせてみたがどうも内蔵RAMへの書き込みが上手く行かない。簡単なメモリーテストプログラムを走らせて結果を確認した所、どうやら00FFより上のアドレスにアクセスするにはMOVX DPTR系の16bitアドレス指定命令でのみ可能なようだ。古い8051ではSRAMは外付けなので、上位バイトはI/Oポートで設定しても可能だったが、このチップはダメみたい。ソースコードに手を入れようかな。

20200412_0.jpg

ソースコード修正して1Chip Tiny Basic51が出来上がりました

2020/01/05(日)Intel D8751Hの書き込み

少し前に中古のIntel D8751Hを幾つか入手しました。しかし半数が書き込み不良となります。イレーズ後に書き込みを実施すると途中でエラーとなる、又は全く書き込めずに最初のアドレスでエラーとなる。古いチップだからイレーズも書き込みも出来なくなるのかなという程度の認識でした。

しかし、年末にそういうデバイスに詳しい友人から「古いチップは長めにイレーズしないと途中で書き込みに失敗する」という情報を得ました。これは朗報で自分で試してみると確かにイレーズ時間が短いと、ブランクチェックがOKでも書き込み途中でエラーが発生する事を確認できた。8751は一時間のイレーズが必要なのかも。恐るべし。

続きを読む

2019/07/21(日)ArduinoISPでAT90S2313を書き込む方法

AVR

AT90S2313は古いチップだがこれを使う用事があって、ArduinoとArduinoISPなるプログラムを使えば良いハズ。だが、ATTiny2313なら書き込めるがAT90S2313では反応しない。

ArduinoISPを修正

ここまで丸二日掛かったが面倒なので結論だけ書いて置く。417行目あたりのreset_tagetをtrueからfalseへ修正するだけ。AT90S2313とATTiny2313のみで動作確認。

GitHub ArduinoISP.ino

- reset_target(true);

- pinMode(RESET, OUTPUT);

- SPI.begin();

- SPI.beginTransaction(SPISettings(SPI_CLOCK, MSBFIRST, SPI_MODE0));

+ reset_target(false);

+ pinMode(RESET, OUTPUT);

+ SPI.begin();

+ SPI.beginTransaction(SPISettings(SPI_CLOCK, MSBFIRST, SPI_MODE0));

とするだけである。

avrdude

C:\arduino-1.6.13\hardware\tools\avr>bin\avrdude -C etc\avrdude.conf -c avrisp -p 2313 -P com3 -b 19200

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9101 (probably 2313)

avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and

exited programming mode

avrdude done. Thank you.