ファイル名 | 説明 |
---|---|
ezusb/ | EZ-USB用 |
test_rtos/ | リアルタイムOS動作確認 |
Makefile | メイクファイル |
config.h | コンフィグファイル |
test.c | テストソースファイル |
flash_writer/ | フラッシュライター |
Makefile | メイクファイル |
config.h | コンフィグファイル |
cmd.h | USBコマンド定義ヘッダファイル |
cmd_tsk.c | USBコマンドタスクソースファイル |
usb_dscr.c | USBディスクリプタ定義ファイル |
ezusb_fx2/ | EZ-USB FX2LP用 |
test_rtos/ | リアルタイムOS動作確認 |
Makefile | メイクファイル |
config.h | コンフィグファイル |
test.c | テストソースファイル |
font_aqm0802.c | AQM0802フォントパターンファイル |
test_sdc/ | SDCカードドライバ動作確認 |
Makefile | メイクファイル |
config.h | コンフィグファイル |
test.c | テストソースファイル |
flash_writer/ | フラッシュライター |
Makefile | メイクファイル |
config.h | コンフィグファイル |
cmd.h | USBコマンド定義ヘッダファイル |
cmd_tsk.c | USBコマンドタスクソースファイル |
usb_dscr.c | USBディスクリプタ定義ファイル |
en29f002.c | EN29f002ドライバソースファイル |
en29f002.h | EN29f002ドライバヘッダファイル |
convroller/ | コントローラUSB変換 |
Makefile | メイクファイル |
convroller_tsk.c | 変換タスクソースファイル |
config.h | コンフィグファイル |
usb_dscr.c | USBディスクリプタ定義ファイル |
PLCCのフラッシュメモリEN29F002Tのライターが必要になったので、EZ-USB FX2LP(CY7C68013A-56)用のファームとWindowsアプリを作成しました。
ついでなのでI2Cの24C系のEEPROMと、Microwireの93C系もサポートしています。
一応 EZ-USB(AN2131SC)用も作成してありますが、I2Cの24C系のEEPROMと、Microwireの93C系のみサポートしたファームとなっています(ピン数が足りない為だが、SPIやI2CのI/Oエキスパンダを使用すれば対応可能)。
EZ-USB用は、"mcs51/ez-usb/flash_writer"、EZ-USB FX2LP用は、"mcs51/ez-usb_fx2/flash_writer" をビルドしファームを生成します。
上記ビルドで生成したファームを書き込み後、Windowsアプリ(FlashWriter.exe)をダウンロード・実行し、読み書き・消去を行います。
※ハード側は全くの素人なので、とりあえず動いているのでOKとしています。
詳しい方からの指摘を頂けると非常に助かります。
インタフェース | 型番 |
---|---|
PLCC | EN29F002T |
I2C | 24LC64 |
I2C | 24LC128 |
I2C | 24LC256 |
I2C | 24LC512 |
I2C | 24LC1025 |
I2C | AT24C256 |
I2C | AT24C256B |
I2C | AT24C1024B |
Microwire | AT93C46(8bit) |
Microwire | AT93C56(8bit) |
Microwire | AT93C86(8bit) |
以前、EZ-USBで作成したことのあるメガドライブ、ファミコンのコントローラUSB変換を、EZ-USB FX2LPのrtosで動作するように移植しました。
対応しているのはEZ-USB FX2LPのみで、"mcs51/ez-usb_fx2/convroller" をビルドしファームを生成します。
上記でビルドで生成したファームを書き込むことでHIDデバイスとして認識します。
また、EZ-USB FX2LPを使用しているため、RAMと処理速度には余裕がありますので、いくつかの機能を追加してあります。
※ハード側は全くの素人なので、とりあえず動いているのでOKとしています。
詳しい方からの指摘を頂けると非常に助かります。
部品 | 数 |
---|---|
MCP3002 | 1 |
タクトスイッチ | 2 |
LED | 2 |
D-SUB 9Pと変換基板 | 2 |
2x5のピンソケット | 2 |
1x4のピンソケット(シリアルコンソール用) | 1 |
DIPSW-2(I2Cのスレーブアドレス変更用) | 1 |
コントローラ
タスク1がコンソールに'#'、タスク2がコンソールに'-'を出し続けている状態で、周期ハンドラでタスクを切り替える簡単なテストアプリ。
ADCタスクでA/D変換、結果を描画タスクでLCDのF12864G25412P1701へ電圧の波形で描画、気圧変換タスクで気圧を取得しながらAQM0802Aへ結果を表示するテストアプリ。
1秒毎にSDCカードから画像を読み込みながら、LCD Driver ILI9325のスクロール機能を使用してLCD LM024C9325へ描画するテストアプリ。
SDCCはフリーと言うのはうれしいのですが、バグ(仕様?)が多いです。
MCS-51の場合、ドキュメントに書かれているアセンブラの疑似命令をサポートしていなかったり、最新のバージョンだからと言って何もバグが改善されていないのでMCS-51はメンテされていないのでしょうね。
今回使用していて発生した問題(仕様?)をメモっておきます。
他にもあったと思いますが忘れました。
MCS-51でこのコンパイラを使用したい場合、アセンブリ言語の知識が100%必要、また、KEILで開発する時に比べ10倍以上の時間が掛かると考えた方が良いです。
EZ-USB以外のMCS-51を採用しているデバイスは分かりませんが、いまさらEZ-USBで開発することはほとんどないと思いますので、開発するならKEILを使用することを推奨します。