ラベル がじぇルネ の投稿を表示しています。 すべての投稿を表示
ラベル がじぇルネ の投稿を表示しています。 すべての投稿を表示

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みたいに、中途半端なサポートに
なられると困るな~とか思いつつ、でも、おもしろいかな、と
色気をだしてました。
ちょうど、うちのブースの裏だったしね。
知り合いの評価もそこそこ好印象だったので、今後に期待!!




2013年2月22日金曜日

KURUMIとPSoC3備忘録\(^o^)/

あ~、ちょっと間隔があいちゃいましたね。
もうすぐ3月だしぃ。
仕事がらみで、バタバタしてたのはいつものこととして、
がじぇルネプロジェクトのRL78duino(以下GR-KURUMI)のプロデューサミーティングに
参加したり、といろいろおもちゃも増えつつあります。

GR-SAKURAはArduino互換のRX63N利用の高機能ボードとして
やっと認知されつつあるようですけど、情報が散逸がちで、
ライブラリも隠蔽状態で、いまいち使い込むには???なかんじ。
それでも展示会なんかで、

『関西ではやらないの?なんで~~』

って、つっこんでいた手前、RL78版で参加せざるをえない?雰囲気に
なってて、2月3日に大阪ミーティングに参加してきました。


GR-KURUMIはRL78/G13をのっけた、Arduino Pro Mini互換の
ちっこい省電力マイコンです。
昇圧コンバータものっけているので、乾電池駆動できるというのが
ウリでしょうか。
SparkfunのFT232RLのアダプタでシリアル通信と書き込みができます。
Webコンパイラでコンパイルもできますが、GCC環境なのでe2studioで
ローカル開発したほうが気持ちいいかも、です。
といっても、GDB+E1でのデバッグはまだまだ不安定なので、
デバッグ環境がととのっている、とはいえないようですけど。




とりあえず、大阪の第2回ミーティングがせまってきているので
mbed用につくっていたライブラリをKURUMI用に改変して
うごくことだけは、確認しました。
案外簡単にうごくのね。
トラブルのほとんどは自分のIOまわりの設定ミス。
やっぱりちゃんとメモしてつくらんとあかんなぁ。

