Sim's blog

電子工作はじめてみました

FPGAボード

2007-12-27 00:07:47 | FPGA
ストロベリーリナックスさんでSpartan 3E/3A/3AN starter kitを扱いはじめています。マルツに続き個人購入しやすいところができました。

ソリトンウェーブさんで、Altera DE1ボードTerasic TREX C1ボードを扱いはじめています。どちらも開発元は同じです。色々と周辺がついているので楽しめそうなボードです。
ソリトンウェーブの年末感謝セールで、どちらのボードも5%オフになっています。

エレキジャックのMC9RS08KA2で作るイルミネーション

2007-12-22 17:26:27 | 電子工作
CQ出版エレキジャックホームページに「超Low-EndマイコンRS08を使おう」という連載があります。このブログにもよくコメントをくださる、のりたんさんが執筆されています。クリスマス企画で「MC9RS08KA2で作るイルミネーション」の部品セットのプレゼントがありました。応募してみたところ当たっちゃいました。

関連する連載です。
超Low-EndマイコンRS08を使おう - MC9RS08KA2で作るイルミネーション (1)
超Low-EndマイコンRS08を使おう - MC9RS08KA2で作るイルミネーション (2)
超Low-EndマイコンRS08を使おう - MC9RS08KA2で作るイルミネーション (3)
超Low-EndマイコンRS08を使おう - MC9RS08KA2で作るイルミネーション (4)

送られてきたものです。右側が製作マニュアル。下が共立エレショップのカレンダーです。ブツは左上の袋にはいっていました。クリスマスっぽい包装です。


袋を開けてみるとダイソーのプチデコレーションライトが4種類と、さらに袋がはいっていました。


小さな袋をに部品がはいってました。銀紙の中にCPUとFETがはいっていました。


さっそく組み立ててみました。USBSPYDER08を使ってプログラムできるように6pinのコネクターがついています。


基板の裏には「special thanks to hamayan」の文字がありました。


部品数も多くなく組み立ては簡単でした。
失敗は、FETがちゃんとはんだづけされていなかったことと、抵抗を浮かそうとして加工に失敗して足が折れてしまったことくらいです。酸金の抵抗は4個使うのですが、予備が1個はいっていたのでことなきを得ました。足の折れた抵抗です。はんだづけ前でよかったー。


デコレーションライトの電線むきは、近くのホームセンターで買った皮むき器でいい感じにむけました。電線が細いので酸金の足を再利用して補強します。むいた電線にフラックスを塗ってからはんだづけするといい感じでした。


試験運転です。


ツリーがないので、家の中で一番ツリーに似た形状のものに飾ってみました。


ちょっぴりさみしくなったので、ダイソーにツリーを買いに行きました(500円)。


一緒に送られてきた組み立てマニュアルはかなりの力作で、製作手順が細かく書いてありました。
hamayanさんも組み立て手順をブログに載せてくれています。
タカチのSW-75はサトー電気さんで買ってきたのですが、工具がないので断念しました。

とてもうれしいクリスマスプレゼントでした。

12/23 追記 masatoさんの製作記事
12/24 追記 おぐらむさんの製作記事
12/29 追記 エレキジャックのホームページで紹介されました

PSoCチップを使ってみる

2007-12-20 02:06:26 | PSoC
秋月では3種類のDIP型PSoCを販売しています。CY8C26443-24PI、CY8C27443-24PXI、CY8C29466-24PXIです。(もう一種類、29666-24LFXIというフラットパッケージのものも売っています)

よく分かっていなかったので、とりあえず1種類づつ3個買ってみました。
まず26443はPSoC Expressでは使えないようでした。古いチップなので新しいアプリケーションには使わないようにということみたいです。

ブレッドボードでテスト回路を作ってみました。周辺回路はLEDだけです。

回路図です。


PSoCを動かすには電源とGNDだけでいいみたいです。クロックとかはチップ内部で作ってくれるみたいです。

プログラム用には3本線をつなぎます。プログラムはI2Cで行います。SCLK(13pin)とSDATA(15pin)の2線です。その他にXRES(19pin)というリセット信号を使うようです。

プログラマとしてPSoC Mini Programmerを使ってみました。これは去年のCypressのセミナーでもらったものです。PSoC Mini ProgrammerはVcc、GND、SCLK、SDATA、XRESの5線でPSoCと接続します。27443、29466のどちらでも問題なくプログラムできました。Mini Programmer自体はPastelMagicさんで2500円で売っています。

