技術者見習いのメモ書き

電子工作や神社めぐりなどの趣味の話を中心に書いていきます。 Twitter:@hakura_riku

USB機能付き格安マイコンCH552Tの開発環境構築について

はじめに

CH552Tの開発環境構築について解説します.

CH55Xシリーズはintel8051というマイコン魔改造した物なので8051の開発環境でコンパイルしたコードならWCH社公式のISPToolでマイコンにプログラムを書き込むことができると思います.

今回はElectrodragon WikiでCH55Xシリーズのサンプルプログラムが公開されているKeilC51(uVision)を使って開発環境を構築します[1].

無料評価版Keil C51(uVision)の入手方法

無料評価版Keil C51(uVision)のインストーラはarm Keilの公式サイトからダウンロードすることができます.

※無料評価版ではオブジェクトサイズが32KBまで制限されています[3].

Keil Product Downloads

f:id:hakura03:20190330150457p:plain
Fig. 1 arm Keil公式サイト画面

C51を選択するとFig. 2の登録画面が出ます. 必要事項を記入するとインストーラをダウンロードできます.

f:id:hakura03:20190330150453p:plain
Fig. 2 登録画面

あとはインストールするだけです.

注意事項

windowsのユーザー名が日本語だとユーザーフォルダ名が日本語になるためKeil C51(uVision)のインストールに失敗します. ユーザー名が日本語の場合は英語名のユーザーアカウントを作ってインストールしてください.

Keil C51の有料版はKeil C51 COMPLER ASSEBLER KIT LICの場合241,560円でPK51 PROFESSIONAL DEVELOPER'SKIT LIC(1年間のライセンス)の場合154,430円だそうです. ※アメリカからの輸入品扱いとなるため価格は為替によって変動します.

学生ライセンスなども存在しないため個人で有料版を購入することはあまり現実的ではありません. コードサイズ上限以上のプログラムを作成する場合はSDCCを利用した方がいいと思います.

CH55Xシリーズ用のプロジェクトファイルの作り方

uVisionを起動したら赤丸で示す部分を選択してください.

f:id:hakura03:20190330153214p:plain
Fig. 3 uVison起動画面

赤丸で示す部分を選択するとプロジェクト製作画面がでるので好きな名前をつけてください.

f:id:hakura03:20190330153137p:plain
Fig. 4 プロジェクト名称決定画面

Keil C51は公式でCH55Xシリーズをサポートしているわけでは無く, intel8051系のマイコンAT89C51やAT89S51用のコンパイラを持っているだけです[1][4]. そのためプロジェクトファイルを作る際にはAT89C51もしくはAT89S51を選択してください. OKを選択するとプロジェクトファイルが作られます.

f:id:hakura03:20190330153935p:plain
Fig. 5 CPU選択画面

uVisionの標準設定ではHEXファイルを出力してくれません[1]. HEXファイルを出力するように設定を変更する必要があります. Fig. 6に示すOptions for Tergetを選択してください.

f:id:hakura03:20190330155436p:plain
Fig. 6 HEXファイル出力設定1

Options for Tergetを選択するとFig. 7に示す画面が出てきます. 赤線で示すOutputタブを開き, 赤丸で示すCreate HEX Fileのチェックボックスにチェックをつけてください.

f:id:hakura03:20190330155923p:plain
Fig. 7 HEXファイル出力設定2

HEXファイルの出力とは関係ありませんが, TargetタブのMemory Model をLarage : variables in XDATAに設定しておくと便利です.

f:id:hakura03:20190330160212p:plain
Fig. 8 メモリサイズ設定

※HEXファイルの設定とメモリサイズの設定はプロジェクトファイルごとにおこなう必要があります.

サンプルプログラムの入手先

Electrodragonが配布しているサンプルプログラムは以下のリンクにあります.

e_dragon / WCH / source / — Bitbucket

ファイルをダウンロードしたら「e_dragon-wch-ed9fe291571d\CH55x\EVT\CH554EVT\EXAM」内にあるCH554.uvproj以外を作成したプロジェクトフォルダ内にコピーしてください.

f:id:hakura03:20190330230518p:plain
Fig. 9 プロジェクトフォルダへコピー

CH554はCH55Xシリーズの一つでCH552にUSBホスト機能を追加したマイコンとなっています. そのためCH554のプログラムはUSBホスト機能などCH552に実装されていない機能のプログラムを削除もしくは使用しないことでCH552でも利用できます.

WCHISPToolの入手先

WCHISPToolはWCH社が公式で提供しているプログラムです. CH55Xシリーズなどにプログラムを書き込むために使用します.

WCHISPTool_Setup.exe - 江苏沁恒股份有限公司

WCHISPToolのSetup.exeをダウンロードしてインストールしてください.

おわりに

CH552の開発環境構築について解説をおこないました. Lチカなどの基本的なプログラムについては参考文献[1]のブログで紹介されているので, 次の記事ではCDCクラスを用いたUSBシリアル通信をCH552でおこなう方法について解説したいと考えています.

参考文献

[1]べーた, ‘‘Cerevo TechBlog [21日目]激安中華USBマイコンは使えるのか, ” https://tech-blog.cerevo.com/archives/6068/.

