Sim's blog

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

STR9-comStick

2007-05-30 22:54:42 | その他のマイコン
STマイクロエレクトロニクスがUSBスティックタイプのマイコンボードSTR9-comStickのアナウンスをしています。ニュースリリースで写真が見れます。CPUはARM9Eで$49みたいです。日本でも手にはいるのかな?

ライバルは
- TIeZ430-2013 (MSP430)
- freescaleUSBSPYDER08 (HCS08)
- NECエレUSBスティック・ボード (V850)
- Silicon LabsUSB ToolStick (C8051)
とかでしょうか。もっとあるかもしれませんが、知ってるのはこんな感じです。
最後のC8051のは日本だとどこで売っているんでしょう?以前、トラ技で紹介されていました(2007年1月号)

PWMでLEDぼわっと

2007-05-30 01:32:24 | V850
V850のタイマー機能の一つにPWM出力があります。レジスタに周期とデューティ比を設定しておくと勝手に点滅してくれます。appliletで設定してタイマーを開始する(TMP0_Start()等)だけでLEDチカチカができてしまいます。

デューティ比をどんどん書き換えてボワッと点いたり消えたりするのを作ってみました。タイマーはタイマーP0を使いました。タイマーP0専用の出力TOP01はCON2の17pinなので基板搭載のLEDは使えません。

CON2の17pin(TOP01) → LED+
LED- → 抵抗(1kΩ) → CON3の10pin(GND)

のようにつなぎました。

appliletの設定は次のようにしました。
- システムは、ウォッチドッグなし、(デバッグあり)
- タイマーはタイマーP0タブでPWM出力。詳細ボタンで
 設定単位msec、周期1、デューティ比0、TOP01端子出力の許可にチェック。

プログラムはこんな感じです。
void  main( void )
{
    int i, d, t;

    TMP0_Start();            // タイマースタート

    d = 0;                   // 方向は増加
    t = TM_TMP0_PWMWIDTH;    // デューティ比初期値

    while (1) {
        for(i = 0; i < 60000; i++) __nop(); // 適当に待つ

        if(d == 0){          // 明るくなる処理
            t += 1000;
            if(t >= TM_TMP0_PWMCYCLE){ // 最大を超えた
                t = TM_TMP0_PWMCYCLE;  // 最大値
                d = 1;       // 方向は減少に変更
            }
        } else {             // 暗くなる処理
            t -= 1000;
            if(t < 0){
                t = 0;       // 最小値
                d = 0;       // 方向は増加に変更
            }
        }
        TP0CCR1 = t;         // デューティ比を書き込む
    }
}


タイマーP0は周期がTP0CCR0、デューティ比がTP0CCR1に書き込むことで変更できます。動作は、タイマースタートすると出力を1にして0からカウントアップしていって、TP0CCR1になったら出力が0になって、TP0CCR0になったら0から繰り返しです。ソフトからは何もいじらなくても勝手にハードで実行してくれます。
TM_TMP0_PWMCYCLEとTM_TMP0_PWMWIDTHはappliletが計算してくれたTP0CCR0とTP0CCR1の初期値です。デューティ比は0~TM_TMP0_PWMCYCLEの間の数にします。カウンターの値なのでかなり細かく設定できます。
PWM出力はTOP00だと駄目でTOP01じゃないといけないみたいです。
TP0CCR1の変更はカウンタがTP0CCR1を超えた後でないといけないそうなので、本来ならTP0CCR1を超えたときに発生する割り込みのタイミングで変更するのがよさそうです。手抜きでソフトウェアタイマーで適当にごまかしました。

Interface 7月号

2007-05-28 22:56:41 | V850
Interface 7月号を買うのをすっかり忘れていました。
V850関係は別冊付録の「V850マイコン活用ハンドブック」と「V850マイコン基板を用いたカラー表示ビデオ・ゲーム機の製作(前編)」
160x120ドット256色出しています。コンポジットの信号を作るのに専用のエンコードIC、CXA1645Pというのを使っているみたいです。
ソースはCQ出版のホームページからダウンロードできます。


サイキット液晶につなぐ冶具(一応完成)

