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

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

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

続きを読む

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

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.

2015/08/23(日)BASCOM AVRでWS2812 Rainbow LEDを点灯させる(ATtiny2313)

このWS2812なるLEDはシリアルパルスでLow/Highを送るのだが、その幅が0.8usや0.4usという極小幅なのでBASCOM AVRでは不可能。そこでWS2812へパルス出力部分だけをインラインアセンブラで記述した。レインボーなパターン部分をBASICで記述出来るのは素晴らしい。

パターンを出すメインルーチン

Do

Wr = Rnd(255)

Wg = Rnd(255)

For I = 0 To 255 Step 2

Wb = I

Gosub Ws2812

Waitms 20

Next I

For I = 255 To 0 Step -2

Wb = I

Gosub Ws2812

Waitms 5

Next I

Loop

簡単にい書いたのでポートはPIN:9(PORTD:5)に決め打ちしているけれど、見れば簡単に変更出来る位小さく作った。

BASICのソースリストはws2812.bas