Sim's blog

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

ICFP 2008があるみたいです

2008-06-30 00:19:37 | ICFPプログラミングコンテスト
ICFP 2008コンテストが開催されるようです(リンク)。現地時間の7/11正午から7/14です。今年はどんな問題なんでしょうか。去年はコンテストが終わってから遊ばせてもらいました。問題が分かるだけで3日なんてすぐ過ぎそうです。今年は挑戦してみたいかな。

7/3 追記 日本時間だと7/12の午前4時開始みたいです。

Interface 2008年8月号

2008-06-26 22:00:37 | 電子工作
特集は「実践デバイス・ドライバ&ミドルウェア作成技法」ということで、かなり魔界よりです。特集の著者は全てOUKという会社の方です。検索してみると、「Interface 8月号はOUK特集です」と書かれたホームページにたどり着きました。デバイスドライバならおまかせみたいです。

5月号のFRマイコンの記事は2つです。USBホストの後編(先月の続き)と独自クラスUSBターゲット機器の製作です。LEDやスイッチをつなげてます。

先々月の続きのCUDAの記事が載っています。

ColdFireファミリーの紹介記事はジョーさんというColdFireのチーフ・アーキテクトの方が書かれた記事(の翻訳)です。9月号の付録基板がColdFireということもあって前の号である今月号にColdFireの記事を載せたということみたいです。昔の68000cpuから命令を取捨選択したのがColdFireのISAということみたいです。ISA(命令セットアーキテクチャ)には興味があるので、どういう観点で命令セットを選んだのかについ興味深く読みました。MCUで考慮すべきメトリックとしては、パフォーマンス、エリア(面積)、パワーの3つがありますが、今回はパワーについてはあまり取り上げられていませんでしたが、パフォーマンスとエリアに関してはかなり取り上げられています。アーキテクチャの進化にともない面積は増えているが面積あたりの速度は面積の増加以上の増えていることも紹介されています。可変長命令のコード密度の高さとRISCのもつ効率のよさの両方を狙っていて、まさに最新のCPUアーキテクチャになっています。
68000と同じくソース、ディスティネーションの順にオペランドを書くみたいです。

9月号の付録の内容が明らかになっています。CPUはFreeScaleのColdFire"MCF52233"です。Ehernetコントローラを内蔵していて10base-T、100base-TXに対応しています。3軸加速度センサー(MMA7360)も搭載しているそうです。付録基板自体は64pinで32pin×2列で、そのままブレッドボードに挿せます。必要そうな部品はEtherコネクタとACアダプタ用のコネクタ、ヘッダーピンです。クロックは搭載済みです。LEDは3個が実装済みです。8pinのSOICのパターンがありますが、何を実装するのかは分かりません(U3)。
表面にはSilenSystem、freescale、CQ出版、Wakamatsuの名前があります。今回も部品セットは若松になりそうです。トランスを実装する場所がないっぽいのでパルストランス内蔵のEhterコネクタが必要っぽいです。
SilentSystemで検索するとこのページが見つかりました。たぶん、このサイレントシステムが基板設計をしているのだと思います。
気にかかるのは書き込みをどうするかです。もしかすると、Ether経由で書き込みができるブートローダがあったりするのかもしれません。

それにしても、なんでも作っちゃう、かも。さん、大当たりです(トラックバックしてもらった予想記事)。

読者コーナー(Interfaceへの声)にmasatoさんという方が意見をよせられています。まさかとは思いますがもしそうなら世間は狭いというか、あはは。

来月号の特集は「付属ColdFire基板で始めるEthernet入門」です。


STAPA VISION

2008-06-25 02:31:27 | 電子工作
Impress Watchのコーナー「STAPA VISION」の第1回が「ハンダ不要の電子回路作成、「ブレッドボード」」というタイトルで公開されています。ビデオなので分かりやすいです。
みのり先生もいい味出してます。動かなかったのがくやしかったのか、スタパさんの話聞いていません(笑)。
スタパさんのブログでも電子工作が取り上げられています。
大人買いというか衝動買いが得意技の方みたいです。8時間かけてE24系列の抵抗を袋分けするのはすごすぎかも。