2007-05-27 07:01:03 | V850
サイキットさんから購入した液晶をV850付録基板につなぐ冶具が、やっとこさできました。本当はデータ線とか全部pull-upしようと思っていましたが、まぬけなことに先にビニール線を配線して裏がぐちゃぐちゃなので断念しました。とりあえずRST pull-up、CS1 pull-down、CS2 pull-downの3本だけいれています(10kΩ)。これでマイコン側の端子がハイインピーダンスになっても液晶の表示が消えたりすることがなくなりました。

反省点はありすぎでしたが、とりあえず動いたのでうれしかったです。

現在、サイキットさん液晶(緑と青)は売り切れのようです。3.3Vでも5Vでも動作して、制御も比較的簡単で安価なので再入荷されることを期待しております。

最後に、この液晶をいちはやく発見して解析されたすんさんに感謝します。

5/31 追記 サイキットさんで「この商品は2007年06月25日(月)に入荷予定です。」となっていて予約を受け付けています。


サイキット液晶につなぐ冶具

2007-05-26 01:33:13 | V850
データ8本と制御6本をつなぐ冶具を作っています。液晶とV850付録基板の間にある基板です。
いわゆる裏面はお見せできません状態です。
使った基板はサンハヤトのICB-86というグランド線とかDIP ICを載せる用にパターンがはいっているものです。でも全部ビニール線でつないだので意味なかったです。普通のユニバーサル基板でスズメッキ線で配線した方がよかったかもしれません。はんだづけは慣れていないので難しいです。

結線です。
液晶   名前   付録基板CON1
 1 --- GND
 2 --- Vcc
 3 --- V0 ←----- 半固定抵抗OUT
 4 --- RS ----  9
 5 --- RW ---- 13
 6 ---  E ---- 10
 7 --- D0 ----  1
 8 --- D1 ----  2
 9 --- D2 ----  3
10 --- D3 ----  4
11 --- D4 ----  5
12 --- D5 ----  6
13 --- D6 ----  7
14 --- D7 ----  8
15 --- CS1 --- 11
16 --- CS2 --- 12
17 --- RST --- 14
18 --- VEE ----→ 半固定抵抗GND
19 --- LED+ -- NC
20 --- LED- -- NC

あとは半固定抵抗とプルアップ抵抗です。とりあえず今日はここまで

スイッチ1つでモード切替え

2007-05-25 03:57:32 | V850
Interface 5月号p.85の図11の回路図を見るとJ1とJ2の1pinはつながっています。ということはON-OFF-ONタイプのスイッチがあればJ1とJ2の切り替えができます。2回路入りのスイッチを使えばJ3もON-OFFできます。J1,J2,J3の刻印のある方が2pinです。
スイッチを持っていないので実際に試したわけではありませんが、スイッチ1つでジャンパーの抜き差しの面倒から解放されるはずです。

5/25追記 回路図の2極3投は2極双投の間違いです。日本開閉器工業のデータシートをごらんください。

ChaNさんのsp850es.exe

2007-05-22 23:42:20 | V850
ChaNさんのサイトの78KとV850ライタの製作という記事では安価なライタと書き込み用ソフトsp850es.exeを公開されています。
ライタを作らないと使えないと勝手に思い込んでいましたが、すんさんの掲示板にkumanさんが書き込まれているのを見て実はそうではないことを知りました。kumanさんの掲示板ではでんし研のTADさんがライタを使わなくてもsp850es.exeを使ってV850付録基板に書き込めることを書いておられます。TADさんはデュアルライターV850版の記事中でsp850es.exeの使い方を解説しておられます。

さっそく試してみました。sp850es.exeと同じディレクトリにsp850es.iniというファイルを作ります。
ファイルの中身は
-dev=3716
-port=.COM4
-freq=5000
-bps=153600
です。
あとはコマンドラインからsp850es ファイル名とするか、ショートカットを作ってhexファイルをドラッグ&ドロップすると書き込みが始まります。
必要ないところは書き込まないので高速です。デバッガを使うと間があいて、メモリの最後の方にffが並んだhexファイルができますが、このようなhexファイルでもデータのないところはeraseするだけなので高速です。正確にはデータがあっても全てffならeraseだけにしているようです。よく考えられています。
ジャンパはFPLと同じでJ1とJ3をショートします。

MR16の入手法

