CH552Gの開発環境構築ととLチカ

前回紹介したCH552Gの開発環境を整備したので、その方法を覚書として残しておきます。CH551/552について書かれた日本語の記事というと、前に紹介したはくら様のブログ以外にはCerevo TechBlog様ぐらいしか見当たりません。いずれもメーカー推奨のKeil C51を前提として書かれていますが、Keilの無料試用版はコードサイズが2KBに制限されている(正式版は20万円超です…)とのことで、CH552Gのプログラムメモリ(ブートローダを除いて14KB)をいっぱいに使うようなものは作れません。メーカーのサンプルプログラムがこちらで公開されており、こちらはKeil用に書かれているのでまずはKeilで試すのがお手軽だとは思いますが、今回はあえてフリーのCコンパイラSDCC(Small Device C Compiler)を用いることにしました。

まず、SDCCの公式サイトから最新版をダウンロード、インストールします。インストールの終盤でコンパイラのパスを環境変数PATHに追加するかどうか尋ねられすので、追加(チェックを入れる)しておきます。

SDCCは統合開発環境(IDE)ではなく、コマンドラインコンパイラなので、別途エディタを用意します。フリーのものだとおススメはやはりVisual Studio Code(VS Code)でしょうか。ダウンロード後、インストールしてください。その後、C/C++の拡張機能をインストールしておきます。
C/C++拡張機能

8051アセンブラやIntel Hexの拡張機能も入れておいてもよいかもしれません。
8051拡張機能

Intel HEX拡張機能

基本的にはVS Codeで書いて保存→コマンドラインから sdcc ソースファイル名 でよいのですが、使い勝手を良くするためにいくつか追加の設定を行っておきます。もっとスマートな方法もあるかもしれませんが、初心者ということでご容赦ください。まず、コンパイル用のバッチファイルを作ります。ファイル名は_sdcc.batとし、パスの通ったフォルダ(C:\Program Files\SDCC\bin など)にコピーしておきます。このバッチはSDCCが吐き出した.ihx形式のHexファイルを.hex形式に自動的に変換するために作成しました。
(3, 4行目は、それぞれCH552, 551のメモリサイズを指定して使用量をチェックする場合の記述方法です。)

次に、プロジェクトファイルを保存するフォルダを新規作成します。
プロジェクトのフォルダ(空)

VS Codeの「フォルダーを開く」で、作成したフォルダを選択します。
フォルダを開く

次に、Cコンパイラの起動指定を行います。「ターミナル」-「タスクの構成」-「テンプレートからtasks.jsonを生成」-「Others」を選択します。
「ターミナル」メニュー

「タスクの構成」メニュー

「テンプレートから tasks.json を生成」メニュー

すると設定ファイルの編集画面が開くので、下記のように変更、保存してください。これで、[CTRL]+[SHIFT]+[B]でmain.c をメインプログラムとしたビルドタスクが走るようになります。main.c をほかのファイル名に変更したい場合には、"args" のところの "main" をほかの名前に変えてください。
tasks.json

下記のコードをコピペしてもOKです。

次に、エディタの使い勝手を向上させるため、インクルードファイルのパスの指定を行います。左下の設定アイコンから「コマンドパレット」-「C/C++:Edit Configurations (UI)」を選択して設定画面を開き、以下のように設定を行います。
・Compiler Path をsdcc.exeのパスに変更
・IntelliSense Mode をデフォルトに変更
・Include Path にSDCCのインクルードファイルが保存されているパスを追加
C/C++ Edit Configurations

Configuration設定画面

.vscodeフォルダ内にこのような c_cpp_properties.json ファイルが生成されておればOKです。以上の設定により、#include マクロで<>でかこったファイル名を指定しても警告表示が出なくなります。

以上の操作で.vscodeフォルダ内に2つのファイルが生成されましたが、これらのファイルはPC内のコンパイラのパスが変わらなければ使いまわしができますので、新たにプロジェクトを作成した際には.vscodeフォルダごとコピーしておけばこれまでの設定を省略できて便利です。