CCEの検証

2008-06-23 03:06:40 | MSP430
TIの無償開発ツールCode Composer Essentialsで使えるコードサイズについて調べてみました。
CCEのページには「CCE v3(MSP-CCE430)は無償で、最大 16K バイトのコード領域をサポートします。」と書かれています。コードとデータを合わせて16kバイトなのか、それともコードだけで16kなのか、よく分かりません。
言葉があいまいというか、コードサイズというとデータを含む場合もあったりします。わざわざコード領域という言葉を使っているということは、データ抜きの純粋なコードサイズのみで16kバイトという意味なのかもしれません。もしそうならラッキーです。


検証用に書いてみたコードは次のようなものです。
#include "msp430x42x0.h"

static const char x[0x6000] = {1};

main()
{
    int i;

    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= 0x01;

    while(1){
        for(i = 0; i < sizeof(x); i++){
            P1OUT ^= x[i];
        }
    }
}

ROM領域に24kバイトの配列がいます。先頭だけ1でそれ以外は0です。
コード自体はとても小さいですが、データは大きいプログラムです。
このプログラムはCCEで何の問題もなくコンパイルできて、さらにトラ技2007年1月号のMSP430-F4270基板で動きました。
デバッグ開始時のメッセージは以下のようなものでした。

MSP430: Program loaded. Code Size - Text: 254 bytes Data: 24608 bytes

CCEで制限されているコードサイズはTextの部分じゃないかと思います。

MSP430-F4270はROMが32kバイト(8000-ffff)、RAMが256バイト(200-2ff)です。配列xは8000-dfffの24kバイトでした。プログラムの先頭はe000でした。

とりあえずデータのサイズに制限がないなら事実上無制限といってよいくらいだと思います。


次に16kバイト以上のコードを作ってみます。
#include "msp430x42x0.h"

main()
{
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= 0x01;
    
    while(1){
        P1OUT = 0x00; // LED点灯 (2000個)
        P1OUT = 0x00;
        省略
        P1OUT = 0x00;
        P1OUT = 0x00;

        P1OUT = 0x01; // LED消灯 (2037個)
        P1OUT = 0x01;
        省略
        P1OUT = 0x01;
        P1OUT = 0x01;
    }
}

ひたすらコピペして作りました。P1OUTに代入する行が4036個のときのコードサイズが16382バイトでした。つまり16kバイト-2バイトです。ちなみに1行毎に4バイトかかります。1行追加して16kバイトを2バイト超えたときにリンカーのエラーが出ました。エラーメッセージは次のようなものでした。

error: output file "test3.out" exceeds code size limit

コードサイズは16kバイトを超えられないようです。

試しに1024バイトの配列を参照するようにしてみました。デバッガでロードしたときのメッセージは

MSP430: Program loaded. Code Size - Text: 16384 bytes Data: 1054 bytes

になりました。TextセクションとDataセクションをあわせると16kバイトを超えていますが、コンパイルもリンクも問題なく通りました。


まとめると、CCEの無償版はデータを含まない純粋なコードは16kバイトを超えられないがデータのサイズに制限はなく、コードとデータを合わせて16kバイトも超えることはできる、ということになります。
とてもうれしい結果が出ました。

Code Composer Essentials V3を使ってみました。

2008-06-22 23:49:34 | MSP430
Code Composer EssentialsTIMSP430用のCコンパイラです。6/5に開催されたTIのMSP430入門セミナー2008に参加したとき無料版があることを知りました。ダウンロードするのにmy.TI accountに登録する必要があります。
バージョンは3.2.1.1.5です。

「CCE v3(MSP-CCE430)は無償で、最大 16K バイトのコード領域をサポートします。」と書かれています。以前使ったIARはアセンブラなら無制限、Cなら4kバイトでした。このあたりは要検証です。