2007-05-21 23:38:14 | FPGA
先日、MR16の公開サイトを見つけました。その後バグがあるので公開中止となっていることも気づきました。
googleで見つけたわけですが、ここって有名なザイリンクスでいこうさんでした。左側のメニューのIP Core関連の中にMR16があります。
Spartan-3 Starter Kit用のサンプルはFPGAを勉強するのにすごく役に立ちました。
さて、作者の方の意思に反して公開中止のMR16のソースを入手する方法ですが(ごめんなさい)、リンクを辿っていくと見つかる「偽X1 Ver.050412開発バージョン」のソースに含まれています。

サイキット液晶に出力してみる(1)

2007-05-19 18:11:43 | V850
V850付録基板にすんさんがレポートされているサイキットで売っている液晶をつないでみました。

サイキットにはほとんど資料はないのですが、すんさんが解明されています。
サイキットでは3種類のグラフィックLCDを販売しています。小型のがELバックライトで2mmピッチです。同じ大きさで色違いの残り2つはバックライトがLEDで2.54mmピッチです。
すんさんのレポートでは青色の液晶を使われているので、緑色の液晶を使ってみました。

このLCDのバックライトはやたらと電流が流れます。測ってみたら250mAくらい流れています(5V)。一応電流制限用のチップ抵抗R10がついているのですが、2R2と書いてあるので2.2Ωです。すんさんが使われた青色の方は330と書いてあるので33Ωみたいです。外に電流制限用に100Ωの半固定抵抗を増設してみましたが、少なくとも150mAは流さないとLEDは点灯しないようでした。バックライトなしでも、そこそこ見えるので点けない方が幸せかもしれません。
V850付録基板の5V(CON2 38pin)はUSBの電源に直結しているっぽいので、他に何も接続しないACアダプタ付のUSBハブを使って、CON2 38pinからバックライトLEDの電源をとっています。
あいかわらず複数の画像を貼る方法が分かっていないので、別記事にバックライトありとなしの画像をアップロードします。

LCDコントローラはKS0108B(HD61202の互換品)が2個です。
別の液晶ですが、同じコントローラなので制御法についてはChanさんS9894 128×48液晶表示器の試食も参考になります。

LCDの制御はデータが8pinと制御が6pinの14pinを使います。すんさんと同じP9に接続しています。最初はR/Wを0に固定(GNDに接続)して、適当にwaitをいれれば動くかなと思いましたが、それではうまくいきませんでした。微妙にタイミングがずれたり、コマンドが送れていなかったりしました。まじめにbusyをチェックしないといけないようです。
#define CTRL P9H
#define DATA P9L
#define RST P9H.5    // 0 reset
#define RW  P9H.4    // 1 read 0 write
#define CS2 P9H.3    // 1 select
#define CS1 P9H.2    // 1 select
#define E   P9H.1    // 立ち下がりでデータ取り込み
#define RS  P9H.0    // 1 data 0 command
#define BUSY P9L.7   // read時busy

#define left()  {CS2 = 0; CS1 = 1;}
#define right() {CS1 = 0; CS2 = 1;}

// ビジー待ち
void busywait(void)
{
    PM9L = 0xff;       // read mode
    RS = 0;            // command
    RW = 1;            // read
    do {
        E = 1;
        E = 0;
    } while(BUSY) ;
    PM9 = 0x00;        // write mode
    RW = 0;            // write
}

// コマンドを送る
void lcd_cmd(unsigned char c)
{
    busywait();
    RS = 0;            // command
    DATA = c;
    E = 1;
    E = 0;
}

// データを送る
void lcd_data(unsigned char c)
{
    busywait();
    RS = 1;            // data
    DATA = c;
    E = 1;
    E = 0;
}

// 座標移動
void lcd_move(unsigned char x, unsigned char y)
{
    lcd_cmd(0x40 | (x & 0x3f)); // 横
    lcd_cmd(0xb8 | (y & 7));    // 縦
}

// LCDクリア
void lcd_clear(void)
{
    unsigned char x, y;
    for(y = 0; y < 8; y++){
        lcd_move(0, y);
        for(x = 0; x < 64; x++) lcd_data(0x00);
    }
}