では試しにLチカのプログラムを入力してみましょう。以下のプログラムを入力し、main.c として保存してください。CH552特有のレジスタを使用しない限りは、8052用の定義ファイル(8052.h)が使用できます。また、stdint.h をインクルードしておくと、AVRGCCなどでもおなじみの uint8_t などの表現が使用できるようになるのでAVRからの移植にも便利かと思います。

入力後、[CTRL]+[SHIFT]+[B]でコンパイラが走り、main.hex が生成されているはずです。
プロジェクトのフォルダ

生成されたバイナリファイルの書き込みにはWCH社提供のWCHISPToolを使用します。ダウンロードページからダウンロード、インストールしてください。

準備ができたら、前回の記事で紹介したマイコンボードのPGM(プログラム)ボタンを押しながらPCのUSBポートに接続します。PGMボタンは1-2秒で離してください。これでブートローダが起動して、書き込めるようになります。起動に成功すればデバイスマネージャに"USB Module"というデバイスが現れているはずですが、うまくいかなければいったん接続を外してやり直してみてください。
デバイスマネージャ

この状態でWCHISPToolを起動し、「8 Bit CH55X series」タブを選択、「Chip model」で「CH552」を選択すると、画面下方のデバイスリストに接続したマイコンが認識されているはずです。ここで「User File」でコンパイラの出力したhexファイルを選択し、「Download」ボタンをクリックすれば書き込みが完了します。
WCHISPTool

この状態でリセットボタンを押せばP1.1に接続したLEDが点滅するはずです。

SDCCでの開発はあまり資料がないので難しいかと思いましたが、一度環境構築してしまうとさほど大変ではありませんでした。今後の予定としては、メーカー提供のCH552用のライブラリやインクルードファイルなどをSDCCで利用できるように移植作業などを進めていきたいと思います。

最後に、参考資料へのリンクを載せておきます。
技術者見習いのメモ書き-USB機能付き格安マイコンCH552Tの入手方法と回路について
Cerevo TechBlog-[21日目]激安中華USBマイコンは使えるのか
GitHub CH554 software development kit for SDCC:SDCC用のサンプル
ElectroDragon-WCH Wiki
Bitbucket-Electrodragon WCH:Keil C51用のサンプル
新世代8051系マイコン入門ハンドブック【PDF版】
スポンサーサイト

テーマ : 電子工作
ジャンル : 趣味・実用

tag : マイコン MCS51 WCH CH552G USB 電子工作 Visual Studio Code SDCC

AliExpressで購入したもの(5) - USBマイコンCH552G

今日はまたAliExpressで購入した電子部品を紹介したいと思います。はくら様のブログUSBインターフェース内蔵の安価なマイコン、CH552が紹介されていますが、面白そうなので買ってみました。CH551/CH552は、USBシリアル変換チップCH340Gの製造元であるWCHの製品で、24MHz動作のMCS51(i8051)のコアに、様々なペリフェラルとUSBインターフェースを集積したものですが、非常に安価(1個数十円)なのが特徴です。今回は内部RAM 256B+拡張RAM 1KB、プログラムフラッシュ16KB搭載で、SOP16パッケージのCH552Gを購入しました。CH552GにはペリフェラルとしてUSBのほか、UART、ADC、アナログコンパレータ、タイマ、PWMなど必要なものは一通り入っています。

今回購入したのはProfessional BGA chip Factoryというセラーからで、5個入りで送料無料、200円でした。包装は非常に簡素なもので、チップがそのまま透明なビニール袋(帯電防止かどうかも不明な)に入っているだけでした。(写真はうち4つを手持ちの帯電防止袋に移し替えたもので、イメージです)
梱包(イメージ)

チップ単体だとこんな感じで、CH340Gなどと見た目は変わりません。
CH552G

SOPでそのままでは使いにくいので、Aitendoで購入したピッチ変換基板に装着しました。この基板、面白いことにチップ型のコンデンサなどを取り付けられるパターンが2か所ありますので、これも利用しました。ただこのコンデンサを付けてしまうとブレッドボードで使うのには支障が出てくるので、場合によってはつけないほうが良いかもしれません。
ピッチ変換基板に装着

