PlatformIOに8051なターゲットがあり日本ではあまり馴染みがないマイコンチップなのですが、toolchainがsdccのようなので、EZ-USBのビルドを試してみました。
とりあえず.platformio/boards/にezusb.jsonを作ります。
{
"platform": "intel_mcs51",
"build": {
"core": "ezusb",
"f_cpu": "24000000L",
"size_heap": 256,
"size_iram": 256,
"size_xram": 256,
"size_code": 4096,
"mcu": "AN2121SC",
"cpu": "mcs51",
"variant": "ezusb"
},
"frameworks": [],
"upload": {
"maximum_ram_size": 512,
"maximum_size": 4096
},
"name": "EZ USB",
"url": "https://www.cypress.com",
"vendor": "Cypress"
}
% pio init --board=ezusb
これでraktajinoさんのページにあったLチカのコードをコンパイルしてみます。こちらのコードはsdcc2の頃のコードでsdcc3ではatを__atのように変更が必要です。他には修正は必要ありませんでした。
pio runでビルドして、Ezloadでダウンロードしてみます。
% Ezload -v 0x0547 -p 0x2131 -f .pioenvs/ezusb/firmware.hex
Lチカできました。
EZ-USBを使ったモジュールでI2CのEEPROMからプログラムをロードしていても、EEPROMを外すとUSBで生のEZ-USBが見えるようになります。
追記
TIのTUSB3410は8052で同じようにプログラムをUSBでダウンロードして使うタイプのチップでした。このチップはCDCを主なターゲットにしたデバイスのようです。ダウンロードするプログラムのコードとダウンロード用のコマンドのソースはここにありました。
platformioがサポートしているSTCのマイコンはaitendoで取り扱ってました。
とはいえ8051はいろいろなジャンクに張り付いているので、おそらく買うことはないでしょう。