IDEはEclipseです。日本語化されていないのでメニューとかは英語です。設定を変えるとソースに日本語をいれることもできます。逆に言うと設定を変えないと日本語がいれれません。

on chip debugもサポートしています。eZ430やトラ技2007/1のJTAGデバッガが使えます。hamayanさん設計のデバッガの基板はマルツで入手できます(リンク)。一応、どちらも動作することを確認しました。

eZ430用のLEDチカチカです(<が全角になっています)。
#include "msp430x20x3.h"

main()
{
    int i;
        
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= 0x01;              // P1.0出力

    while(1){
        P1OUT ^= 0x01;
        for(i = 0; i < 10000; i++) ;
    }
}

debugモードでbuildすると、そのままで動きます。releaseモードでbuildすると最適化のせいでforがなくなってしまってウェイトなしになります。超高速で点滅しているので、ずっと点いているように見えます。forループに_nop();をいれるとループが消えることはなくなります。
最適化でループが消えるときの常道はvolatile宣言にすることです。変数iをvolatile int i;のように宣言すると、ループが消えることはなくなります。ただし変数がメモリの上に取られるようになるので結構遅いコードになります。

debugモードでも変数iをregister宣言すると(register int i;)、律儀にレジスタに割り付けてくれます。releaseモードだとregister宣言がなくてもレジスタに割り付けてくれます。ただしループが消えるのでreleaseモードのときは_nop();付きです。
volatile宣言すると、debugモードでもreleaseモードでも変数iはメモリに割り付けられました。試しにregister volatile int i;という宣言をしてみましたが、メモリに割り付けられました。
結構かしこいです。

トラ技2008年7月号

2008-06-15 11:29:21 | 電子工作
遅めだけど買ってきました。

別冊付録がLTspiceスタートアップ・マニュアルです。エレキジャックで連載されている神崎康宏さんが書かれたものです(LTspiceアーカイブ)。

特集は6月号の予告にあった「アナログ回路 設計センスアップ」から「速習!アナログ・フィルタ設計入門」に変更になってます。

トラ技のサイトがhttp://www.cqpub.co.jp/toragi/からhttp://toragi.cqpub.co.jp/に変更になっています。まだ新サイトへの移行が完了していないらしく旧サイトへもリンクが張られています。

「Q&A特集に向けたご協力のお願い」は6/30に〆切が延びています(旧サイト)。新サイトの方ではまだ反映されていないみたいです。

Cによるマイコン操作術の部品セットが秋月とマルツで取扱いがはじまりました。秋月は商品番号K-02406 4200円。マルツは型番 PK080701で4280円>。どちらもQFPのdsPIC30F5011-30I/PTは変換基板にはんだづけ済みです。0.5mmのはんだづけをしなくてよくなりました。

dsPICマイコン基板デザイン・コンテストの審査結果と入賞作品の「IP電話のしくみを使ったLAN専用「VoIPインターホン」」の記事があります。入賞された方自ら書かれています。AD変換した音声をLAN経由(UDP)で飛ばしてDA変換して音声出力する装置です。双方向になっていて離れた所で会話を楽しめるみたいです。etherコントローラはマイクロチップのENC28J60を使ってTCP/IPのプロトコルスタックもマイクロチップのものを使っています。

今月もPSoCを使った記事があります。投稿の「ラジオ時報で時刻を構成する高精度ディジタル時計の製作」です。AMラジオの時報の信号をフィルターで取り出して時刻を校正しているみたいです。フィルターはPSoCで作っています。筆者はAsa工房の方です。PSoCの実験基板の通販をされています。今回の記事でも使われているものです。

来月はUSBマイコン基板が付録です。


DesignWave 7月号には「5月号付属ARM基板を使いこなすためのポイント」ということでIARのツールの使い方の記事が出ています。もっと早く出せばいいのにと思いました。

「Design Wave Magazine付属基板で学ぶARM Cortex M3」講座が開催されるそうです(開催案内)。

「STM32付属ARM基板デザイン・コンテスト」開催の案内(p.99)が出ています。応募既定等はDWMのwebサイトで近日公開だそうです。最近は付録基板とコンテストがセットになっています。