動作することが確認できたので、今度はFirstTouch Kitのプログラマーをつないでみました。


とりあえずFTKプログラマのpinのうち5本をつないでみました。
1 Vcc
3 GND
5 XRES
7 SCLK
9 SDATA

27443はプログラムできましたが、29466はうまくいきませんでした。
デバイスが認識できないみたいな感じのエラーが出ていました。通信そのものはできているっぽかったです。もしかしてファーム?4pinのDETECTや11pinのTYPEというのが気になりますが、よく分かりません。

Mini ProgrammerとFTKプログラマの違いはデバイスに供給する電源をオフにできるかどうかです。FTKの方は電源を供給しっぱなしです。このあたりが何か関係しているのかもしれません。

型番からすると新しいっぽい方が書けないというのは、何か変な気もします。

PSoC FirstTouch KitでLEDほわーん

2007-12-19 01:25:53 | PSoC
PSoC FirstTouch KitでLEDチカチカの続きです。

2つのことをやってみます。まずはタイマーを使ったLEDチカチカ、次にプログラムを改造してLEDほわーんです。
どちらもPSoC Expressを使って0行プログラミングにします。前回と違うのはTransfer functionを使っていることです。
1.プロジェクトの作成、3.コンパイル、4.PSoCマイコンに書き込みは前回と同様です。2.のプログラムの組み立てだけ書きます。


2. プログラムの組み立て (LEDチカチカ別バージョン)

一つ目の部品はInputsタブ→CY3270 PSoC FirstTouch Kitにある「Interval Generator」です。

Nameをtimerにして、IntervalModeをTOGGLEに変更してOKを押します。
TOGGLEはIntervalTimeで指定したミリ秒毎にtimerという変数が1→0→1→と変化することを意味します。時間はIntervalTimeで変更します。デフォルトは100ミリ秒です。今回はtimerが1の間LEDが点灯して0の間消灯するというプログラムにします。

※Nameに入力した名前が変数名になります。その部品の状態を表します。

二つ目の部品はOutputsタブ→CY3270 PSoC FirstTouch Kitにある「LED - On/Off/Blink」です。

NameをLEDに変更してOKを押します。

この段階でtimerとLEDの2つの部品が配置されています。


このままだと、部品があるだけなので関連づけてやります。
LEDのアイコンを右クリックしてメニューを出して、一番上のTransfer functionを選びます。

左側に選べる3種類のTransfer functionの種類が載っています。今回は一番下のTable Lookupを選んでOKを押します。
他の2つは、少しは式を入力しないといけないので、0行プログラミングにするにはTable Lookup以外の選択肢はありません。
Table Lookupは表引きということでずか、入力がある状態のときに出力をどの状態にするか表を作ります。

上でOKを押すと入力を聞いてきます。

timerを選んでNEXTを押します。

表の作成画面になります。

左側が入力のtimerの取り得る2つの状態Not_TriggeredとTriggerdを示しています。右側がLEDの取り得る3つの状態OFF、ON、BLINKINGを示しています。
timerの取り得る状態を右側の表に埋めることで表を完成させます。
具体的にはドラッグ&ドロップで入力の状態を配置します。

完成した表です。

表はtimerが1のときはLEDがON(1)になってtimerが0のときはLEDがOFF(0)になることを示しています。
OKを押せばTransfer functionの完成です。

timerとLEDが関連づいているので、間に線が引かれています。

基本的に出力側で、どの入力を使うかを選ぶというやり方みたいです。

あとはコンパイルしてPSoCに書き込めばLEDチカチカ別バージョンの完成です。
コンパイルのときの配置配線では、LEDを、青LEDの14pin、赤の10pin、緑の15pinのどれかにします。


次にLEDほわーんを作ってみます。

とりあえず、Designタブを選ぶことでプログラム組み立てタブにもどれます。

今度は「LED - On/Off/Blink」のかわりに「With Decay ON&OFF」という別のLEDを使います。場所はOutputsタブのDisplay→LED→Single Color→With Decay ON&OFFです。

名前をLED2にしてOKを押します。
このLEDはぼわーっと明るく(暗く)なる機能をもったLEDです。明るく(暗く)なるまでの時間を設定できます。デフォルトは1000ミリ秒です。

LED2のTransfer functionです。

LED2が取る2つの状態は、GROW_ONがぼわーっと明るくなり、DECAY_OFFが同じく暗くなります。今回はtimerが0のときに明るく(GROW_ON)、1のときに暗く(DECAY_OFF)なるように指定しています。

