Last modified 04/29/2002

C8051F300x簡易ライタ


ソフトウェアの「HEXファイル読みこみ」と「Verify処理」に不具合がありました。
04/29/2002版のソフトウェアをご利用ください。m(__)m

Cygnal製8bitマイコンC8051F30xは □3mmととても小さく周辺機能も豊富で大変便利そうですが、純正の開発キットはちょっと高く 躊躇している人もいるのではないでしょうか。 そこでシリアルポートに接続するC8051F30x専用の簡易ライタを作ってみました。

ハードウェア

下の図はC8051F300x簡易ライタの回路図(04/23/2002版)です。
レベル変換にはMAX3232を使用しています。(他のRS-232用トランシーバでも代用できます) ピンヘッダ(CN2)のピンアサインは純正品のライタに合わせてあります。 C2D信号は双方向にする必要がありますが、RTS/CTS信号をショットキー・ダイオードでドットORすることで実現しています。 なのでC2D信号をLowにひっぱる回路がつながっていると正常に動作しません。 あとピンヘッダとMAX3232の間は直付けなのでケーブルが長いと正常に動作しないかもしれません。
C8051F300x簡易ライタ回路図(04/23/2002版)

C8051F300x簡易ライタ部品表
種類 品名 数量 記号 備考
IC MAX3232CWE 1 U1 ELISshop \440
ダイオード 1S4 1 D1 秋月電子通商 \250(10個)
抵抗 3.3K 1 R1 秋月電子通商 \100(100個)
コンデンサ 0.1U 5 C1-C5 秋月電子通商 \100(10個)
コネクタ DSUB 9pin 1 CN1 秋月電子通商 \50
ピンヘッダ 10pin 1 CN2 千石電商 \100
ケース DSUB 9pin用ケース 1 秋月電子通商 \50

DSUB 9pin用ケースの中に空中配線で無理やり詰め込んでいます。 このケースに入れる為にSOPのMAX3232を使っていますが、その必要がない場合はDIP品で十分です。 ピンヘッダ部分はホットボンドで固定してます。
C8051F300x簡易ライタ
ピンヘッダのピンアサインは純正品ライタに合わせてあるのでF300評価ボードにそのままつながります。 もちろんソースレベルデバッグはできません。(^-^; F300評価ボードもそんなに安くはないので、DIPのC8051F300Pを購入してユニバーサル基板やブレッドボード上に 回路を組めばさらにお手軽になりますね。(根性があれば□3mmのC8051F300でもOKです(^^;) コンパイラについてはSDCCが使用可能なようです。
C8051F300x簡易ライタとF300評価ボード

C2CK信号

下の図はデバイスリセットのタイミングです。
C2CK信号はシリアルポートのTxDにつながっています。 ボーレートは230.4Kbpsに設定されているので00hを出力すれば約39us幅のパルス(start-bit + 8bit)、 FFhを出力すれば約4.3us幅のパルス(start-bit)が出力されます。 シリアルポートを230.4Kbpsに設定する必要があるので ちょっと汎用性に欠けますがその辺りは妥協してます。
デバイスリセットタイミング

C2D信号

下の図はアドレスリードのタイミングです。
C2D信号をLowにしたい場合はシリアルポートのRTSをON(Low)にします。 そのときD1の順方向電圧分(約0.4V)持ち上がりますが0.8V以下なので問題ありません。 C2D信号をHighにしたい場合はRTSをOFF(High)にしますが、 D1によってオープン状態になるのでプルアップ抵抗(R1)によってHighになります。 C2D信号を読み出したい場合はRTSをOFF(High)にしシリアルポートのCTSを確認します。
アドレスリードタイミング

ソフトウェア

Windows98用のソフトウェアです。
なおシリアルポートを230.4Kbpsで使用しているので、実行するには別途 SHSMODが必要だと思います。

使用方法

書き込み
C:\> f30xs hexfile.hex
hexfile.hex(インテルHEXファイル)を読み込んでC8051F30xに書き込みます。
ベリファイ
C:\> f30xs /v hexfile.hex
hexfile.hex(インテルHEXファイル)を読み込んでC8051F30xのベリファイを行ないます。
消去
C:\> f30xs /e
C8051F30xの消去を行ないます。
リセット
C:\> f30xs /r
C8051F30xのリセットを行ないます。
シリアルポート指定
/p<n>オプションを指定することでシリアルポートを変更できます。

戻る