// LCD初期化
void lcd_init(void)
{
    CTRL = 0x20;    // RST=1, RW=0, CS2=0, CS1=0, E=0, RS=0
    RST = 0;
    RST = 1;

    left();
    lcd_cmd(0xc0);        // start line
    lcd_clear();
    lcd_cmd(0x3e | 1);    // display on

    right();
    lcd_cmd(0xc0);        // start line
    lcd_clear();
    lcd_cmd(0x3e | 1);    // display on
}

void main(void)
{
    int x, y, p;

    lcd_init();

    // 128x64画像の表示
    p = 0;
    for(y = 0; y < 8; y++){
        left();
        lcd_move(0, y);
        for(x = 0; x < 64; x++) lcd_data(pic[p++]);

        right();
        lcd_move(0, y);
        for(x = 0; x < 64; x++) lcd_data(pic[p++]);
    }

    while(1) ;
}


エレキジャックNo.2の部品セット販売(続き)

2007-05-19 18:09:29 | 電子工作
マルツパーツ館で追加がありました。前回との差分です。
【エレキジャック No.2 サポート部品】PICでテレビ・ゲームを作ってみよう! 1680円
【エレキジャック No.2 サポート部品】PICデュアル・ライタを作ってみよう! 2000円
【エレキジャック No.2 サポート部品】PICライターを作ろう! 2850円
【エレキジャック No.2 サポート部品】初歩のラジオ製作 2110円
テレビゲームはプログラム書き込み済と書いてあります。

共立電子の店エレショップさん記事連動パーツセットにもありました。
EJ No.2トイトレインからのライブ中継 840円
EJ No.2PICデュアルライタパーツセット 1780円
EJ No.2LEDを交互に点滅させてみよう 200円
LEDセットは色違いが5種類あるみたいです。PICライターは売り切れ。気づくの遅すぎですね、自分。

PICのデュアルライターは作者のでんし研さんサポートページがあります。

ESEC2007に行ってきました

2007-05-16 21:30:34 | その他
NECのブースにInterface 6月号の「しゃべる抽選機」の実物が置いてありました。触らせてもらって、ついでに写真も撮らせてもらいました。「トライオールフラッシュ工作集」という100ページくらいあるNECマイコンを使った電子工作の本を配っていました。

とにかく人が多くてたいへんでした。

なひたふさんの特殊電子の展示ではJTAG WARP9とPCI Expressが展示されていました。

FreescaleではUSBSPYDER08(愛称くもちゃん)がありました。係りの方にLEDチカチカだけは動かしたんですよって話したら、CDにはもう一つタイマーというサンプルもはいっていて、PWMでぼわーっと点滅するという話を教えてもらって目の前でデモしてくれました。チップを秋葉で売っている場所を教えてもらったりしました(メモしなかったので千石とマルツしか覚えていません)。くもちゃんは他でも2,3ヶ所見かけました。たぶん代理店なんでしょう。

NEC Communication Systemsという所ではV850用の超小型IPスタックがありました。そういえばAppliet2というパンフレットがありました。

IAR Systemsの展示でパスワールドさんのそろばんの実物を見ることができました。

MACNICAという所でSilicon LaboratoriesのC8051Fの展示をしていました。3mm角のちっちゃなCPUやUSBスティックの開発ツールなんかもありました。一般で手に入るのは?と聞いたら、国内ではあるオンラインショップで扱う予定があるとのことでした。USBがつながったり便利そうなんですが国内でも簡単に入手できるようになってほしいですね。

AlteraはCyclone III FPGAスタータ開発キットを展示していました。聞いてみたら個人向けだと入手できないと言っていました。やる気ないみたいですね?

XilinxのブースではVirtex5LXTの実物を始めてみました。Spartan-3ANの展示はないか聞いてみましたが、ないとのことでした。そこにいた人にISE9.1がまともに動かないので8に戻して使っているとブツブツ文句を言っておきました。

AVNETさんのブースではSpartan-3E Starter Kitがあたる抽選をしていました。抽選は後日発表だそうなので楽しみです。全部で30台で毎日10台づつだそうです。

こういうイベントは去年のET2006以来2度目です。資料を集めるときは袋をまずゲットしないとだめですね。ET2006のときはFPGAボードばかり見ていましたが今回は色んなデモボードについているちっちゃな液晶ばっかり気にしてました。