最後にtimer時間の変更といらなくなったLEDの削除を行います。

timerのアイコンをクリックすると右上にプロパティが出るのでIntervalTimeを1000に変更します。これは明るく(暗く)なるまでの時間が1000ミリ秒だからです。

次にLEDアイコンをクリックしてDELキーを押すか、右クリックメニューからDeleteを選ぶことでLEDを削除します。
コンパイルしてPSoCに書き込むことで完成です。LEDが点滅するかわりに、ぼわーっと点いたり消えたりします。

このように、Cypressがあらかじめ用意している部品については簡単にプログラムが作れます。ないものはどうすればいいのかは、よく分かっていません。もしかするとPSoC DesignerとCコンパイラを使って作るのかもしれません。それとも専用のツールがあるのかもしれません。

あらかじめ用意されている部品には色々なものがあります。加速度センサーを読んでI2Cで通信したりとかは、PSoC Expressで出来てしまうみたいです。少なくともPSoC FirstTouch Kitについている、静電容量センサー(CapSenseスライダーと接近センサー)、光センサー、温度センサー、ブザー、三色LEDはPSoC Expressだけで遊べます。

STM32 Primer

2007-12-18 23:36:52 | その他のマイコン
トラ技1月号のInformation+(p.262)にSTM32 PrimerというARMベースのゲーム機みたいな評価キットが載っていました(読者プレゼントあり)。
ググってみるとSTマイクロ社の10/17のアナウンスを見つけました。
参考価格3864円だそうです。
傾きセンサー、128x128カラーディスプレイなんかがついているそうです。
どこか店頭で売ってくれないかな。

そういえばSTR9-comStickはどうなったんでしょう。

PSoC FirstTouch KitでLEDチカチカ

2007-12-17 22:57:55 | PSoC
マイコンの基本ということで、PSoC FirstTouch KitでLEDチカチカを作ってみます。せっかくなのでPSoC Expressを使って0行プログラミングをしてみます。

PSoC Expressを使ったプログラミングの手順はおおまかに以下の4ステップです。

1. プロジェクトの作成
2. プログラムの組み立て
3. コンパイル (チップの選択とピン配置あり)
4. PSoCマイコンへの書き込み

普通の開発ツールと違うのは、3.でコンパイルするときにチップの選択とピン配置を行うことです。2.のプログラムの組み立てはチップに依存しない形でやるので、後でチップを選択します。その際、入力や出力をどのピンに配置するかを決めてやります。チップ選択やピン配置はプロジェクトに覚えているので、最初に一回やってやれば、その後変更がなければ二回目以降は何もする必要はありません。(とは言いつつプロジェクトを作る度にやらないといけないのは少し面倒です)

それでは、上の手順に従ってLEDチカチカを作ってみます。

1. プロジェクトの作成

PSoC Expressを起動した直後の画面です


FileメニューからNew Projectを選んでやると次のダイアログが出ます


上のエディットボックスにプロジェクト名を入力してOKボタンを押せばプロジェクト作成は完了です。プロジェクト名はflashled1にしました
プロジェクトを作るフォルダーを変えたいときはBrowseボタンを押します。

2. プログラムの組み立て

PSoC ExpressのプログラミングはGUIで部品を並べて、部品のプロパティを設定することで行います。今回はLEDしか使いません。

プロジェクト作成後の画面です。中央のペインには何もないのでプログラムはない状態です。


左側の部品一覧(Output Devices)で、CY3270 PSoC FirstTouch Kitのツリーを開いて、LED - On/Off/Blinkをダブルクリックします。もしくは右クリックメニューからAdd to Designを選びます。もしくは中央のペインにドラッグ&ドロップします。

するとプロパティの設定画面が出ます。ここで設定しなくても後で設定できますが、とりあえず設定します。


設定箇所は2箇所です。この部品の名前(Name)と初期状態(Initial Value)です。初期値はデフォルトでOFFになっていますが、OFF, ON, BLINKの3種類をメニューで選べます。OFFのところをクリックするとメニューが出ます。今回はLEDチカチカなのでBLINK(点滅)を選びます。

書き換えた様子です。


Blink Rateのところで点滅する周波数を選べます。デフォルトのままだと1Hzです。Current ModeではLEDの接続形態としてSourcing(LEDは電流制限抵抗を介してGNDに接続)、もしくはSinking(LEDは電流制限抵抗を介してVccに接続)の2種類を選択できます。PSoC FirstTouch KitのLEDはSourcingなので、そのままにしておきます。

