ラベル PSoC の投稿を表示しています。 すべての投稿を表示
ラベル PSoC の投稿を表示しています。 すべての投稿を表示

2019年12月12日木曜日

PSoC5LP で いまさら mruby/c を試してみる その2 (テスト編) (PSoC AdventCalendar2019)

前回、見事に撃沈したので、リベンジ に勤しんでみる。

要は、mruby/c もわからんのに、IDEをつかうのがまずい?
ってのがあるので、本筋に従って、きちんとすすめてみるのが吉なのだね。
そもそも、ほかのマイコンと違って、ペリフェラルが可変のPSoCでは
PSoC Createrから切り離して、どうやってIDEするつもりだったのか
よくわからないって段階で、踏み込む必要がなかったわけだ。

先日の Embedded Technology 2019 で、某きむしゅさんから
rubyへの『愛がたらない』と言われたしなぁ(笑

てわけで、環境を構築してみる。

mruby/c チュートリアル
https://www.s-itoc.jp/activity/research/mrubyc/mrubyc_tutorial/

田中せんせのQiita
https://qiita.com/kazuaki_tanaka/items/daff64b84c4108a6dfc3

という二つのコースがあるけれど、田中せんせのやつは、
あとからみればしっくりくるけれど、最初にやると???となりそうなので
チュートリアルの1と2を、取り纏めながら進める。

PSoC Createrで PSoC5LPを選んで作り始める。
 後々のために
-----
Project > Build Settings にて
ARM GCC -> Compiler -> General     Use newlib-nano Float Formatting = True
にして実数利用を許容dwrのSystemタブで   HeapSizeを0x400に拡張   
-----
しておきます。
回路図入力で、Clockを1kHz で interrupt として取り出しておきます。
システムのTickとして利用するので、isr_mrbcTickと命名しました。


SouceFiles のところに
src
フォルダを追加しておく。

ファイルマネージャでソースファイルのフォルダに
mrubyc-release2.0 の srcフォルダをそのままコピーする。



フォルダ構成はこんなかんじですね。
-----

├─src
│ ├─hal_org
│ └─hal
└─TopDesign

-----

src フォルダ内の hal フォルダを hal_org にリネームして
hal_psoc5lp  を  hal  にリネームする


PSoC Creator に追加作成した  srcフォルダを選択したうえで
右クリックで、Add > Existing Item を選びます。

さきほど、コピーした srcフォルダ内のファイルをすべて追加します。


これで、準備完了ですね。

https://www.s-itoc.jp/activity/research/mrubyc/mrubyc_tutorial/735
に記載されている、mrubyc のサンプル をそのままつかいます。



このコードを sample1.rb という名前で、
main.cのあるフォルダにコピーしておきます。
ついでに、mrbc.exe も ここにコピーしておきましょうか。
      (ここでmruby IDEのなかのmrbc.exeをつかって悲劇を呼ぶのだが。。。)
cmdプロンプトから

mrbc.exe -E -Bsample1 sample1.rb

とすれば、 main.c とおなじフォルダに
sample1.c
が生成されます。
試しに sample1.c をエディタで開いてみると


こんなかんじになります。
どうやら、mrbc は mrubyのソースコードを バイナリの配列に入れてくれる
プログラムってわけですね。
試しに
mrbc.exe -E -Barry sample1.rb
とすると、 sample1.rb の中の配列名が
arry[] =
となることから
mrbcでの  引数 -Bの後の文字列が配列名であることはわかりますね。


で、PSoCのサンプルソースコードはこんなかんじになります。
躓き処が満載ではあるんだけど、いまはこれが全容かな。
    mrbc_create_task( sample1, 0 );
の行で、タスクとなるmrubyコードが呼ばれるのはわかりますねぇ。

--------



--------

なんとなく、全容がみえてきた(≧▽≦)

さて、ここから、いろいろやってみましょうか。
mruby自体のデバッグってどうやるのか、とおもったら
PSoC Createrのデバッグ機能がつかえるから、
mrubyはタスクスイッチャとしてつかうのなら
おおむねデバッグはできそう。

さて、で、実際デバッグ実行してみると、うごかない。。。

はぁ?

ブレイクかけながら追いかけてみると、関数がよばれず、
そもそも mruby コードがうごいていない?疑惑浮上。。。
適当にブレイクかけながら試していると

class.c の mrbc_load_mrb関数内で  mrubyのバイナリチェックを行う

  static int load_header(struct VM *vm, const uint8_t **pos)

という関数がエラーを返している。

  if( memcmp(p, "RITE0006", 8) != 0 ) {

となっていて、mrubyのバイナリバージョンが 0006 であることを
想定しているけれど、
今回得られてる、sample1[] の内容は
0x52,0x49,0x54,0x45,0x30,0x30,0x30,0x34 = RITE0004
だから、はねられてる、ってとこかな。

は! そうか! mrbc コンパイラが生成するバイナリ自体もちがうのか。

そんなんしらんがな。

なるほど、サイトをよくみると、

mruby Stable版v2.0.1 Windows版(コンパイル済バイナリ)
「mrubyコンパイラ2.0」(ZIP:1.5MB)

が必要なのね。

これで、再度mrbcかけて、再コンパイルしたら、うごいた!
Lチカ! 完了。 

ううむ。そういうことなら、気色わるいので
mrbcフォルダをつくって、そのなかに、mruby Stable版v2.0.1一式を解凍して
mrbc.bat だけを、ソースフォルダのなかに置いた。
フォルダが変わったので、このbatファイルの中で

set MRBC=.\mrbc\mrbc.exe

に変更したけれど。

これで、コマンドプロンプトから
mrbc
ってやるだけで、rbファイルが一括コンパイルできるようになったよ。

しかし!。

まぁ、もうちょっと、わかりやすく手順を説明してほしいなぁ。サイトも統一感なさすぎる。


なるほど、こりゃ流行らんよねぇ。。。



<つづく>

2019年12月4日水曜日

PSoC5LP で いまさら mruby/c を試してみる その1 (失敗編) (PSoC AdventCalendar2019)

あー、さぼり気味なのにもほどがあるな(笑
最終書き込みから2年とは。。。

ほんとうは、昨年のAdventCalender 2018での記事の予定だったんだが
多忙になったのにかまけて、お蔵入りになった。

というわけで、1年越しのリベンジということで。。。(≧▽≦)
詳しくは
PSoC Advent Calendar 2019
をみてね
ではさっそく。

私的には、
  BASIC -> Pascal ->C/C++ -> C# -> Python
といろんなのをやってきたわけだけど、 Web系では ruby と PHP が競っていたときに
PHPに行ったわけですよ。
で、 ruby  、なんだか小難しいなぁ、とおもっているうちに、マイコン用に
mruby 登場!となった経緯は知ってはいたし、ちょろっとかじったりもしたけれど
言語の資料もほぼないし、情報もないし、ってのが続いていて今に至るわけです。

毎年恒例の 横浜で行われる、Embedded Techology 展で
ruby フォーラム の 面々から、脅迫?めいた勧誘に耐え兼ねて、
ちょっとやってみようかと。
ちょうど、島根の田中先生が、 PSoC5でうごく、mruby/c というのを
開発したところだったので、いいタイミングかな~と思ったわけです。

ruby はよく知らないけれど、
mruby は
『マイコンでも動くように機能を絞ったバージョン』
ということです。(しらんけど

じゃ、
mruby/c って なに?
というのは、実はよくわからない。
まぁ、誤解をおそれずにいえば、

1)インタープリタな部分を排除、rubyVMだけにして、コンパクトな実行サイズにする
2)rubyコードは予めPC上でバイナリにしておいて、VMにこのバイナリを食わせる
3)食わせる部分は、ターゲットマイコンのC/C++で記述

ということかな。

ということで、まずは、お手軽?らしく見える、IDEから、ちょろっと遊んでみよう。


しまねソフト研究開発センターのHPに mruby/c が纏めてある。
トップからは分かりにくいが
トップ / 活動内容 / 研究活動
という中に存在する。
できれば、トップにmruby/cのバナーがあるんだから
そこにリンクくらい張ってくれてもよさそうなものなのに(笑


まずはダウンロードページで、それらしいのを全部手元に取っておく。
おお~、

利用説明書

ってのがあるじゃん。
mruby/c IDEなるものがあれば、簡単じゃね?

最初のとっつきにはよさそうなので、まずはこれに沿って、やってみる。

ふむふむ。IDEから mrbc.exe と mrbwrite.exe を指定するのね。
よくわからんけど、一応、フォルダ内に同名ファイルがあるから登録してみる。
適当に読み進めていくと
デバグ用コンソールの起動(任意)
基板左サイドのUSB端子から、デバッグ用メッセージが表示されますので、開発時は接続しておくと便利です。
任意のターミナルソフトを利用して、ボーレート57600bpsで接続します。』

へ?  PSoC5の USBポートだよね?
USB-CDC だし、PC側の通信速度、ってなんでもよくね?    ( ,,`・ω・´)ンンン?

てか、そもそもファーム、どれ?

ということで、この方法は一番にひらいちゃダメなところだったようだ。。。

mruby/cとは というリンクの中にある、田中せんせのQiitaをベースに
やってみないとダメなようだ。
よくみると、
チュートリアル
というページも、概ね同内容?的。
ふむふむ。そういうことか。
でも
初心者がどこから入ればいいのか、迷うのはいただけないよねぇ。。。orz

というわけで、別の方法を試してみる。。。orz 


<つづく>




2017年12月11日月曜日

PSoC5LP で USB-HIDデバイスでもしてみるか。。。( PSoC Advent Calender2017 )


PSoC Advent Calender 2017 の 記事の2こめです。

PSoC5LPにはUSB がついています。
これ、案外USB UARTくらいしかつかっていないんですが
普通にHIDデバイスとしても作ることができます。

今回はMouseにしてみます。
といっても、マウスなら、ちゃんとサンプルが用意されているんですよね。

スケマティックにUSBFSを配置して、右クリックメニューから出る
Find Code Example ...
を実行します。

すでにUSBFSが選ばれているので、関連するものがでてますね。
今回はとりあえず
USBFS_HID
を選択します。

3-Button mouseって書いてあるので、大丈夫そうですね。
よければ、Create Project を押します。

ん!エラー? はぁ???
このメッセージわかりにくいよね。まったく。
要はこれは
『そのままではインポートされていないので、Webからとってきてね!』
というメッセージ。じゃ、どうするの?ってなるんだけど、
左はしの地球のアイコンをクリックすると、勝手にダウンロードされてくるので
そのままプロジェクトをつくります。

できたプロジェクトはデバイスが PSoC3になっているので
利用するPSoC5の型番に変更します。
PrototypingKitでは、CY8C5888LTI-LP097ですね。

WorkSpace Explorerの Project部で右クリックして
Device Selecter
を出し、ここで選択しなおします。

 できたら、ビルドします。
 スケマティックをみても、USBFSしか配置されていないので、基本は
これでエラーもでないはずです。
自動でピン配置もUSBピンはセレクトされているはずなので
大丈夫なはず。

添付のPDFの最後のところに
================================
Expected Results
You should see that the device is recognized as a 3-button mouse. The mouse is continuously moving back and forth horizontally.
================================
ってなっているので、マウスになってカーソルを水平移動でうごかすよ。
ってよめますね。

うごきましたか?
で、この設定、どこできまるんだ?ってことなんですが
一番わかりにくいのは HID Report Descriptersなんですよね。


なんじゃそら、と。

Device Class Definition for HID 1.11 (PDF)

を参照してみてください。
page81 (表題ページ番号71)にマウスの定義サンプルが挙げられています。


ね、このとおりの定義を書いてるだけですね。

あとは 3バイト用意して、一定のタイミングで
値をセットしておくりかえせばいいんですね。

このやりかたをしっておくと、JoyStickもキーボードもつくれますね!


2017年12月5日火曜日

Uartのボーレートチェンジを実装してみる( PSoC Advent Calender2017 )

とうとうこんな季節になってしまった。
いまだに炎上案件抱えてひーひーゆうてるのに。

PSoC Advent Calender 2017 の 記事を!って頼まれたのでそれをば。

さて、PSoC のUARTってコンポーネント、ポンっ!ってかんじで
いいので、とっても簡単なんですがね、ほかのマイコンなら
途中でボーレートチェンジ!なんて簡単にできるのに

















この部分はAPIとしてはParityは公開されているけれど、
肝心の速度は公開されてないので、なんともならない。


きっかけは MonoWirelessのTWELiteの書き込みがPSoCからしたいよね!的な
ところから始まったんだけど。

 PC <--USB--> PSoC <--UART-->TWELite

っていう感じでつかって、モード変更で書き込み対応したいとか。


で、やってみた。

Design Wide Resources (.cydwr)をひらいて Clockタブを見てみる。

やっぱり、UART_1_IntClockを引き込んでいる。
今回は115200bps = 115.2kHzがほしい設定なので
サンプリングを8倍した 921.6kHzを生成してるわけですね。(最下行)
この921.6kHzを生成するのに、64MHzを69分周して近似の
927.536kHzを出してるというのはわかる。
ということなら

このDividerを変更したらよくね?
UART_1のコードの下に、UART_1_IntClock.cというのができてる。


このなかに SetDividerRegister()関数という、もうそのままのネーミングの
関数あるじゃんと。
これをよべばよさげですよね。

===================================



===================================
ぼくの場合だと
#define  HS115200    69
#define  HS57600    139
#define  HS38400    208
#define  HS19200    417
#define  HS9600     833
ってかんじですかね。
ここらは計算でする方法もあるし、あるていど決め打ちでもいいかも
ですね。
 64000(kHz) / (欲しい周波数(kHz) * 8) = divider
ってかんじですね。






2016年12月9日金曜日

ToF型測距センサ VL53L0Xをつかってみる。

ちょうど、仕事で STマイクロの ToF型測距センサ VL53L0Xをつかう機会が
あったので、その報告をば。

昨年ETのときかな?にSTマイクロのブースでみつけて
いいなー、と思っていたデバイスなんで、
ことしのET Westで、これのNUCLEO Packをもらってきたん。

たしかに、応答性がよくて、取り回しも便利。
自分で実装できるパッケージじゃないのと、内部用に2.8Vが必要という
めんどくささ、も我慢できるかなーー、というのはあったんだけど
問題は、I2Cデバイスであるにも関わらず、利用するための
内部のアドレス情報がまーーーったく開示されておらず
STM32のNUCLEO用のサンプルから自分用にポーティングしないとどうしようもない
というイケてないデバイスで、つかうのを躊躇してたんですよね。

今年のETで、STの担当者にこの件、きいてみたら
『これの前のデバイスで、アドレス情報など、サポートにじゃんじゃん質問がきたから
データシートへの記載、やめてるんですよねー』
とか。
それ、あかんやろ(>_<)



で、躊躇してたんだけど、Pololuで、このデバイスボードを発見!
https://www.pololu.com/product/2490
 

しかも、だいぶ簡素化された状態で、Arduino用のライブラリもgitに上がっているという
なんとまぁ、うれしい状態。

で、これをPSoCでつかいたいので、これをCの形式に変換しなおしてつかってみた。
PSoCもGCCをつかっているので、本来C++が使えるはずなんだけど
現状ではCオンリーなので、しかたない。

ソースはここ。
VL53L0X.C
VL53L0X.H


[<====ソース抜粋====>]

[<====  ここまで  ====>]

VL53L0Xの先頭部でI2Cへのアクセス関数部を別名定義してる。
PSoCの場合 PSoC5やPSoC4で、I2Cへのアクセス関数名がそれなりに変化しちゃって
固定してると、結構めんどくさい感じになりやすいので
VL53L0XでつかうI2Cの関数を、指定できるようにしてみた。

ほんとはClassがつかえれば、いいだろうし、Cであっても
関数ポインタつかえばできるのも理解してるけど、
なんとなく可読性がおちちゃうのが気になって、こういうベタなやり方にしてみた。

あと、タイムアウトを判定するために外部で
uint32_t timeout_start_ms ;    // 経過時間の観測変数
を減算してやる必要があります。

main.cなどでタイマーを利用してるソースの先頭に

     extern uint32_t timeout_start_ms ;

を定義して、1msのタイマーの中で

     if ( timeout_start_ms ) timeout_start_ms--;

としてください。


[<====ソースサンプル====>]

[<====  ここまで  ====>]

みたいなかんじかな。
標準状態だとサンプルが30ms間隔で行われるので、
それ以上は待ってやったほうが、いい、ってかんじですね。
観測早いし確実なのはいいなぁ。

超音波はつかいにくいし。









2016年11月30日水曜日

PSoC4 BLE について(PSoC Advent Calender)

あー、もう1年もほったらかし。
ごめんなさい m( _ _ )m
なんだか無線系も結構いろいろやったし、USBもいろいろでてきたけど
決定的なのはルネサス系の石の採用レートが下がってきたかなぁ、って。
PSoC押しなので、仕方ないけど、あんまり無理強いもしてないけれど、
やっぱり、じり貧なかんじは否めないなぁ。
TOCOS MonoWireless も単体のファームだとなかなか小難しいかんじで
使いにくいけど、省電力行くなら仕方ない!って続けてるけどね。
そろそろ出力増強版がでてくるらしいので、それを機に、
サイトも含めてきちんと整理して、わかりやすくしてほしいなぁ。


閑話休題。

Advent Calender for PSoC  が立ち上がっちゃったので
仕方なく、なんか書かなくちゃ、ってことで。
ちょうど、仲間うちでの簡易ワークショップの資料をつくっていたので
それを公開。
BLE以前に、PSoC、っていう知名度のなさもあって、最初の部分の
つまづくのを回避できれば、っていう意図で、何回か、ワークショップも
開いてきたんだけど。まぁ、BLEの資料って案外ないし、

『どうだかなぁ。。。』

って躊躇してる人も多いかもしれず、ってわけで、書いてみた。

最後の肝心のBLE周りは端折ってる(笑
具体的にはコード、みてね!
実際、この後、そのままだと、硬直しちゃうので、いろいろあるで!
ってのはあるので、好評なら次回もやるかも。






ダウンロード用の PDFファイル本体とサンプルは、ここ(Advend-PSoC)に公開。


で、実際ワークショップをやってみたんだけど、やっぱりいろいろあったわ。

1.ボードが認識しない
ボード買ってきたら、まず、つないでみたいよね!
ってわけで、つないだら、イミフなメッセージがでて、
PSoC Createrから認識できない、という状態が発生。

CY8CKITなどのpioneer Kitだと、書き込み&デバッガ用の KitProg が
ついてて、USB接続すると、そのままデバッグとかできるで!というのが
ウリなはずなんだが、一瞬焦る状況になる。





これ、KitProgのファームバージョンとPSoC Createrが要求するファームバージョンが
異なるから、ちゃんと合わせてね!っていうメッセージなんだけど

『じゃ、どしたらええねん。。。orz』
ってなる。

で、解決法は簡単。
PSoC Createrをインストールしたら、自動的に
PSoC Programer
も、インストールされているはずなので、これを起動する。

Start メニューのCypressのなかに

こんなふうにあるはず。

起動して、














Utilities の タブ を選択したら


左のリストに表示されている KitProg を選択したうえで
Upgrade Firmware
ボタンを押せば、アップデートが開始される。

ただしく完了したら下欄に、こんなふうにメッセージがでる。



これで、新版に更新完了したので、安心できる。



2.ボード違い
今回のワークショップ、サイプレスの
CY8CKIT-042-BLE-A

をベースに書いてるけれど、参加者のボードは
CY8CKIT-042-BLE


だった。orz

これも基本構成がおなじだし、複雑なことをやらなければ
問題ないんだけど、リソースが違うので、ちゃんと合わせてやらないとダメ。




プロジェクトを開いたら
左端のワークスペースのなかの
    Project 'Design01' [CY8C4248L..]
みたいなところを右クリック。














でてきた、Device Selecter を選択すると、デバイスを変更できる。

この手順は、作成したプロジェクトのCPUを変更する場合にも
つかうので、要チェック! ですな。

今回のデバイス変更は

BLE-A : CY8C4248LQI-BL583
BLE     : CY8C4247LQI-BL483


ということなので、これを選べばOK。

あと、Work03 では、実際にBLEからLEDをいじれるように
しているけれど、BLEチップの対応の違いが一部あって、

BLE のダイアログの GAP Setting - Security 部で
Enable Link Layer Privacy
のチェックを外す必要があります。





こんだけやれば、なんとか動くかんじ。
あとはいろいろBLEとは!みたいなことを勉強しないと、
先には進めないけれど、楽しくはあるよね。


あと、WindowsでBLEやろうとすると、結構ハードル高いことかな。
肝心のPRoCのドングルも一応 .NET Frameworkの資料がやっとでてきたけれど、
関数だけ、だらだら~って説明されてもつかえへん気がする。
Windows10の Linux for Windowsで bluez つかえへんかな?
使えたららくちんなのに。
まぁ、ドングルのほうはのんびりつかってみるか。。。




2013年9月6日金曜日

ひさびさの更新!!

まいどです(笑

いや、前回の6月18日更新から、はや3ヶ月orz
もうその間に、なにがあったのか、思い出すのも難しくなりつつあります。
いかんいかん、こんなことでは!!

5月に母が急逝して、ばたばたしてるまにETとCQ出版の原稿書きなど
ぐひっちゃかめっちゃかの感があったので、なにかと大変でした。

7月4日は、サイプレス PSoCワークショップ レベル3 を受講しにいったなぁ。
レベル2がいまいちだっただけに、結構おもしろかった。
VerilogHDLで内蔵UDBを扱う!とかかなり現実に即した内容で
コントロールレジスタなどの使い方も『そうか、そういうこと?』ってかんじだった。
まぁ問題は、Verilogで書いたカスタムコンポーネントのシミュレーションの方法が
ないので、別にテストベンチでガッツリつくった上で、カットアンドトライになるのは
勘弁して欲しい感じではあるけれど、PSoCをつかう最大のメリットになる部分なので
このあたりをもっと強化していってほしいなぁ。

ちなみに、コア部分にARM CortexM0を採用したPSoC4がでたけど、これについては
微妙な感じだった。
というのも、内蔵するUDBが少なすぎて、なかなかベストな使い方がみつからない。
ここらあたりは、PioneerKitがArduinoのフォームファクタをベースにしていることから
して想像すべきだった(>_<)
Arduinoにできるくらいのことは、Arduinoに任せておけばいいのにね。

あと、20日には、ルネサスナイト3だったか。
こっちは、テレビ会議がとぎれてしまったり、なにかと波乱のあった会だったけど、
それなりにおもしろかった。
やっぱり、おもしろいことやろうとしている人たちのそばにいると、わくわくするわ。

月末になると、VSハッカソンの延長で、.NET Microframeworkのハッカソンに参加。
奈良県産業振興総合センター主催?で、マイクロソフト エバンジェリストの太田さんや
株式会社デバイスドライバーズの日高さんなど、有名人が参加してわりとおもしろかった。

.NET GadgeteerのCerberusをつかったけれど、もう手にはいらないのかも。
決して情報が潤沢ではないのだから、安定長期供給は必須だとおもうんだけどなぁ。
使い慣れた、VisualStudioでマイコンのファーム開発ができるんだから、うまく情報を
だしていけば、絶対おもしろいことできるはずなんだけど。

というわけで、閑話休題。

8月25日発売の、CQ出版 月刊誌 Interface 誌 で少し記事を書きました。
6章と10章の2つを書かせていただきました。



初めての記事執筆でもうヒッチャカメッツヤカ
だったんですが、なんとか形にできました(笑

XBeeのほう(6章)が最初だったので、なんか
浮き足立ってしまって、結局ナニがいいたいのか
わからないような内容になってしまいました。

10章のほうは、ちょっと落ち着いてかけたかな。
さすがに時間が短くて、本格的に運用するところ
まではかけなかったんだけど、ま、そういうもんかも
しれません。

それにしても、雑誌に記事がのるなんて
想像もしなかったので、すごくうれしい!!

発売日の8月25日がちょうど母の百ケ日忌だったので
タイミングの妙というのか、なんだか不思議な
気分でした。


ま、ぼくよりも、ヨメのほうがよろこんでましたが(;^ω^) 



この記事を書くにあたって、XBeeのRSSIをしらべていたんですが、記事を書き始めてから
かなり焦りました。
もともとあまり精度がないのはわかっていたけれど、RSSIの落ち着きがないというか、
5m間隔くらいで、『ガツ!』ってレベルが変わる領域がある予感。
単純なばらつき、というわけでもないような感じなので、なにかあるのかもしれません。

最近つかいはじめた、TOCOSのTWE-Liteだと、そういう感じがないし、入力レベル自体も
かなり安定しているので、チップアンテナの作り込みがうまくいってないのかな?


しかし、無線系はなにかとやってみないとわからないことが多々あって大変だなぁ、つくづく
感じる体験でした。


2013年6月18日火曜日

ET WEST2013 御礼 & TOCOS TWE-LITE

あ~、3ヶ月の放置状態、いかんなぁ

あれからいろいろあったけど、一応元気にしてます(笑

某所の仕事でルネサスのRX621でガッツリあそんで(!)、デバッグやりにくいとか、
マニュアルわかりにくい、とか、いろいろあったけど、まぁ、それなりによく出来てる
マイコンだな~っておもってたんですよね。

そうこうしてるうちに、ひょんなことから、
がじぇるね』第2段、GR-KURUMIボードプロデューサーになってしまったりして、
KURUMIガイドブック&作品集に載せてもらったり、結構がちゃがちゃとしてました。



個人的にはRXよりはRL78のほうが好きなので、結構楽しめてます。
昇圧型レギュレータが載っているので、電池1本でもうごくのは結構うれしかったりして。
マイコンとしての機能は標準的だけど、実はArduino互換としてよりも、
CubeSuite+でガッツリつくったほうがカンタンだったりしますが、ここら辺は
完全に趣味の問題ですね。

デバッグがいるような内容なら、さっさとCubeSuite+とE1でやったほうが
結果がはやいとおもいます。
とくに省電力機能であるSNOOZEとの掛け合わせでいうなら必然かもです。
まぁ、用途によりますよね。
でもね、こいつが、もうすこし流行ってくれるとうれしいなぁ。

この流れで、Fuji-SAKURAプロジェクトにも首を突っ込むことに(苦笑
要は、富士通セミコンのFM3マイコンのSAKURAボードを作っちゃおう!
ってことらしい。
僕的には、Arduinoもどきはもう「おなかいっぱい」なので、そろそろ
mbed化か、.NET MicroFramework化で行って欲しいなぁ、とおもってしまう。
まぁ、新しいものつくれるんなら、それはそれでたのしまないとね。
だれか、mbed HDK を申請してくれないかなぁ。



閑話休題。

5月になって、PSoC4もデビューしましたね。
期待していたARM CortexM0+だったわけですが、
肝心の機能のほうが、デジタルブロックもオペアンプも少ない
なんだか中途半端な製品でした。う~ん。
僕的には、PSoC3のCortexM0+版を期待していただけにちょっとがっかり感が。
まぁ、1Mサンプルの12ビットSAR ADが内蔵されているので、使いようによっては
これで十分な用途もおおいかも、とはおもうけど。

マイナビの記事のいうように、PSoC3と5を補完する、というよりは
PSoC1の置き換え需要をねらったモノ、という位置づけなんでしょうね。
それなら、機能的にもわかる気がするし。
ま、4をえらぶなら、4200シリーズしかえらべないけどね。

とにかく、僕的にはPSoCはマイブーム(笑)なので、がんばってほしいところ。
PSoCの無料ワークショップも盛況なようで、レベル1は、7月17日に追加されてますね。
おもしろいですから、みなさん、参加されてみてはいかが?
ちなみに、ぼくは7月4日に、レベル3を受講します\(^o^)/


image:Cypress、Cortex-M0を搭載したPSoC 4製品として第1弾となる2ファミリを発表
ハードプロファイルがArduino互換なのはイケテルかも。
ソフトはオリジナルだけど、多分Arduinoより多機能で
つかいやすいので、ムリしなかったのは正解ですね
image:Cypress、Cortex-M0を搭載したPSoC 4製品として第1弾となる2ファミリを発表
内蔵デバイスをみると、4100シリーズは
明らかに役不足。
必然的に4200シリーズしかえらべないねぇ









































閑話休題、その2

6月13,14日の両日、大阪南港のインテックス大阪にて
組込み総合技術展 Embedded Technology WEST 2013 が
行われました。
事前に台風が予想されていましたが、幸い、好天に恵まれ(すぎ)、
非常に暑い中、来場者のほうは、過去最高の5812人だったそうです。

うちの会社も、ワイヤレスコントロール研究会のメンバーとして
出展しており、今年は、XBeeでのコントロール(例年どおり)に加えて、
CMOSカメラからの画像を送信する!という展示を行いました。
お掃除ロボットもどきの上にカメラを設置して、手持ちのキティちゃんで
デコした状態で、展示です(笑
1フレーム5秒程度で転送できていたので、結構みんな見て行ってましたね。
ZigBeeもなかなかやるなぁと、感心してたりして。


写真: もうすぐ開場

ブース的には、まさかの がじぇるね ブースの斜向かい(笑
木暮さん、岡宮さん、松山さんに、結構あそんでもらいました。

写真: がじぇるね の 斜向かい


今回の展示会、あんまりおもしろい話題がなかったんだけど
個人的にイケテルかも?とおもったのは


TWE-Lite DIP(トワイライト・ディップ)

ZigBeeと謳っているけど、実際にはIEEE802.15.4なのでチョットあれだけど
マイコンとしてみると結構おもしろいかもしれず。
OpenRISCらしい。開発環境がタダなのはいいなぁ。

足ピンの数からいって複雑なことはできないにせよ、
外部にマイコン積まなくてよければうれしいこともあるかもしれないし。
問題は、従来のTWE-Regularみたいに、中途半端なサポートに
なられると困るな~とか思いつつ、でも、おもしろいかな、と
色気をだしてました。
ちょうど、うちのブースの裏だったしね。
知り合いの評価もそこそこ好印象だったので、今後に期待!!




2012年12月14日金曜日

ARM大阪セミナとPSoC World

ああ、なんだかせわしいなぁ。

クリスマスも近づいてきてるし、帰りにはあちこちでクリスマスのネオンを
ちかちかさせてるし。
え~~っ!もう年末やん!! って、否応なく認識させられてしまう今日この頃(´・ω・`)

ETの資料とか、なかなか開封もできてなかったりするわけだけど、
それでも、12/5に行われたけいはんなの組込み交流サロンのプチ展示会にも
出展してきました。






ちっこいブースだったけど、端っこのいい場所にとってもらえていたので
なかなか盛況だったとおもいます。
それに会話に差し障るほどでっかくなってきた、自走式掃除ロボットの音も
客寄せにはしっかり貢献してましたし f(^^ゞ
講演自体は、それほどおもしろいのがなかったんですが、関係ないところで
睡眠研究のところは、お話好きな先生でおもしろかったです。


閑話休題。

まずは11日に、新大阪で行われた、ARM大阪セミナーに出席してみました。
ざっくりとARMについて、ってのが説明された「だけ」のセミナーで、
とくに目新しいところはなく終わったかんじでしたね。
まぁ、STマイクロのSTM32-F3シリーズが結構おもしろそうだったのと
富士通セミコンダクタの人と話して、.net Micro Framework でいきましょうよ!
というところの話ができてよかったかなと。
「プロトタイピングツールとして、.net Micro Frameworkを用意します」的な
発想だったようなんですが、そこが大きな間違いですよね。
単純にプロトタイピングするだけなら、それこそArduinoで十分。
僕的には mbedでしょうか。
でもね、わざわざ .net MicroFrameworkをいれてまで、「プロトタイピング」をしたいひとなんて
いないんとおもうんだけど。
.net をつかうなら、PCと同時にC#でゴリゴリやりたい!ってわけで。
まぁ、こんなことしたら、KEILとかIARからおこられちゃうのかもしれないけど。
とにかく、そういう風に振ってくれるならおもしろいかなぁ、と思った次第。


閑話休題、その2

Web上でのヴァーチャルセミナーだったのですが、13日朝から、
Cypress PSoC World 2012
が行われていたので、参加していました。
Webセミナーって初めてだったのですが、結構おもしろかったです。

若干、自慢?っておもえるくらいのところが鼻につく、といえばそうなのですが
なかなかおもしろい感じでした。
ただ、展示ブースのほうは、ちゃんとしてほしかったなぁ、ってのが残念。
英語での展開も仕方ない、とはおもうけど、アンケートに韓国語しかでてこない
ところとか、どうしろ?って感じ。
せめて英語なら意味も読めるだろうに。

パネルセッションが、以外とおもしろかったかなぁ。
日本人の人の英語の「あ~う~」ってのが聞きづらかったけど。
PSoC自体、他のマイコンみたいに考えちゃうと、理解しがたい部分がある、
という発言があって、おもわず『そう!そのとおり!』って思った。

そうなんだよね、構成も機能も自分であれこれやってしまうためのモノが
すべてそろってるわけで。

そのへんも含めてうまくたちまわってほしいなぁ、と。









2012年8月7日火曜日

PSoC3、RL78/G14など...

ふは~~  もうお盆前になっちゃいましたねぇ。

遅ればせながら

  暑中お見舞い申し上げます。

色だけでも暑苦しいねぇ(笑)

さて、割とのんびり出来ているかと思えば、ここ1ヶ月ほど、
急にドタバタして、更新どころではなくなっていました。
で、やっとめどがつきつつあるので、ちょっと更新をば。

まずはPSoC3。
さる7月11日、大阪スカイビルで行われたサイプレス社主催の
に参加してきました。
太っ腹なことにこんなサンプルボードもくれちゃったりしてます。
たぶん1万弱くらいのボードじゃないかな。

  

内容的には、予期に反して結構よかったかな、と。

PSoCはPSoC1のときに注目して使おうと
いろいろやり始めたんだけど、

1)能力低すぎ!!
2)ツールがダメダメ

というマイコンとしては致命的な内容だったので
結局お蔵入りになってました。

というのも、内蔵のアナログ機構をいろいろできる!
というのがふれこみだったのに、スイッチングキャパシタ
で抵抗なんかを実現している影響で、あまりにも
応答性がなくて、結局使える領域がみつけられなかった
ことが最大の要因でして。





また、ツールも内蔵で埋め込めるブロックが少なすぎて結局なんにもできなかったり
配置配線を替えると、ごっそりソースファイルまで消されてしまったりと、
どうしようもない状態。そのうえ、日本語の注釈もつかえないとか、もうさんざんだったんですよね。

で、数年前にPSoC3/5を出しますよ!と言われたときにかなり期待してたんですが、
それから、ま~~~~ったく出す気配がなく、ようやくといった印象。

CPUコア的には、独自コアM8Cから8051に変更になっており(PSoC5はARM)、
かなり普通になっています。
ツールもかなり普通になって、回路図(スケマティック)でごそごそとツールを配置して、
コード生成、という流れになっており、かなり普通に使える印象になっていました。

内蔵のADコンバータが20ビットΔΣが1チャンネルだけ、というのが気になっていたんですが
これについても自分でマルチプレクサを配置しちゃえばいい、というのが新しいといえば
新しいところでしょうか。
つまり、究極にまで、自由度を上げたマイコン、というかんじでした。
あとは、どの程度まで使えるかは追々試してみたいとおもいます。

ただ、仮にいいなぁ、とおもってもつかうかどうかはちょっと疑問ではあるけど。
というのも、Chip1Stopで2800円、Digikeyでも2200円もするその価格。
8ビットマイコンだよね??
と聞きたくなってしまう設定はどうなんだろ???と。

まぁ、CPU+CPLDと思えば、それなりなのかもしれんけど、
その割にはサポートに若干の不安もあるし。
もうすこし様子見のほうがいいのかもしれませんけどね。
いずれにせよ、おもしろいなぁ!とおもったのは事実なので、
ある意味がんばってほしい、デバイスではあります。


閑話休題。

え~、7月31日には、新大阪で行われた、
にも参加してきました。
こちらは抽選だったんですが、一応OKもらえたので(笑

G13についてはすでに稼働実績もあって、結構使いやすい石に仕上がってる
(というか78K0Rそのものだよね、って)印象だったんですが、
こんどのG14はちょっと高機能化してました。
主要なところだと

1)タイマーRD(R8Cに内蔵されてる3相コントロールPWMタイマ)
2)イベントリンクコントローラ(ELC)
3)SNOOZE
4)DTC

ってかんじでしょうか。
実践練習はこの3までをおこなうわけです。
タイマーRD用に64MHzの供給ができるようになってて、ちょっと高機能に
なってました。まぁこれはぼくにはあんまり関係ないなと。

2のELCは、RX210にもついてたんで、期待してたんですが、省電力で
うごかして、ADやタイマー直結で起動!という機能以上にはつかいようが
なさげな感じでした。
これについてはちょっとがっかり感もあったんだけど、まぁ使いようかなぁ。
低速/高速クロックをがっつり使い分ける用途には向くかもしれず。

3のスヌーズはG13にもあったけど、きちんと説明きくとおもしろかったですよ。
CPU自体の高速クロックも止めて、CPUをがっつり止めておきながら
ADとタイマーだけは生きてる!というなんかスゴイ世界。
で、設定されたADの閾値を超えたら割り込み発生で、CPUが生き返るという
なんとも優れもの。
CSI(シリアル通信)もこの機能に対応している(ただし、9600bpsまで)ので
うまくつかえばおもしろいかもなぁ、と。

こっちもTESSERA RL78/G14 Stickがもらえるはずだったんだけど
用意がまにあわなかったのか、結局もらえず。

まぁ、楽しめたけどね。
値段があえば、G14でもいいかもね。