[2]江苏沁恒股份有限公司, ‘‘8 位增强型USB 单片机CH552、CH551,” https://datasheet.lcsc.com/szlcsc/Jiangsu-Qin-Heng-CH552T_C111367.pdf.

[3]boochow, ‘‘楽しくやろう。ARMの開発環境「MDK」と「µVision」でmbedのデバッグを試してみた,” https://blog.boochow.com/article/441231592.html

[4]Electrodragon, ‘‘Electrodragon Wiki,”https://www.electrodragon.com/w/WCH.

USB機能付き格安マイコンCH552Tの入手方法と回路について

はじめに

中国のICメーカーWCH社が出しているマイコンCH552Tについて紹介したいと思います. このマイコンはUSBペリフェラル機能がついている格安マイコンです[1]. 参考文献[1]のブログで紹介されているCH551Gと同じシリーズのマイコンです.

CH552Tについて

主なスペックは以下のとおりです.

動作電圧 プログラム用のROM クロック周波数
3.3V~5V 16KB  最大24MHz  

※ROMの2KB分はブートローダーに占有されているため, 実際に使用可能な容量は14KBになっています[2].

CH551Gとの違いはADC機能が追加されていることと, ピン数が20ピンになっていることぐらいです.

Google翻訳を使って日本語に翻訳したデータシートを以下のリンクに置いておきます. 中国語のデータシートと合わせて使用してください.

CH552T_データシート - Google ドライブ

CH552Tの入手方法

2019年3月時点では秋月電子マルツ電波では取り扱っていないため, AliExpressもしくはLCSCから購入するしかありません.

購入先 個数 価格 送料
AliExpress 1個 38円 473円
LCSC 1個 47円 約13ドル

※LCSCは大量購入すると部品単価が下がります. (10個購入すると1つ当たり約35円)

基板を設計してJLCPCB(LCSCがやっている基板屋)に部品と共に注文すると送料をまとめてくれるのでLCSCがおすすめです。

CH552Tの利点と欠点

CH552Tを利用して感じた利点と欠点について解説します.

最大の利点はその安さです. 一つ当たり40円を切るUSB機能のついたマイコンはそう無いと思います. 同じようにUSB機能を持ちHIDデバイスを作れるArduino Pro Micro(Leonardo)はスイッチサイエンスで購入すると2000円近くします. 約50分の1の価格で同じ事ができるので, USBデバイスを作りたいと考えている方には非常におすすめです. また, 書き込み装置が不要なのでArduinoと同じ感覚で書き込むことができます.

欠点は公式のIDEが無いことだと思います. KeilC51を用いて開発することができますが, 無料評価版だとコードサイズに制限があります. また, 2019年3月現在日本のCH552Tの使用者が少ないため日本語の資料が本ブログと参考文献[1]しかないです.

※コードサイズの上限は他のエディタでプログラムを書きSDCCを用いてコンパイルすることで回避することもできます[3].

※中国語圏の使用者はそれなりにいるので中国の電子工作フォーラム「电子工程世界」にGoogle翻訳を使って中国語で質問することで開発メーカWCH社のサポートを受けることができます (動かないコードの修正方法など) [4].

回路について

CH552TとUSBを繋ぐ回路を以下に示します.

f:id:hakura03:20190330102307p:plain
Fig. 1 CH552T回路

20ピン(3.3V)とUSBのD+をスイッチで繋いでいるのはブートローダーを起動するためです. パソコンのUSBポートに20ピンとD+を1~2秒ほどショートさせながらつなぐことでブートローダーを起動できます[1].

また, 20ピンのデカップリングコンデンサはVCCが3.6V未満の場合は必要ないそうです[2].

中国語データシートの用語解説

CH552Tの公式データシートは参考文献[2]の中国語版しかありません(有志が英語に翻訳したもはあります). そこで, CH552Tのデータシートを読む際に役立った頻出の中国語の解説をおこないます.

中国語 日本語
ビット
字节 バイト
数据 データ
端口 ポート
串口 シリアルポート
设备 バイス
控制 制御
寄存器 レジスタ
地址 アドレス
模式 モード
波特率 ボーレート
端点 エンドポイント
中断 割り込み
标志 フラグ
复位 リセット

表の単語と中国語の漢字が日本や台湾で使われている漢字の簡略版であることを念頭においてデータシートを見ると書いてあることが何となく分かります ( 関→关, 電→电 など ).

おわりに

CH552Tの紹介と回路についての解説を簡単におこないました. 次回の記事ではCH552Tの開発環境構築について解説をおこないます.

参考文献

[1]べーた, ‘‘Cerevo TechBlog [21日目]激安中華USBマイコンは使えるのか, ” https://tech-blog.cerevo.com/archives/6068/.

[2]江苏沁恒股份有限公司, ‘‘8 位增强型USB 单片机CH552、CH551,” https://datasheet.lcsc.com/szlcsc/Jiangsu-Qin-Heng-CH552T_C111367.pdf.

[3]Blinkinlabs, ’’GitHub CH554 software development kit for SDCC,” https://github.com/Blinkinlabs/ch554_sdcc.

[4]电子工程世界, http://www.eeworld.com.cn/.