OKを押せば部品配置完了です。

中央のペインにLEDという部品があるのが分かります。
(部品を選択すると右上にプロパティが表示されるので、ここでプロパティを変更できます。また、右下には部品のデータシートが表示されます)


今回は以上でプログラミング完了です。

ちなみに部品はドラッグ&ドロップして好きな配置にできます。中央のペインはctrl + クリックで拡大、shift + ctrl + クリックで縮小もできます。スクロールは alt + クリックです。

3. コンパイル

BuildメニューからGenerate/Buildを選んでやればコンパイルが始まります(F6でもいいです)

最初に出てくるのはチップの選択画面です。


デフォルトでは一番上にあるチップが選択されています。
PSoC FirstTouch Kitに載っているチップの型番はCY8C21434です。
ちょっと分かりづらいのですが、CY8C21030のツリーを開くとCY8C21434がいるので選択します。

CY8C21434を選択した画面です


Nextボタンを押すとピン配置のダイアログに変わります。


デフォルトでは勝手に配置されています。
PSoC FirstTouch Kitでは、青LEDが14pin、赤が10pin、緑が15pinに接続されています。
LEDが13pinになっているので、14pinにつなぎ直します。
つなぎ直しの方法は13pinのところの青い四角をドラッグして、14pinの四角にドラッグします(マウスボタンを離す)。
ドラッグした段階でピン配置できないところ(GND等)は白い四角に、ピン配置できるところは水色の四角になります。
ピン配置されていない状態に戻すにはドラッグしてから何もないところにドラッグします。

14pinにLEDをつないだ画面です


Nextを押してしばらく待つとコンパイル終了です。
flashled1.hexという実行ファイルができます。ファイル名はプロジェクト名.hexになるようです。

4. PSoCマイコンへの書き込み

いよいよ最終段階です。メニューのProgramからPSoC Programmerを選びます。


そうすると、PSoC Programmerが立ち上がってきます。


左上のPortでFirstTouchを選んでやります。他のDevice FamilyやDeviceはPSoC Expressで設定したチップが引き継がれます。hexファイルだけ入手して書き込むときとかはDevice FamilyやDeviceに適切なものを選択してやる必要があります。

下のActionとResultのペインは下から上に情報が進んでいきます。一番上が最新の情報です。慣れないと結構見づらいです。

PSoC FirstTouch Kitが正常に接続されていればSuccessful port connection for...というメッセージが出ます。出ないときは、例えば書き込み器のファームウェアが古いバージョンだったりします。その場合はPSoC Programmerの最新版をダウンロードしてインストールしなおす必要があります。ちなみにファームウェアのアップデートはPSoc ProgrammerのUtilitiesメニューのFirmware upgradeで行います。

いよいよ書き込みです。Programというボタンを押すと書き込みが開始します。


最後に(一番上に)、Programming Succeededと出れば書き込み完了です。PSoC FirstTouch Kitの場合は、即座にプログラムが開始されます。他の書き込み器の場合だとToggle Device Powerボタンを押してやらないといけないかもしれません。

まとめ

とりあえず設定するだけで、LEDチカチカはできました。

もっと高度なことをするときは、各部品のTransfer functionを決めてやる必要があります。Transfer functionは例えばボタンが押されていたらLEDが点くみたいな、部品間の依存関係を決めてやります。LEDチカチカもインターバルタイマーを使って作る方法もあります。

今回は出力デバイス(Output Devices)というカテゴリーの部品しか使いませんでしたが、他に入力デバイス(Input Devices)、変数(valuators)、インタフェース(interfaces)といったカテゴリーがあります。

GUIは目の前で実際に動かしているところを見ると分かりやすいのですが、言葉で説明しようとするとやたら面倒です。

秋月の128x64グラフィック液晶

2007-12-13 08:27:05 | 電子工作
秋月電子の新商品のところにSUNLIKEのグラフィック液晶が載っていました(通販コードP-02159)。
まだ「(近日発売) まもなく販売を開始します」ですが2100円は安いです。
リンクされている資料を見ると、ピン配置やコマンドが同じなので、以前試してみたサイキットさんの緑液晶とほぼ同じものではないかと思われます。

商品説明を引用します。