Spartan-3A 評価キット

2008-06-11 22:56:29 | FPGA
陰気な男でいいですか?」さん経由で知ったAVNETの$39のSpartan-3A Evaluation Kit(型番 AES-SP3A-EVAL400-G)ですが、日本のアブネットジャパンでも取り扱っているようです。その名もSparta-3A 評価キットです。国内の価格は5980円です。(6/15 追記 税込み6279円です。doggieさん、ありがとうございました。)

* Xilinx XC3S400A-4FTG256C Spartan-3A FPGA
* LEDが4個
* CapSenseスイッチが4個
* I2C温度センサ
* 6ピンの拡張ヘッダが2個
* 20×2、0.1インチのユーザI/Oヘッダ
* 4 MB Spansion パラレルFlash
* 128 Mb Spansion SPI Flash
* USB-UARTブリッジ
* I2Cポート
* SPIとBPI
* ザイリンクスのJTAGインターフェイス
* PSoC®コンフィギュレーション

特徴はなんといってもPSoCが載っていることです。I/Oが40本出ているのもよさげです。I2Cポートがポイント高いです。
購入方法は問い合わせるみたいです。個人購入にも対応していると書かれています。

6/15 追記 http://www.em.avnet.com/spartan3a-evlの下の方にあるDownload support files and documentationというリンクからユーザーガイドや回路図がダウンロードできます。

秋月でPSoc FirstTouchを扱いはじめました

2008-06-10 23:28:02 | PSoC
秋月でPSoC FirstTouch Starter Kitの取扱いを始めました(商品番号M-02416)。
価格は3200円です。Cypressのオンライン販売で$29.95なので格安です。

◎PSoCチップ4個がもれなくもらえる・キャンペーン実施中(詳細はパッケージをご覧ください)
ということなので、さらにお得です。

FTKはトラ技の2008年3月号~6月号、Interfaceの2007年12月号で紹介されています。

以前試してみたときの記事です。
PSoC FirstTouch KitでLEDチカチカ
PSoC FirstTouch KitでLEDほわーん

6/12 追記 digi-keyだと3393円です(リンク)。

命びろい

2008-06-08 19:07:04 | その他
3時すぎくらいに秋葉に行きました。
いつも以上に人が混んでいます。歩行者天国が封鎖されているせいでした。

なんでも通り魔が暴れたんだそうです。(詳しくはgigazineの記事)

部品屋さん巡りをして帰りがけにもらった号外です。

トラックでつっこんで、さらにナイフで刺しまくったそうです。亡くなった方もおられるようです。

秋葉に行くのも命がけみたいです。
亡くなられた方のご冥福をお祈りします。

マルツのFPGAコンテストの結果発表

2008-06-06 01:32:57 | FPGA
マルツのFPGAコンテストの結果が発表されています(pdf)。入賞者は全て明治大学の井口研究室の方々です。

募集のときは以下のように書かれていたので、入賞作品を見ることができそうです。楽しみです。

●受賞者の発表および受賞作品の公開
受賞者の発表はマルツパーツ館のWebサイト上で行います。
また、受賞した方のデザインはWebサイトや店頭等で公開させて頂きます。


6/6 追記
明治大学理工学部情報科学科 井口幸洋教授のページ
「FPGAボード上に簡単なTVゲームを作るコンテストを毎年3年生に研究室内で行っている」そうです。今回もこのコンテストの成果の一端なのでしょうか。

秋月のMP3デコーダIC

2008-06-06 01:18:47 | 電子工作
秋月が、すごい勢いで新製品を出し続けています。
VS1053bというMP3デコーダIC(700円)が出ています(商品番号I-02407)。
■Ogg Vorbis,MP3,AAC,WMA,MIDIデコーダー機能+オーディオDAC内蔵
と書かれています。フォーマットなんでもござれです。
あれれ?写真はVS1011eのままみたいです。
電源電圧は1.8Vみたいです。どうやって作るんだろうと思ったら、秋月に1.8Vの三端子レギュレータ(LDO)がありました(商品番号I-02246)。