簡単な開発用ボードを作ってみました。回路図は下記の通り。下側のコネクタはSPIのポートが引き出してあり、キャラクタLCDを接続できるようにしてみました。あとはブードローダ起動用のPGMボタン、リセットボタン、GPIO接続でプログラムから使えるBTN1, BTN2とLEDを接続しました。LEDの電流制限抵抗は大きめ(1KΩ)としたので、ちょっと暗めです。実際にはショートプラグを挟んでLEDを切り離せるようにしたので、もうちょっと低い抵抗値(200Ω程度)のほうがよかったかもしれません。
回路図

出来上がりはこんな感じ。
開発用ボード

とりあえずLチカは動きました。


開発環境の作り方などは次回の記事で書きたいと思います。USBを使いこなそうとするとそれなりに知識が必要になりますが、単に安価なMCS51マイコンとしても充分実用になると感じました。1個40円程度と非常に安価ですし、マイコン好きな方は検討してみてはいかがでしょうか。

テーマ : 電子工作
ジャンル : 趣味・実用

tag : AliExpress マイコン MCS51 WCH CH552G USB 電子工作

仙台でDATEBIKEを利用してみました

先月、1泊2日で仙台まで行ってきました。仙台市内の移動手段は地下鉄やJR、バスなどいろいろ揃っていますが、今回はちょっと気分を変えてレンタサイクルを利用することにしました。利用したのはたまたま街角で見かけたDATEBIKEというものです。これはdocomoが運営するレンタサイクルサービスの一環で、スマホを用いて簡単に利用できるというものです。同様のサービスが東京、大阪、奈良などでも提供されています。借りた自転車はこんな感じの電動アシスト付き自転車で、坂道の多い仙台市内も楽に走り回ることができます。
DATEBIKE車両

利用に先立って、まずはDATEバイクのサイトにアクセスして利用者登録が必要です。dアカウントがあればその情報を利用して登録することができますし、dアカウントを利用せずにメールアドレスで登録することも可能です。料金の支払いにはドコモ払いあるいはクレジットカードが利用できます。
ログイン画面 登録情報

アカウントの設定が済んでおれば、すぐにでも借りることが可能です。DATEBIKEのサイトにログインし、駐輪場(ポートと呼ばれ、市内に何か所もあります)から検索して予約が可能です。予約を行うと登録したメールに4桁のパスコードが届きますが、このパスコードの有効時間は20分間なので、これを過ぎてしまうようなら再度の手続きが必要となります。
駐輪場から検索

あるいはすでにポートについていて目の前に自転車がある場合には、車両番号を直接指定することも可能です。
自転車番号検索

自転車にはこのようなコントロールパネルがついています。その下に書いてある”S838”がこの自転車の車両番号ですので、予約時に選択したものを利用します。このコントロールパネルの内部には通信ユニットが組み込まれており、サーバーと通信を行いながら貸し借りを管理する仕組みになっていますが、その電源は電動アシスト用の電源と共用なので、バッテリが切れていると動作しないことがあるので要注意です。
DATEBIKE操作パネル

なので、必ず使用前にはハンドル部分の電動アシストのコントローラの電源を入れ、バッテリ残量を確認することが必要です。今回はこれを怠ったため家族の一人の自転車のバッテリが切れ、電動アシストも効かなくなってちょっと苦労しました💦
DATEBIKEハンドル部

確認が終了したらコントロールパネルの[START]を押し、メールに記載された4桁のパスコードを入力して[ENTER]を押します。これで自転車のロックが解除され、利用できるようになります。Felica搭載の携帯電話の場合、Felicaを登録することも可能です。登録するにはDATEBIKEのサイトにログインし、「会員証登録」を行います。すると、Felica登録用の8桁のパスコートが届きますので、パネルの[START][ENTER]を押してからこのパスコードを入力し、Felicaリーダーに携帯電話をタッチすると登録されます。一度登録してしまうと、あとはタッチするだけで自転車が借りられるようになるのでかなり便利です。
登録変更メニュー

