USB機能付き格安マイコンCH552Tの開発環境構築について
はじめに
CH552Tの開発環境構築について解説します.
CH55Xシリーズはintel8051というマイコンを魔改造した物なので8051の開発環境でコンパイルしたコードならWCH社公式のISPToolでマイコンにプログラムを書き込むことができると思います.
今回はElectrodragon WikiでCH55Xシリーズのサンプルプログラムが公開されているKeilC51(uVision)を使って開発環境を構築します[1].
無料評価版Keil C51(uVision)の入手方法
無料評価版Keil C51(uVision)のインストーラはarm Keilの公式サイトからダウンロードすることができます.
※無料評価版ではオブジェクトサイズが32KBまで制限されています[3].
C51を選択すると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を起動したら赤丸で示す部分を選択してください.
赤丸で示す部分を選択するとプロジェクト製作画面がでるので好きな名前をつけてください.
Keil C51は公式でCH55Xシリーズをサポートしているわけでは無く, intel8051系のマイコンAT89C51やAT89S51用のコンパイラを持っているだけです[1][4]. そのためプロジェクトファイルを作る際にはAT89C51もしくはAT89S51を選択してください. OKを選択するとプロジェクトファイルが作られます.
uVisionの標準設定ではHEXファイルを出力してくれません[1]. HEXファイルを出力するように設定を変更する必要があります. Fig. 6に示すOptions for Tergetを選択してください.
Options for Tergetを選択するとFig. 7に示す画面が出てきます. 赤線で示すOutputタブを開き, 赤丸で示すCreate HEX Fileのチェックボックスにチェックをつけてください.
HEXファイルの出力とは関係ありませんが, TargetタブのMemory Model をLarage : variables in XDATAに設定しておくと便利です.
※HEXファイルの設定とメモリサイズの設定はプロジェクトファイルごとにおこなう必要があります.
サンプルプログラムの入手先
Electrodragonが配布しているサンプルプログラムは以下のリンクにあります.
e_dragon / WCH / source / — Bitbucket
ファイルをダウンロードしたら「e_dragon-wch-ed9fe291571d\CH55x\EVT\CH554EVT\EXAM」内にあるCH554.uvproj以外を作成したプロジェクトフォルダ内にコピーしてください.
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の入手方法
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を繋ぐ回路を以下に示します.
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/.