以前調べていた、HC908をいじってみました。
このチップはVCC(5V)の1.4倍から2倍の高電圧をIRQにかけてモニターモードに入り処理コードやデータを送ってflashへの書き込みを行います。昔はRS232からこの電圧を拾い出して使っていたようですが、もう通常のRS232は無くなって5Vだったり3.3Vだったりします。
PROMの頃の高電圧は25VでEPROMになって21Vとか12Vとかに下がりました。Flashでも12Vが必要なものがありましたが、すぐに5Vだけでよくなりました。HC908は最後の頃の高電圧利用チップだったと思われます.
たまたま以前、MC34063を使った昇圧回路を作っていたので、これを使ってみようと思いつきました。
3.3Vから8.2Vを作ってそれから5Vを作ります。
ピンソケットの並びは5V, 8.2V, GND, DTR, TX/RXにしました。
TX/RXはダイオードを入れている回路図もありましたが、入れると動かなくなるので直結しています。
回路はこれをベースにしています。
3.3Vは、このチップは3.3Vのレギュレータが内蔵されていて、VREGから出力されているので、これを使います。
sdccでビルドしたs19ファイルをbl08コマンドで焼いてみます。
% bl08 -c /dev/cuaU0 -b 9600 -r 100 -t jb8 -x 12 -e -f -g reset blink.s19
bl08 - MC68HC908 Bootloader - version 1.0.0.0
Reading S-records
Line ignored: S9030000FC
S-record data address 00FFFE size 000002
S-record data address 00DC00 size 000064
Mass erase
Mass erase
Program FFFE - FFFF .
Program DC00 - DC63 ..
Execute code from DC00
bl08のソースはここに置いておきました。
ターゲットはHardOffで購入した、USB赤外線リモコン受光機から剥がしたチップです。
USBは1.5Mだけなので使い道はHIDなどに限定されます。
Flashの消去保証は10Kなので安心して使えます。
24-Pin QFNのデータシートどっかに転がってないかな。
PTD0にLEDを付けてLチカしてみました。
/* HC908JB8 sample code with sdcc 4 */
#include <mc68hc908jb8.h>
void main() {
CONFIG = 0x01; // Disable COP
DDRD |= 0x01;
while (1) {
unsigned int i;
PTD ^= 0x01;
for (i = 0; i < 50000; ++i)
PTD;
}
}
ちゃんと動きました。