一時駐輪する場合は後輪のロックをかけておきます。ロック解除はFelicaタッチあるいはパスコード入力でOKです。ただし、駐輪場所がポートであった場合には、一定時間以上以上停めておくと返却されたことになってしまうので注意が必要です。私はこれを知らずに長時間駐輪してしまい、サポートに問い合わせたのですが、一定時間が何分なのかは教えてもらえませんでした。ただ、ロック通知メールと自動返却通知メールの時刻を見ると、55分の差がありましたので、50分以上停める場合には返却されてしまう可能性があると思っておいたほうがよさそうです。
施錠通知メール

自動返却通知メール

返却する場合には、ポートに自転車を停めてロック、そのあと[ENTER]のみを押せば完了です。返却は、借りたポートでなくてもOKです。今回は初めてということで、使い方がわからず戸惑った面もありましたが、一度利用すると大体の流れは把握できました。これからはFelicaを用いればかなり手軽に利用できますし、同様のサービスを展開している他の都市を訪れた際にも利用してみたいと思いました。

最後に、仙台で撮った写真をいつくか載せておきます。こちらは仙台駅構内。Xperia 1の気合の入った宣伝が目につきますね。
仙台駅

伊達政宗の霊廟、「瑞鳳殿」です。ここにもDATEBIKEで行きました。ここはもともとは国宝に指定されていたようですが、第二次世界大戦の際に焼失し、1979年に再建されています。
瑞鳳殿入り口

鮮やかな色彩の美しい建物ですね。
瑞鳳殿

こちらは伊達忠宗が祀られている「感仙殿」。
感仙殿

伊達綱宗が祀られている「善応殿」。
善應殿

今回は、仙台東照宮や仙台城跡にも行ってきました。他にもいくつか見どころはあるようですし、DATEBIKE利用での仙台観光、おススメです。

もちろん牛タンもいただきました。おいしかったですよ。

テーマ : 東北旅行
ジャンル : 旅行

tag : 仙台 レンタサイクル DATEBIKE docomo 瑞鳳殿

AliExpressで購入したもの(4) - Digispark互換ボード

AliExpressシリーズ4回目の今日は、安価なDigispark互換ボードの紹介です。HiLetgoの安価なボードを購入したという記事を少し前に書きましたが、AliExpressにも同様なボードが大量に出品されています。今回は、“GCsupermarket Store”というセラーからDIP型のマイコンを刺して使うタイプのものを試しに購入してみました。

このボードはマイコンが含まれていないので、同じセラーからATtiny 85を2個購入しました。届いたものはこんな感じで、きちんとESD対策もしており好感が持てます。注文から2週間半で届きました。価格はボード2枚とマイコン2個、送料込みで530円程度。
パッケージ

ボードには8ピンのピンヘッダが付属します。
パッケージの中身

当然のことながら、このATtiny 85にはブートローダが書き込まれていません。今回はDIP型のマイコンなので、TL-866CSを用いて書き込みました。
TL-866CS

ブートローダ書き込み

ヒューズビットも設定。いちおうリセット端子は有効のままにしておきました。(ブートローダの入手やヒューズビットなどについてはこちらの記事を参照してください。)
ヒューズビット設定

ボードにマイコンをセットするとちゃんとDigispark互換ボードとして動作し、サンプルのLチカも問題なく動きました。
Lチカ

このボードは、Arduino IDEを用いてATtiny 85の開発を行いたい場合などに利用できると思います。安価ですし、1-2個手元に置いておくと便利なのではないかと思いました。興味のある方は検討してみてはいかがでしょうか。

Amazonでも中国の業者が同様のものを扱っています。
右側はマイコン付属ですがちょっと高いですね。

テーマ : 電子工作
ジャンル : 趣味・実用

tag : AliExpress Digispark Arduino AVR マイコン ATtiny85

