ファイル一覧

ファイル名 説明
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ディスクリプタ定義ファイル


フラッシュライター(flash_writer)

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としています。
  詳しい方からの指摘を頂けると非常に助かります。


動作確認済みフラッシュメモリ
インタフェース型番
PLCCEN29F002T
I2C24LC64
I2C24LC128
I2C24LC256
I2C24LC512
I2C24LC1025
I2CAT24C256
I2CAT24C256B
I2CAT24C1024B
MicrowireAT93C46(8bit)
MicrowireAT93C56(8bit)
MicrowireAT93C86(8bit)


部品
PLCCソケット1
74F3732
2x4のICソケット2
1x4のピンソケット(シリアルコンソール用)1
DIPSW-3(I2Cのスレーブアドレス変更用)1


コントローラUSB変換(convroller)

以前、EZ-USBで作成したことのあるメガドライブ、ファミコンのコントローラUSB変換を、EZ-USB FX2LPのrtosで動作するように移植しました。
対応しているのはEZ-USB FX2LPのみで、"mcs51/ez-usb_fx2/convroller" をビルドしファームを生成します。

上記でビルドで生成したファームを書き込むことでHIDデバイスとして認識します。

また、EZ-USB FX2LPを使用しているため、RAMと処理速度には余裕がありますので、いくつかの機能を追加してあります。




※ハード側は全くの素人なので、とりあえず動いているのでOKとしています。
  詳しい方からの指摘を頂けると非常に助かります。



部品
MCP30021
タクトスイッチ2
LED2
D-SUB 9Pと変換基板2
2x5のピンソケット2
1x4のピンソケット(シリアルコンソール用)1
DIPSW-2(I2Cのスレーブアドレス変更用)1


コントローラ




EZ-USB用リアルタイムOS動作確認(test_rtos)

タスク1がコンソールに'#'、タスク2がコンソールに'-'を出し続けている状態で、周期ハンドラでタスクを切り替える簡単なテストアプリ。



EZ-USB FX2LP用リアルタイムOS動作確認(test_rtos)

ADCタスクでA/D変換、結果を描画タスクでLCDのF12864G25412P1701へ電圧の波形で描画、気圧変換タスクで気圧を取得しながらAQM0802Aへ結果を表示するテストアプリ。



EZ-USB FX2LP用SDCカードから画像を読み込みながらLCDへ描画(test_sdc)

1秒毎にSDCカードから画像を読み込みながら、LCD Driver ILI9325のスクロール機能を使用してLCD LM024C9325へ描画するテストアプリ。



SDCCについて

SDCCはフリーと言うのはうれしいのですが、バグ(仕様?)が多いです。
MCS-51の場合、ドキュメントに書かれているアセンブラの疑似命令をサポートしていなかったり、最新のバージョンだからと言って何もバグが改善されていないのでMCS-51はメンテされていないのでしょうね。
今回使用していて発生した問題(仕様?)をメモっておきます。


アセンブラ


C言語



他にもあったと思いますが忘れました。
MCS-51でこのコンパイラを使用したい場合、アセンブリ言語の知識が100%必要、また、KEILで開発する時に比べ10倍以上の時間が掛かると考えた方が良いです。

EZ-USB以外のMCS-51を採用しているデバイスは分かりませんが、いまさらEZ-USBで開発することはほとんどないと思いますので、開発するならKEILを使用することを推奨します。