せくすぃ部長さんのコメントを見て、もう少し調べてみました。

開発元はVLSI Solutionという会社です。URLからするとフィンランドの会社みたいです。
秋月で売っているVS1011eと同じ開発元です(商品番号I-01484)。
VS1053Bの製品ページです。

データシートからコピペしたチップの写真です。

LPFP 48pin、パッケージサイズは7x7mmです。
VLSI SolutionのLQFP48パッケージの図面(pdf)。このpdfファイルはsupport→downloadからダウンロードできます。
pin間隔は0.5mmのと0.8mmの2種類があるみたいですが、どちらかよく分かりませんでした。たぶん0.5mmじゃないかと思いますが要確認です。

製品ページからコピペしたブロックダイアグラムです。

(クリックすると元の絵が表示できるようにリンクしてみました)

LINE INやMICアンプがあります。
8本のGPIOがあります。

DSP(信号処理プロセッサ)で動くユーザー独自のアプリケーションが開発できるようです。
無料の開発ツールVSKitもダウンロードできます(VSKITのダウンロードページ、support→software→V10XX Tools)。
DSP自体の仕様はVSKITのzipファイルの中にpdfがはいっています。
Ogg Vorbisのエンコードも、ソフトをいれるとできるみたいです。
アプリケーションノートの「VS1053 audio I/O」(pdf)にはサンプルのCのコードが載っています。

VLSI Solutionには評価用ボードもあります(評価ボードのページ)。ざっと見た感じVS1053が載りそうなのは以下です。
VS10xx Proto Board
VS1053 Evaluation Kit

とりあえず、ざっと調べてみたのはこんな感じです。

MSP430入門セミナー2008に行ってきました

2008-06-05 00:53:35 | MSP430
品川開催の午前の部に参加してきました。
前半は製品概要の説明、後半は嵐意x5xxシリーズの話やツールの話なんかがありました。
既にきぃたんさんがご紹介くださっています。

x5xxは6/10に正式発表があるとのことです。最高クロックが今までの16MHzから25MHzに高速化されるみたいです。MSP430Xコアなのでアドレスが1Mまで拡張されています。

(株)ビックスでeZ430のピッチ変換が近日発売だそうです(VICSのMSP430開発支援ツール)。
VICSでは格安のボードを色々販売されています。特にVMSP430-H2274はeZ430を直接つなげるので、よさげです。

日立ハイテクトレーディングがMSP430を使ったIEEE802.15.4センサネットモジュールを展示していました。
センサネットワークモジュールがいくつも展示されていました。

生パスカルさんにも会えました。パスカルさんの所のデモの一部です。バックライト付です。

(詳しくは掲示板のこの記事です)

知らなかったのですが、開発ツールにはMSPGCCがあるそうです。また、TIが提供しているCode Composer Essentials(CCE)は無償版でも16KBまでコードが作れるそうです。

6/6追記 mspgccのことはトラ技2007/1にも載っていますし、すんさんmasatoさんも試されています。たぶん当時は知っていたはずなのですが、自分で試していなかったので、すっかり忘れていたようです。

これまた知らなかったのですが、A/Dした結果をCPUを介さないでDMAで直接転送できるモデルがあるそうです。

おみやげにeZ430-RF2500をいただきました。基板が赤くてかっこいいです。
電波を使うような使い方は法律違反になる危険性があるので注意が必要とのことでした。単体の普通のマイコンとして使う分には問題なさそうです。
eZ430-F2013と違ってコネクタが6ピンに増えています。一応上位コンパチで、増えた2本は左右の2本で中央の4本は以前と同じです。

帰りがけにhamayanさんにばったり会っちゃいました。示し合わせていたわけではないのですが、偶然一緒の時間にしていたみたいです。まるで冬ソナみたいな運命の出会いです(笑)

ちっちゃなマイコンボードをいっぱい見れて幸せな気分にひたってきました。