で、さすがにmbedほど高速にはうごかないので、定番のねぎミクも
振っているのがみえるし(汗
とにかく、ライブラリとしてうまくまとめて公開準備しなきゃ。


閑話休題。

やっとPSoCの利用のお仕事、第一弾がきまったのでシコシコとテスト
をつくっています。
ひさびさにつかってみたらKEILのライセンスがきれてるのにうまくUPDATEできない
とか(これは新規インストールしたらできた)、いろいろあったけど、
とにかく、使えるようにはなった(汗

出荷用のボードを起こす時間も費用もないので、CQ出版の

なるものを購入。5040円也。
でも、Amazonで発注してから、
USBコネクタとかいろいろないことが発覚。
秋月でパーツキットも購入。
このとき、この本まで扱っているのに気がついてorz
最初っからこっちで買っとけばよかった。。。。。


このあと、コネクタとか実装するわけだけど、
秋月キットのUSBコネクタが小さくなってて、
ボード端よりかなり内側に実装することになってる。

これでは、USBケーブルがささらない!!
ということで、ヤスリでゴリゴリと削ってなんとか
ケーブルがささるところまではもちこんだけど、こういうのってなんとかならんかったんか?


でも、ここからはおもしろい!!でも、また忘れると困る内容を
備忘録としてまとめておく!!


まず、PSoCのプロジェクトをつくったときに、拡張子が、

cysch ==> スケマティック=回路図面
cydwr  ==> 本体の基本設計

ができるわけだけど、cydwrファイルが重要。普通にクリックすると
Pinsがでてきて、定義した信号名をIOピンに割り付けられるわけだが、
この下側にあるタブで、全体のクロックをまずは調整する必要がある。
これに気がつかないと、せっかく高速のマイコンなのに、3MHzで
うごかすとか、変なことになりかねない。

cydwrのpins画面。下にあるタブに注目すべし!!


















下にあるタブで、clocksをおして、このなかでダブルクリックすると
グラフィカルな画面になる。

clocks画面。実際に変更するには
IMOなどの文字部分をダブルクリックする!



クロック周りの実体設定部がこれ。
ここで、設定しとかないと...

































XTAL:外部供給クロック
IMO :オンチップ高速オシレータ
ILO :オンチップ低速オシレータ
をベースとして、つくるわけだけど、CPUに入るバスクロックと
マスタークロックはやっぱり24MHzくらいにはしたいよね、というわけで
とりあえず、IMOを24MHzにして、PLLなんかも分周比1で、そのまま入れる
ように設定。低消費電力なんかを目指すなら、ここらあたりをうまく調整
しないと!ってことですよね。

さて、ここが設定できたら、もうあとは設計にはいっちゃえばいいわけですな。


マイコンの初歩としてはLチカははずせへんでしょ?
ってことで、サンプルはLチカ。

まずスケマティックをつかって
回路を構成するわけだが、
ここに
 Pin_1
をおいて、cydwrのpinsで任意の場所に割り付けて、
まずはBuild。
そうすると、利用コンポーネントのソースが生成されて
Cから扱えるコンポーネントAPIもつくられる。
要は、ハード構成を変更したら、まず、Build!ってのを
習慣化しないとだめなんだな!

で、あとはmain関数のなかで

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

void main()
{
    int clk=0;

    Pin_1_Write(clk);
    clk ^=0x01;
    for(;;){
        Pin_1_Write(clk);
        clk ^=0x01;
        CyDelay( 500 );
    }
}

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


とでもすれば、500msごとに点滅する回路の完成。
なるほど。

でもね、CyDelayっておもしろくないな~ってことで、
ほかのマイコン同様、タイマーをつかいたかったので
それでつくったのが、この回路。


上側の回路がLED点滅回路。
下はUARTのテスト用回路.



















タイマーの設定画面。
供給クロックを変えると勝手にperiodも
計算してくれるので、超簡単





















分周CLOCKコンポーネントで10kHzつくってタイマーに入れ、
タイマーをダブルクリックすると、あとは任意の時間を設定して
コンペアマッチ出力(tc)を出してくれます。
ただ、でてくる出力は当然クロック1発分だけですから、外側に
D-FFでラッチするようにしてやると、ソフト挙動に関係なく
光らせることができますね。
この回路ではisr_1という割り込み出力もつくってますが、割り込みを
つかうと、レジスタ待避などのいらない挙動がつくので、ハードウエア
で処理できるならそれにこしたことはないよね!
ってのがわかる回路になってます。

ついでなので、UARTもやってみた。
IOはどこでもいいので、RX/TXをわりつけてUARTの設定で
回線速度とかをごそごそ設定。



おもしろいのはBufferサイズが
可変なこと。

通常のマイコンだと、UART設定
ができても、所詮ダブルバッファくらい
しかないので、受信割り込みで
FIFOをつくって処理してやらないと
だめだったりと、
結構面倒くさい、というか、
ここらが、ソフト屋さんの腕の見せ所だったり
したわけだけど、
PSoCの場合は最初から、バッファサイズ4。任意に増やせるので、僕の場合は
128にしてみた。
こうすると、割り込み&FIFOなんてことしなくっても大丈夫だったりするのだった。

ここまで簡単にUARTをつかえるのってめずらしい。

ちなみにUSBFSでUSBーUARTの機能もあるのだが、
基本的に同じつかいかたでいけるのはすごい。
とりあえず、ここまでのソースを添付しておく。

なんか、おもろいわ~~。


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


/* ========================================
 *
 * Copyright YOUR COMPANY, THE YEAR
 * All Rights Reserved
 * UNPUBLISHED, LICENSED SOFTWARE.
 *
 * CONFIDENTIAL AND PROPRIETARY INFORMATION
 * WHICH IS THE PROPERTY OF your company.
 *
 * ========================================
*/
#include <device.h>
#include <stdio.h>

// 割り込みプロトタイプ宣言
CY_ISR_PROTO( ISR_Interrupt );

// タイマー割り込みの実体
CY_ISR(ISR_Interrupt)
{
}

void main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
int clk=0;
char c;
int i;
int rcount;
char  buf[50];

isr_1_StartEx(ISR_Interrupt) ; // タイマー割り込みを割り付け

Timer_1_Start();
UART_1_Start();
UART_1_ClearRxBuffer();

CyGlobalIntEnable; // 割り込み許可

//Pin_1_Write(clk);
//clk ^=0x01;
    for(;;)
    {
        /* Place your application code here. */

rcount = UART_1_GetRxBufferSize(); // 受信バッファにあるサイズを取り出す
if ( rcount ){
for(i=0;i<rcount;i++){
c = UART_1_GetByte(); // GetCharは0を除外するのでつかわない
sprintf( buf, "%c = %02x\r\n", c, (int)c );
UART_1_PutString( buf );
}
x = 0;
}
//Pin_1_Write(clk);
//clk ^=0x01;
//CyDelay(500); //ms待ち
//CyDelayUs(500); //us待ち

    }
}

/* [] END OF FILE */


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

2013年1月23日水曜日

GR-SAKURA 備忘録

まいど。

え~、年末からごそごそといじり始めたがじぇるねのSAKURAボード




Renesas Rulzにある、がじぇっとるねさすゆーざー会のページにいくと
いろいろ教えてもらえるんですが、なんにせよ固まった情報がないのと
Arduino自体ではない!という点から、どうしたらいいのかわかりにくい
状態になっています。

とくに、ボード上のIOの取り合いと設定が回路図をみて、
利用方法を考えて自分でやってね!的発想で資料が散文している
ので、ひどくわかりにくい。

で、とりあえず、自分に必要な最小限の情報をとりまとめてみたので
ここでは備忘録として残しておこうと。


オンボードLED(正論理出力)
PA0   LED1
PA1   LED2
PA2   LED3
PA6   LED4

オンボードSW(負論理入力)
PA7   SW2

USBホスト ジャンパショートによる接続
J13 USB-DMプルダウン
J15 USB-DPプルダウン
P22 (CN8-P3) DRPD USB Host機能による排他利用
P25 (CN8-P6) DPRPD USB Host機能による排他利用


JP XBeeジャンパショートによる接続
J7 P52 RXD2(CN9-P4) XB-DOUT
J8 P50 TXD2(CN9-P7) XB-DIN
J9 P51 (CN9-P5) XB-RES
J16 VCC33 XB-VCC
J11 P54 (CN9-P2) XB-RTS
J10 P55 (CN9-P1) XB-CTS


SD-Cardと外部CS
PC0 (CN9 -P8 ) SPICS1 SD-CS
PC6 (CN7 -P4 ) SPIMOSI SD-CMD
PC5 (CN7 -P6 ) SPICLK SD-CLK
PC7 (CN7 -P5 ) SPIMISO SD-DAT0
P15 (CN10-P5 )挿入検出  WriteProtectSW

PC1 (CN9 -P7 ) SPICS2

ピン配置と取り合図<上段>
pinCN14CN12CN11  CN9CN7
9 NC
8 NC
743(PD7)51(PE7) 22(PC0)[SD] NC
642(PD6)50(PE6) 23(PC1)[ExtCS]GND
5RES 41(PD5)49(PE5) 24(P50)[XB] 13/SCK (PC5)
43.3V40(PD4)48(PE4) 25(P51)[XB] 12/MISO(PC7)
35V 39(PD3)47(PE3) 26(P52)[XB] 11/MOSI(PC6)
2GND 38(PD2)46(PE2) 27(P53) 10/SS0 (PC4)
1GND 37(PD1)45(PE1) 28(P54)[XB] 9 (PC3)
0(VIN)36(PD0)44(PE0) 29(P55)[XB] 8 (PC2)


 ピン配置と取り合図  <下段>
pinCN15CN13 CN10CN8
7 30(P12) 7(P33)
6 31(P13) 6(P32)
5A0(P40) A6/20(P46) 32(P14) 5(P25)[USBH]
4A1(P41) A7/21(P47) 33(P15)[SD]4(P24)
3A2(P42) 52(P07) 34(P16) 3(P23)
2A3(P43) 53(P06)[DA1] 35(P17) 2(P22)[USBH]
1A4(P44) 54(P35)[NMI] V30 1(P20)
0A5(P45) 55(PJ3) GND 0(P21)

ここで、A0~A7はAD入力ピン。その他の0~55の数字はArduinoのIO番号。
()内の番号はRX63NのIOピン名称。
[]内は排他機能の名称。


こういうのがないんだよね。案外。
で、ぼ~っと眺めるとわかってくるのは、まとまってIOがとれるのは
CN11,12の16ビット分くらいかなと。
内蔵のSDとかUSBホストとか、いろいろテストしたいな~とか
おもっていると案外ポートがとりにくかったりするのが、漠然とわかります。

うん、とりあえず、シリアルのテストがおわったら、
XBeeの接続系統のテスト(APIモード)をやって、
USBホストでADKでもやってみようかな、と妄想中(;^ω^) 


そうそう、LANのほうもやらなくっちゃね。




*** 1/28 SDのP15について記述修正(;^ω^)