■SUNLIKE社グラフィックLEDモジュールです。
■128x64ドット
■外形サイズ:93x72mm
■液晶表示サイズ:72x40mm
◎漢字パターンを送れば、漢字・記号・図形を自由に表示できます。
■5V単一電源(3.3V動作可能)
■H8マイコン・PICマイコンなどに直結できます。
■液晶サイズ:
■接続端子:20ピン
◆制御方法参考資料付

サイキット緑液晶と同等品だとすると、
- 接続端子は2.54mmピッチ
- バックライトがなくても表示は見える
ことが期待できます。

以前書いたもの
サイキット液晶に出力してみる(1) コード例
サイキット液晶に出力してみる(2) 出力例
サイキット液晶につなぐ冶具 ピン配置
サイキット液晶につなぐ冶具(一応完成) インタフェースのV850基板につなぐ冶具の作成例

PSoCセミナー参加報告

2007-12-11 23:17:03 | PSoC
12/10に開催されたPSoCセミナーに参加してきました。
内容はPSoCの製品説明とFTK(First Touch Kit)を使った実習でした。

実習は
(1) コンパイル済みの実行ファイルの書き込み(4種類)
- CapSenseスライダを使うとRGB3色LEDが指の動きに合わせてON/OFFする
- 温度センサー(サーミスタ)を使って温度でLEDがON/OFFする。指をあてると赤くなりました
- 光センサーでLEDをON/OFFする
- 近接センサーでLEDをON/OFFする
(2) PSoC Expressを使ったデモプログラムの改造
- ↑の近接センサーデモで距離に応じてLEDの明るさ(PWM)を変えるように改造
(3) PSoC Designerを使った簡単なプログラムの作成
- PWMでRGB3色LEDをつける
- スリープタイマーを使ってPWMデューティ比を変えながらLEDの明るさを変える

の3種類でした。かなりペースが速かったので落ちこぼれずについていくのがやっとでした。時間的には1つの実習が10分の休憩をはさんで50分でした。
ちなみに4種類のデモは実行ファイルだけでなくPSoC Express用プロジェクトもあります。

$20で、実習で使ったFTKをお持ち帰りだったので、私は予備も含めて2個買いました。国内だと4000円なので1個近くの価格で2個買った計算になります。

PSoC自体は全世界で2億個以上売れているんだそうです。iPodなんかが有名ですね。
アナログとデジタルを1chipに混載させることで製品全体での部品数を減らすことに効果があるそうです。

FTK(FirstTouch kit)です。上がPCブリッジでPSoCのライターになっています。下が拡張カードで近接センサー、ブザー、温度センサー、CapSenseスライダー、光センサー、RGB3色LEDとPSoC(CY8C21434)が載っています。

FTKのライターに対応したボードを色々企画中だそうです。またライター側もコネクターをつければ中を書き換えられるという話をしていました。元の状態に書き戻せるようにファームウェアもあるそうです。セミナー中にファームの場所を言っていたのですが、メモし忘れてしまいました。
21434以外の型番のPSoCにも書けるかどうかは調査している最中だそうです。このあたりはちゃんと分かっていませんが、正式にはミニプログラマを使うということみたいです。

聞き間違いかもしれませんが、電池動作用に昇圧回路入りのPSoCがあるようなことを言っていました。これはすごくうれしいかも。

実習でPSoCデザイナーで使えるライセンスを教えてくれました。一応、セミナー用で開発には使えないそうですが、遊ぶのに使うくらいはいいみたいです。

日本語のドキュメントも準備中とのお話でした。

とてもおもしろかったです。また機会があれば参加したいです。

会場で展示されていたデモです。

下の方の色チャートの部分に指を触れると右上のLEDの色が変わります。


2軸の加速度センサーの読み取り値をLCDにグラフとして表示しています。
PSoC Expressだと、LCDにグラフを書くのはお手の物です。
これはたぶんPSoC EVAL1というボードです。まんなかの白い所はブレッドボードになっていて好きな回路が組めます。


ジャイロセンサーです。
読み取った結果を隣に置いてあったMacintoshでグラフ表示していました。


上のグラフを表示していたMacです。


ちなみに、Macのタッチパッドの部分にもPSoCが使われています。
通常はカバーがかかっているところを今回はカバーを取り外してありました。


ラジコンカーです。右側がコントローラで左側がマイコンカーです。


写真だと分からないですが、ぐるぐる回すと上のグラフが変わるようになっていました。


これも分かりづらいですが、テンキーになっていた触るとLCDに押した数字が出て周りにあるLEDが光っていました。


これは近接センサーのデモです。CapSenseの応用ということみたいです。