まいどです(笑
いや、前回の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年9月6日金曜日
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^)/
閑話休題、その2
6月13,14日の両日、大阪南港のインテックス大阪にて
組込み総合技術展 Embedded Technology WEST 2013 が
行われました。
事前に台風が予想されていましたが、幸い、好天に恵まれ(すぎ)、
非常に暑い中、来場者のほうは、過去最高の5812人だったそうです。
うちの会社も、ワイヤレスコントロール研究会のメンバーとして
出展しており、今年は、XBeeでのコントロール(例年どおり)に加えて、
CMOSカメラからの画像を送信する!という展示を行いました。
お掃除ロボットもどきの上にカメラを設置して、手持ちのキティちゃんで
デコした状態で、展示です(笑
1フレーム5秒程度で転送できていたので、結構みんな見て行ってましたね。
ZigBeeもなかなかやるなぁと、感心してたりして。
ブース的には、まさかの がじぇるね ブースの斜向かい(笑
木暮さん、岡宮さん、松山さんに、結構あそんでもらいました。
あれからいろいろあったけど、一応元気にしてます(笑
某所の仕事でルネサスの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^)/
ハードプロファイルがArduino互換なのはイケテルかも。 ソフトはオリジナルだけど、多分Arduinoより多機能で つかいやすいので、ムリしなかったのは正解ですね |
内蔵デバイスをみると、4100シリーズは 明らかに役不足。 必然的に4200シリーズしかえらべないねぇ |
閑話休題、その2
6月13,14日の両日、大阪南港のインテックス大阪にて
組込み総合技術展 Embedded Technology WEST 2013 が
行われました。
事前に台風が予想されていましたが、幸い、好天に恵まれ(すぎ)、
非常に暑い中、来場者のほうは、過去最高の5812人だったそうです。
うちの会社も、ワイヤレスコントロール研究会のメンバーとして
出展しており、今年は、XBeeでのコントロール(例年どおり)に加えて、
CMOSカメラからの画像を送信する!という展示を行いました。
お掃除ロボットもどきの上にカメラを設置して、手持ちのキティちゃんで
デコした状態で、展示です(笑
1フレーム5秒程度で転送できていたので、結構みんな見て行ってましたね。
ZigBeeもなかなかやるなぁと、感心してたりして。
ブース的には、まさかの がじぇるね ブースの斜向かい(笑
木暮さん、岡宮さん、松山さんに、結構あそんでもらいました。
今回の展示会、あんまりおもしろい話題がなかったんだけど
個人的にイケテルかも?とおもったのは
ZigBeeと謳っているけど、実際にはIEEE802.15.4なのでチョットあれだけど
マイコンとしてみると結構おもしろいかもしれず。
OpenRISCらしい。開発環境がタダなのはいいなぁ。
足ピンの数からいって複雑なことはできないにせよ、
外部にマイコン積まなくてよければうれしいこともあるかもしれないし。
問題は、従来のTWE-Regularみたいに、中途半端なサポートに
なられると困るな~とか思いつつ、でも、おもしろいかな、と
色気をだしてました。
ちょうど、うちのブースの裏だったしね。
知り合いの評価もそこそこ好印象だったので、今後に期待!!
2013年3月19日火曜日
.net MicroFrameworkであそんできた
とうとう、春到来ですね。眼がかゆくてしかたない(T_T)
なんだか仕事に追われて、RL78やらRX621やらPSoC3やら、
もうワケワカメな状態が2週間ほどつづいています(笑
このうえ、この週末には、がじぇっと るねさすの大阪ミーティングがあり、
4月にはいると、mbed祭り@大阪があり、とイベントずくめ。
どうやって時間つくるん?と自問自答。。。(笑
ま、なにかとたのしんでるんでいいけどね。
それぞれ特徴があるし。
にしても GR-SAKURA も GR-KURUMI もなかなかサンプル作る時間が
ないので、本格的に出すのはET-Westになっちゃうかもね。ま、それもいいか。
閑話休題。
先日(2013/3/7 & 3/11)に、なら工業技術センターで行われた
IT・RTセミナー
『クラウドを使った遠隔監視システム工作』
に参加してきました。
内容的には
cosm(Pachube)をつかったデータのクラウド化
を
.net Micro Framework(以下NETMF)をつかって実現してみよう!
という体験講座だったわけです。
cosmは、むかしPachubeと言われてたサイトで、ちょうど東日本の震災のときに
放射能データの共有などの話題で、少し有名になったかな~ってサイトです。
私の場合、NXP mbedをやり始めたときに、ネットワーク系のサンプルが
上がっていたので試したくらいの知識でした。
当時は、公開データしかできなくて、結構???なサイトでしたが
いまはかなり高度になって、使いやすい感じでしたヨ。
ま、こっちはおいといて。
NETMFについては、株式会社デバイスドライバーズの日高さんがこられて
概略をちょいちょいとお話になってられました(笑
ボードはGHI エレクトロニクスのGadgeteer FEZ-Spiderを。
スパイダーと Panda II
まぁ、よくできてはいるよね。
スパイダーというだけあって、いろんなのをコネクタくにくにとつけていくと
もう蜘蛛の足状態だし。
自分の環境でいろいろ足し込んでいくなら FEZ Panda IIのほうが
Arduino互換の足なので拡張しやすいかもなぁ。
まぁユニバーサルがそのままではつかえないのが痛いけど、
Spiderでケーブルだらけになるよりましかもしれず。
で、肝心のNETMFなんですが、ちょっと微妙かなぁ。
たしかに、VisualStudio2010と統合されて、C#でつくってデバッグできる
ってのはいいかなぁ、とおもいます。
言語仕様もはっきりしているし、なにより、PCのプログラマには
デファクトスタンダードな環境だし。
ただ、マイコン屋からみると、きわめて中途半端な仕様に映る。
イニシャルはいいとして、メインループで処理待ちをする、という
仕様になっているようで、むかしながらのタスク待ち関数をつくる
ようなイメージで、割り込みとかそういう部分が、かなり中途半端。
メッセージループはメインを出ないと、送信されないようなので、
処理にガッツリ時間をかけると、メッセージがかえらなかったりする。
まぁ、そのあたりに気をつけて書けばすむんだけど、そういう部分の
仕様がどこにドキュメントがあるのか、さっぱり検討がつかないのが
イタイ。
2日目の講習では、EthernetアダプタのMACが全機種おなじという
想像もつかない状態であることが発覚し(笑)たものの、
MACの設定方法がどこにあるか、とか、
そういう
当たり前のドキュメントさえ、どこにあるか判然としないのはいかがなモノか。
ま、会場に来ていた数名の猛者が分業しながら解決したものの
自分一人だったら、あきらめてる(苦笑
というか、これをもって、お客さんのところでデバッグなんてようしません、私。
で、幸か不幸か、オープンソースになったようで、ますますドキュメント整備が
おくれてくるんやろうなぁ、と。
せめて、日本語でサポートされるコミュニティが富士通エレくらいが立ち上げてくれると
ちょっとやってみようかなぁ、となるのに。
なんだか仕事に追われて、RL78やらRX621やらPSoC3やら、
もうワケワカメな状態が2週間ほどつづいています(笑
このうえ、この週末には、がじぇっと るねさすの大阪ミーティングがあり、
4月にはいると、mbed祭り@大阪があり、とイベントずくめ。
どうやって時間つくるん?と自問自答。。。(笑
ま、なにかとたのしんでるんでいいけどね。
それぞれ特徴があるし。
にしても GR-SAKURA も GR-KURUMI もなかなかサンプル作る時間が
ないので、本格的に出すのはET-Westになっちゃうかもね。ま、それもいいか。
閑話休題。
先日(2013/3/7 & 3/11)に、なら工業技術センターで行われた
IT・RTセミナー
『クラウドを使った遠隔監視システム工作』
に参加してきました。
内容的には
cosm(Pachube)をつかったデータのクラウド化
を
.net Micro Framework(以下NETMF)をつかって実現してみよう!
という体験講座だったわけです。
cosmは、むかしPachubeと言われてたサイトで、ちょうど東日本の震災のときに
放射能データの共有などの話題で、少し有名になったかな~ってサイトです。
私の場合、NXP mbedをやり始めたときに、ネットワーク系のサンプルが
上がっていたので試したくらいの知識でした。
当時は、公開データしかできなくて、結構???なサイトでしたが
いまはかなり高度になって、使いやすい感じでしたヨ。
ま、こっちはおいといて。
NETMFについては、株式会社デバイスドライバーズの日高さんがこられて
概略をちょいちょいとお話になってられました(笑
ボードはGHI エレクトロニクスのGadgeteer FEZ-Spiderを。
スパイダーと Panda II
まぁ、よくできてはいるよね。
スパイダーというだけあって、いろんなのをコネクタくにくにとつけていくと
もう蜘蛛の足状態だし。
自分の環境でいろいろ足し込んでいくなら FEZ Panda IIのほうが
Arduino互換の足なので拡張しやすいかもなぁ。
まぁユニバーサルがそのままではつかえないのが痛いけど、
Spiderでケーブルだらけになるよりましかもしれず。
で、肝心のNETMFなんですが、ちょっと微妙かなぁ。
たしかに、VisualStudio2010と統合されて、C#でつくってデバッグできる
ってのはいいかなぁ、とおもいます。
言語仕様もはっきりしているし、なにより、PCのプログラマには
デファクトスタンダードな環境だし。
ただ、マイコン屋からみると、きわめて中途半端な仕様に映る。
イニシャルはいいとして、メインループで処理待ちをする、という
仕様になっているようで、むかしながらのタスク待ち関数をつくる
ようなイメージで、割り込みとかそういう部分が、かなり中途半端。
メッセージループはメインを出ないと、送信されないようなので、
処理にガッツリ時間をかけると、メッセージがかえらなかったりする。
まぁ、そのあたりに気をつけて書けばすむんだけど、そういう部分の
仕様がどこにドキュメントがあるのか、さっぱり検討がつかないのが
イタイ。
2日目の講習では、EthernetアダプタのMACが全機種おなじという
想像もつかない状態であることが発覚し(笑)たものの、
MACの設定方法がどこにあるか、とか、
そういう
当たり前のドキュメントさえ、どこにあるか判然としないのはいかがなモノか。
ま、会場に来ていた数名の猛者が分業しながら解決したものの
自分一人だったら、あきらめてる(苦笑
というか、これをもって、お客さんのところでデバッグなんてようしません、私。
で、幸か不幸か、オープンソースになったようで、ますますドキュメント整備が
おくれてくるんやろうなぁ、と。
せめて、日本語でサポートされるコミュニティが富士通エレくらいが立ち上げてくれると
ちょっとやってみようかなぁ、となるのに。
2013年2月22日金曜日
KURUMIとPSoC3備忘録\(^o^)/
あ~、ちょっと間隔があいちゃいましたね。
もうすぐ3月だしぃ。
仕事がらみで、バタバタしてたのはいつものこととして、
がじぇルネプロジェクトのRL78duino(以下GR-KURUMI)のプロデューサミーティングに
参加したり、といろいろおもちゃも増えつつあります。
GR-SAKURAはArduino互換のRX63N利用の高機能ボードとして
やっと認知されつつあるようですけど、情報が散逸がちで、
ライブラリも隠蔽状態で、いまいち使い込むには???なかんじ。
それでも展示会なんかで、
『関西ではやらないの?なんで~~』
って、つっこんでいた手前、RL78版で参加せざるをえない?雰囲気に
なってて、2月3日に大阪ミーティングに参加してきました。
まず、PSoCのプロジェクトをつくったときに、拡張子が、
cysch ==> スケマティック=回路図面
cydwr ==> 本体の基本設計
ができるわけだけど、cydwrファイルが重要。普通にクリックすると
Pinsがでてきて、定義した信号名をIOピンに割り付けられるわけだが、
この下側にあるタブで、全体のクロックをまずは調整する必要がある。
これに気がつかないと、せっかく高速のマイコンなのに、3MHzで
うごかすとか、変なことになりかねない。
下にあるタブで、clocksをおして、このなかでダブルクリックすると
グラフィカルな画面になる。
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っておもしろくないな~ってことで、
ほかのマイコン同様、タイマーをつかいたかったので
それでつくったのが、この回路。
分周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 */
==========================
もうすぐ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の取り合いと設定が回路図をみて、
利用方法を考えて自分でやってね!的発想で資料が散文している
ので、ひどくわかりにくい。
で、とりあえず、自分に必要な最小限の情報をとりまとめてみたので
ここでは備忘録として残しておこうと。
*** 1/28 SDのP15について記述修正(;^ω^)
え~、年末からごそごそといじり始めたがじぇるねの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 ) | 挿入検出 |
PC1 (CN9 -P7 ) SPICS2 |
ピン配置と取り合図 | <上段> | |||||
---|---|---|---|---|---|---|
pin | CN14 | CN12 | CN11 | CN9 | CN7 | |
9 | NC | |||||
8 | NC | |||||
7 | 43(PD7) | 51(PE7) | 22(PC0)[SD] | NC | ||
6 | 42(PD6) | 50(PE6) | 23(PC1)[ExtCS] | GND | ||
5 | RES | 41(PD5) | 49(PE5) | 24(P50)[XB] | 13/SCK (PC5) | |
4 | 3.3V | 40(PD4) | 48(PE4) | 25(P51)[XB] | 12/MISO(PC7) | |
3 | 5V | 39(PD3) | 47(PE3) | 26(P52)[XB] | 11/MOSI(PC6) | |
2 | GND | 38(PD2) | 46(PE2) | 27(P53) | 10/SS0 (PC4) | |
1 | GND | 37(PD1) | 45(PE1) | 28(P54)[XB] | 9 (PC3) | |
0 | (VIN) | 36(PD0) | 44(PE0) | 29(P55)[XB] | 8 (PC2) | |
ピン配置と取り合図 | <下段> | ||||
---|---|---|---|---|---|
pin | CN15 | CN13 | CN10 | CN8 | |
7 | 30(P12) | 7(P33) | |||
6 | 31(P13) | 6(P32) | |||
5 | A0(P40) | A6/20(P46) | 32(P14) | 5(P25)[USBH] | |
4 | A1(P41) | A7/21(P47) | 33(P15)[SD] | 4(P24) | |
3 | A2(P42) | 52(P07) | 34(P16) | 3(P23) | |
2 | A3(P43) | 53(P06)[DA1] | 35(P17) | 2(P22)[USBH] | |
1 | A4(P44) | 54(P35)[NMI] | V30 | 1(P20) | |
0 | A5(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について記述修正(;^ω^)
2013年1月16日水曜日
新年です & がじぇるね
みなさま、
って、もう松がとれちゃってますけどね(苦笑
あぁ、すでに一年の1/24が経過してしまいました...
こんな計算してるばあいじゃないですね。
年末くらいから、がじぇるねプロジェクトのGR-SAKURAボードを
つかう機会をえたので、ちょっとあそんでたんですが、
結構いけますね。
内容的には ルネサスのRX63NにUSBコネクタ、LANコネクタと
XBee用のコネクタを付加しただけのボードなんですが
Arduino互換の環境をWebで整えたボードです。
NXPのmbedのように、Webコンパイラなので、開発環境を
ローカルで用意しなくてもフルに機能がつかえるのはうれしいなぁ
というわけ。
CPU自体が十分高速なのと、最初からUSBにもLANにも
ファームレベルで対応してくれているので、本家のArduinoよりも
つかいやすいかもしれないなぁ、というわけ。
僕自身はmbedでやってたので、これでもいいやん、っておもってたんだけど
なによりIO系がよくだされているので、ええかなと。
ただ、肝心のWebコンパイラが、いけてないのが...
とにかく遅い。しかたないのかもしれないけど。
まぁ、この点については、caron999さんがつくってくれた
統合環境をつかうと、問題はほぼ解決しますけど。
本気でやるなら、これが必須ですね。
あとは、Arduino以上のことをやろうとするととたんにRXのマニュアルと
首っ引きになるんだけどArduino互換だけに、なんとなくわかりにくいのを
なんとかすれば、結構いけるんじゃないかな。
とりあえず、手元のXPortProでやってたプロジェクト、こいつにおきかえちゃおうかな。
XPortPro+Linuxってのも魅力だったけど、なんだか制限もおおいからね。
結構めんどくさいんだよね。
とくに難しいことをしてるわけでもないので、とりあえずテスト的にも
やってみたいお年頃です(;^ω^)
新年明けましておめでとうございます。
本年もどうぞよろしくお願いいたします m(_ _)mって、もう松がとれちゃってますけどね(苦笑
あぁ、すでに一年の1/24が経過してしまいました...
こんな計算してるばあいじゃないですね。
年末くらいから、がじぇるねプロジェクトのGR-SAKURAボードを
つかう機会をえたので、ちょっとあそんでたんですが、
結構いけますね。
内容的には ルネサスのRX63NにUSBコネクタ、LANコネクタと
XBee用のコネクタを付加しただけのボードなんですが
Arduino互換の環境をWebで整えたボードです。
NXPのmbedのように、Webコンパイラなので、開発環境を
ローカルで用意しなくてもフルに機能がつかえるのはうれしいなぁ
というわけ。
CPU自体が十分高速なのと、最初からUSBにもLANにも
ファームレベルで対応してくれているので、本家のArduinoよりも
つかいやすいかもしれないなぁ、というわけ。
僕自身はmbedでやってたので、これでもいいやん、っておもってたんだけど
なによりIO系がよくだされているので、ええかなと。
ただ、肝心のWebコンパイラが、いけてないのが...
とにかく遅い。しかたないのかもしれないけど。
まぁ、この点については、caron999さんがつくってくれた
統合環境をつかうと、問題はほぼ解決しますけど。
本気でやるなら、これが必須ですね。
あとは、Arduino以上のことをやろうとするととたんにRXのマニュアルと
首っ引きになるんだけどArduino互換だけに、なんとなくわかりにくいのを
なんとかすれば、結構いけるんじゃないかな。
とりあえず、手元のXPortProでやってたプロジェクト、こいつにおきかえちゃおうかな。
XPortPro+Linuxってのも魅力だったけど、なんだか制限もおおいからね。
結構めんどくさいんだよね。
とくに難しいことをしてるわけでもないので、とりあえずテスト的にも
やってみたいお年頃です(;^ω^)
2012年12月28日金曜日
万博&年間総括
ああ、今年ももうすぐおわりですねぇ。
万博公園でも、他所のように、プロジェクションマッピングをやっていたので
ちょっと遊びにいってみました。(ここはビームペインティングといってますけど)
チケットはあったんですんなり入れたのですが、周辺道路はもう大渋滞。
あれはいただけませんね。
チケット待ちの人は、万博公園入り口からモノレールの入り口までつづく
これまた大渋滞。
なんじゃそりゃ?って感じ。
それでも、やっぱ大阪やな~とおもうのは、10分間隔で上映していることでしょうか。
作品自体も7分ぐらいあるので、ほぼエンドレス上映です。
映写対象が太陽の塔ということもあって、チケット待ちの状態でもほぼフル閲覧
可能であったにもかかわらず、長蛇の列。
なんでかな?ともおもったんですが、実際会場の中にいくと、音響とのマッチングが
すばらしいので、こりゃもうけたな、と。
映像自体は子供の夢、ってかんじなんですが、とにかくすごいなぁ、と感心しきり。
でも、ぼくの古い携帯ではきちんととれませんねぇ。
やはり光量不足がはっきり。
まぁ、雰囲気だけでもどうぞ、ということで。
閑話休題。
この一年、なんだか、仕事よりもマッチングやら展示会やらでゴソゴソした
いつもとは違う一年だった気がします。
あたらしいことも、いろいろしたはずなんですが、あまり大げさなモノが減った
気がします。
かわりに、いろんな企業を回って、自分の会社の説明をするうちに、
「あ、うちの会社って、こんな会社だったんだ」
と、再認識させられることがおおかったようにおもいます。
最初のころに、コーディネータのひとから、
「自分の会社がどういうところかは、相手の企業さんがおしえてくれるよ」
と言われたことが、今頃になってわかった感じです。
同時に、じっとしていてはダメなんだな、とつくづく考えさせられた一年でした。
というわけで、来年に向けて、ちょっと本腰をいれないとな~とおもっている
今日この頃です。
みなさん、今年も一年、ありがとうございました!!
で、来年もどうぞよろしくお願いします!!!
登録:
投稿 (Atom)