AliExpressで購入したもの(3) - DAP RUIZU X02

少し間が空いてしまいましたが、本日はAliExpressで購入したもう1台のDAP, RUIZU X02を紹介します。こちらは前回紹介したQ1とは異なり、ごくごく普通のDAPです。このモデルは他にも国内で購入している方もおられるようで、webを検索するといくつか日本語で書かれたレビューもヒットします。内蔵フラッシュメモリは8GBですが、最大64GBまで対応のSDXCカードスロットを搭載しています。

荷姿はこちらもエアクッション付きの封筒で届きました。今回は“HanQi Tech Store”で注文しましたが、発送は早く、注文から10日ほどで届きました。
荷姿

こちらはQ1と異なり化粧箱付です。オマケのポーチが同梱されていました。
外箱とポーチ

セット内容はこのとおり、本体とマニュアル、USBケーブルです。セラーによってはイヤホンが付属する場合もあるようですが、今回はありませんでした。マニュアルは英語で書かれているので助かりますが、かなり簡素なものなのでわかりやすいとはいいがたいです。
箱の中身

本体裏面。ラバーのような素材でコーティングされており、マットな感じです。
本体裏側

本体下側。ピンボケになってしまっていますが、左からUSB micro Bコネクタ、電源スイッチ、イヤホンジャックが並んでいます。
本体下面

右側面にはmicro SDXCカードスロットがあります。スロットカバーなどはついていません。
本体側面

このプレーヤーも日本語に対応していました。
言語設定メニュー

メインメニュー。この画面では上下左右のボタンで選択、中央のボタンで決定できます。
メインメニュー

設定画面。このようなサブメニューに入ると、選択は左右ボタンのみで可能、下(VOL)ボタンでキャンセル、中央(再生)ボタンで決定となります。また、状況によっては上(M)ボタンでサブメニューが開く場合があります。Q1もそうでしたが、安価な中華DAPはどれも操作体系が独特で、慣れるまでは戸惑います。
設定メニュー

SDと本体メモリの切り替えは、メインメニュー左下の「フォルダビュー」で行えます。
フォルダビューメニュー

初期状態では本体メモリが選択されていると思いますが、SDへ切り替える場合は「カードディレクトリ」を選択し、フォルダを開いていって音楽ファイルを選択、再生することで行えます。(左上のカードアイコンが緑に変わります)
フォルダビュー(SD)

逆に本体へメモリへの切り替えは単純で、「ホームディレクトリ」を開くだけでOKです。(左上のカードアイコンが白に変わります)
フォルダビュー(本体)

このDAPはタグによるファイルの管理が可能で、左上の「音楽」を選択すると、アルバムやアーティストから曲を検索することができます。本体メモリが選択されている場合は本体内の曲が、SDが選択されている場合にはSD内の曲が検索できます。
アーティスト検索

再生画面。日本語で入力されたタグも表示できます。
再生画面

音量調整は下(VOL)ボタンを長押ししてから(短押しでは再生画面から抜けてしまいます)、左右ボタンで調整、上(M)ボタンで決定となります。
音量調整

スクリーンセーバーがついており、しばらく放置すると時計表示になり、その後画面が消灯します。
時計表示

PCに接続するとUSBマスストレージとして認識される(本体メモリは"X02"、SDカードは"USBドライブ"と2つのドライブとして認識される)ので、ファイルのD&Dのみで行えます。
PC接続

ちょっと操作に癖はありますが、安価なmicro SDHC/SDXCカードを利用して簡単に多くの音楽ファイルを入れることができるので、なかなか便利そうです。しばらくCreative Zen X-Fiに代わるメインのDAPとして利用してみようと思います。

テーマ : デジタル家電・AV機器
ジャンル : 趣味・実用

tag : AliExpress 中国 通販 DAP RUIZU X02

アクセスカウンタ
カレンダー
07 | 2019/08 | 09
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
最新記事
最新コメント
リンク
カテゴリ
楽天お勧め商品
検索フォーム
FC2掲示板
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示