Sim's blog

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

Interface 7月号のゲーム

2007-06-13 22:45:07 | V850
とりあえず組み立てはじめました。最初の画面が出るところまで、できました。
あいかわらずブレッドボードです。CXA1645Pのまわりで1枚、R-2Rラダーで1枚、計2枚のブレッドボードを連結しています。5V系の回路です。残っているのは3.3V系で、このためにもう1枚ブレッドボードが必要になります。

アナログ系の配線は短くするそうなのですが、思いっきり無視してます。そのせいか画面は多少波打っています。


DWM部品表の間違い

2007-06-11 23:06:54 | FPGA
デザインウェーブマガジン2007年7月号39ページに載っている部品表ですが、間違いに気づきました。
14ピン2mmピッチ・ヘッダですが、87832-1420はSMT(表面実装)用なので87831-1420にしないといけません。
p.38の写真3にも87832と書いてありますが87831の誤りです。

サイキット小液晶を4.3Vで動かす

2007-06-10 02:25:18 | V850
前々回サイキットさんに小液晶のELバックライトについて教えてもらったことを報告しました。5Vだと明るくて、3.3Vだと暗いという話でした。
V850の一部のI/Oピンは5V耐圧なので5Vで動作させてもいいのですが、液晶側がHと思うのは0.7Vddなので3.5V以上です。V850で出力を3.3V以上にするにはNch出力モードにしてpull-upしてやる必要があります。
そこで液晶の動作電圧を下げて4.3Vでの動作を試してみました。4.3Vは、ダイオードの電圧降下を使って5Vから簡単に作れるのと、3.3Vよりはバックライトが明るくなりそうだったのと、0.7x4.3V=3VなのでV850側は3.3V出力のままでHと認識してもらえるのでpull-upしなくていいことの3つの利点があります。
液晶との接続は前回作った冶具をそのまま使っています。
4.3V動作のときは約40mA流れていました(5Vのときは60mA)。
写真はもっと明るい感じなのですが、うまく撮れていません。

V850付録基板のモード切替スイッチを作りました

2007-06-10 00:50:15 | V850
前回、V850付録基板のモードを切り替えるための回路を考えました。マルツでスイッチを買ってきたので作ってみました。デバッガモード、実行モード、FPL書き込みモードを切り替えることができます。リセットスイッチもつけてみました。

1つのスイッチでモードが切り替えれるので便利です。

6/14 追記 チャタリング対策をしていないのでリセットボタンはうまく動いていません

DWM付録基板のクロック

2007-06-09 18:36:10 | FPGA
秋月では3.3Vの水晶発振器は1種類しか売っていないようです(商品番号P01512)。このSG-645PCP(33MHz)をDWM付録基板につけて無事動きました。4個で300円なので安くていいです。

周波数ですが、特に何MHzという指定はなく記事によっては50MHzだったりしてまちまちです。

店頭では見かけませんでしたがマルツパーツ館で売っています(半導体→発振器)。web shopの在庫区分は納期2~7日になっています。型番はKC7050Bxx.xxxxC3xB00(FXO-31FL)となっています。xx.xxxxの所には周波数がはいります。C5が5VでC3が3.3Vです。付録基板は3.3VなのでC3のものを選ばないといけません。



DWM付録基板てLEDチカチカ

2007-06-09 00:22:53 | FPGA
やっぱり、お約束のLEDチカチカをやらないといけません。DWM付録基板は基板上にLEDが実装されているので、これをチカチカします。

3.3V電源とクロック生成のためにSpartan-3E Starter Kitを使いました。DCMを使って33MHzを作ってJ2から出力しています。

verilogはこんな感じです。23bitのカウンターが一周するとLEDが反転します。ソースはverilog2001用です。
module main(
    output reg led = 1'b0,
    input clk);

    reg [22:0] ctr = 0;
    wire ctr_en = ctr == 0;

    always @(posedge clk) ctr <= ctr + 1;
    always @(posedge clk)
        if(ctr_en) led <= ~led;
endmodule

ucfファイルはこんな感じです
NET "clk"  LOC = "P88"  ;
NET "led"  LOC = "P98"  ;

とりあえず動いてよかったです。それにしてもSpartan-3E Starter Kitは大きい。でも、自由に使えるI/Oは付録基板の方が多いです。


DWM付録基板をboundary scanする

2007-06-08 22:09:08 | FPGA
CQ出版Design Wave Magazine2007年7月号を買ってきました。XilinxのSpartan-3E XC3250Eの載ったFPGA基板が付録についています。

いつものごとく、袋から出してそのまま動くわけではなくて、いくつか部品を足してやる必要があります。

電源は安定した3.3Vを使うか、5Vを3端子レギュレータで3.3Vにして使うのと2通りを選べます。3端子レギュレータ(LM317T)と電解コンデンサ(25V10μF)は実装されていません。LM317Tは外付けの抵抗を使って出力電圧を可変にできる可変出力の3端子れキュレータですが、抵抗は実装されています。安定した3.3Vの電源は?ということでInterface 5月号付録のV850基板から3.3Vを取りました(写真右上)。

FPGAの中身を書き換えるためのJTAGケーブルを接続するためのコネクタも実装する必要があります。これも2系統あって、1つは2.54mmピッチの6pinヘッダで、もう一つが2.0mmピッチの14pin(2x7)ヘッダです。14pinの方はXilinx純正のJTAGケーブルに対応したもののようです。2.0mmピッチのボックスコネクタは秋葉では見つけることはできませんでした。ボックスにこだわらなければ、2.0mmピッチの2列ピンヘッダは千石電商若松通商で売っていました。
2.54mmの方ですが、Platform Cableとかだとフライリード線をつなげばいいです。とりあえず手元にあるSpartan-3 Starter Kitのおまけケーブルにつないでみました。ピン配置が違うので順番を入れ替えています。このケーブルはParallel Cable III互換でプリンタポートに接続します。
JTAG関係の信号はCN3にも出ているので、ベースボードとか作ってそちらからつなぐこともできます。

電源とJTAGコネクタだけあれば、一応コンフィグレーションはできます。しかし実際に動かそうとすると困ったことがあります。この基板はクロックも実装されていません。クロックには3.3V動作の発振器を実装しないといけません。DWM誌のお勧めは京セラキンセキのFXO-31FLです。一応33MHzということになっていますが、どうせDCMで周波数を変えれるので周波数は適当でよさそうです。ラジオデパート2Fのサンエレクトロで売っていました。そのものずばりの33MHzはありませんでしたが他のは色々ありました。聞いてみたら33MHzはなかなかないと言っていました。とりあえず50MHzのを買ってきました(400円)。使えるかどうか分かりませんが秋月にも3.3V用33MHzの発振器SG-645PCPを売ってます(4個で300円)。表面実装用なのではんだづけが難しそうです。他に売っている場所はRSオンラインとフルタカパーツセンターを見つけました。
GCLKがI/Oピンに出ているので、そちらから入力してやってもいいかもしれません。
6/10 追記 秋月発振器でも動作確認しました。マルツの通販でもあつかっているようです。

その他にいりそうなものはI/O用のピンヘッダです。CN2が34pin、CN3が40pinです。CN3の8pin分はJTAGにつながっているので、32pinでも平気です。

Spartan-3E自身はRAMタイプなので、電源を切ると中身を忘れてしまいます。電源を切っても中身を覚えておくためのコンフィグROMも実装されていません。型番はXCF02SVO20Cです。秋葉だと千石電商で売っていますが、RSオンラインやdigi-keyでも買えるようです。国内で買えるかどうか分かりませんがXilinxのオンラインストアではAVNetとNuHorizonにリンクしています。

まとめると

- 電源は3.3Vか、レギュレータをつけて5V。
- JTAGコネクタは2.54mmピッチ6pinか、2.0mmピッチ2x7
- クロックはFXO-31FL(または互換品)を実装するか、外部クロック入力
- コンフィグROMをつけなくてもいいはず

さて、おまけケーブルでコンフィグできそうか見てみるためになひたふさんのMITOUJTAGでboudary scanしてみました(なひたふさんの所は今は特殊電子回路株式会社です)。

チェーンも認識してIDも返してくれています。INTESTで基板に実装されているLEDも点けたり消したりできました(LEDはピン番号98につながっています)。とりあえず動くかどうかの確認にはとても便利です。



平日でも秋葉原は結構混んでいました。日差しが強かったので駅前にいるメイドさん達も日傘をさしていました。

7セグの16進カウンター

2007-06-08 10:59:59 | V850
0.5秒毎に16進カウンターがカウントアップするプログラムを作ってみました。回路とかはここと同じです。

まずはappliletです。
- システムはウォッチドッグタイマーなし、(オンチップデバッグあり)
- 時計タイマーは、使用する、(サブクロックを使用する)、時計タイマー割り込みの許可、(0.5s)
- ポートはP90-P97が出力で初期値は1、P98を出力で初期値は0

サブクロックの方が正確なのでサブクロックを実装しているときはサブクロックを使用するにします。

プログラムはmain.cがこんな感じです。時計タイマーをスタートして無限ループしているだけです。カウントアップは割り込みルーチンで行います。ポートの初期設定もappliletにまかせています。
void  main( void )
{
    WT_Start();        // 時計タイマースタート

    while(1) __halt(); // 無限ループ
}


割り込み処理はappliletが自動生成してくれるWATCHTIMER_user.cを書き換えます。
// 数字パターン(0-F)
const UCHAR pat[16] = {
    0x81, 0xcf, 0x92, 0x86, 0xcc, 0xa4, 0xa0, 0x8f,
    0x80, 0x84, 0x88, 0xe0, 0xb1, 0xc2, 0xb0, 0xb8,
};

// 0.5秒毎の割り込み処理
__interrupt void MD_INTWT( void )
{
    static int ctr = 0;

    P9L = pat[ctr];      // パターンを表示
    ctr = ++ctr & 0x0f;  // 次のパターンにする
}

1端子に流れている電流は2.8mAくらいでした。

そういえば電気特性とか、ちゃんと見てなかったなと思って(ォィォィ)、ユーザーズマニュアルを見てみました。28章の「電気的特性」に出ています(p.799)。1端子4mA、全端子合計50mA。え? こんなに少なかったんですね・・・。あぶないあぶない、全然きづいていませんでした><

7セグメントLEDにつないでみる

2007-06-08 01:00:58 | V850
V850付録基板に7セグメントLEDをつないでみました。7セグは秋月で売っているGL9A040Gというアノードコモン(+側共通)のものです。10個で100円でした。

回路図はトラ技2007/2月号のp.219を参考にしました。抵抗値を変えています。トランジスタにつながっているのは10kΩですが、トラ技のは6.8kΩでした。マイコンと7セグをつないでいる抵抗は510Ωですが、トラ技のは200Ωです。

BSch3Vで回路図を描いてみました。

流れている電流ですが、全部点灯した状態で21mAくらいでした。これでもかなり明るいので、電流制限用の抵抗は抵抗値をもっと大きくしてもよさそうです。

この7セグの最大定格はセグメントあたり20mAです。1つだけセグメントを点けて測ってみると3.2mAくらい流れていたので定格内です。最大定格はデューティ比1/10でパルス幅0.1m秒で動かしたときは100mAまて流せるようです。
7/8 追記 V850の1端子の定格は4mA(合計50mA)なので、定格を超えないようにしてください。最悪、CPUを壊します。

回路はいつものようにブレッドボード上で組みました。ブレッドボードだと並べるわけにいかないので1個だけです。

テスト用プログラムは、appliletで雛形を作ります。
- システムはウォッチドッグを使用しない、オンチップデバッグを使用する
- ポートはP90~P97とP98が出力で初期値は1にしました。

プログラムです。オンチップデバッグを使うので簡単です。
void main(void)
{
    UCHAR pat = 0x00;  // 7segに出力する値
    P9H.0 = 0;         // 0:点灯 1:消灯

    while(1){
        P9L = pat;     // 7segLEDに出力
    }
}




ジャンパをJ3とJ2につけて、PM+でF5を押すとコンパイルが始まってデバッガが起動します。ダイアログはOKボタンを押すとオンチップデバッグが開始します。

F10を押すと1ステップずつ実行します。写真は左側がソースで右側がローカル変数です。デフォルトではローカル変数のウインドウは表示されていないので、メニューのブラウズからローカル変数を選びます。ローカル変数ウインドウの値のところをダブルクリックすると値を編集できます。

F10を何回か押してwhileループにはいったらpatの値を書き換えて、F10を何回か押すと7セグの表示も変わるのが確認できます。オンチップデバッグを使うとコンパイルしなおさなくてもいいので便利です。

7セグは対応するビットを0にしたとき点灯、1にしたとき消灯します。P9L=0x00にすると全部点きます。

V850のP9を1ビット単位でアクセスするときは、16bitのP9は使えず、上位と下位の8bitレジスタP9HとP9Lを使う必要があります。

7セグ自体の解説はトラ技の2007/6月号のP.184-185が参考になりました。7セグを使うのは初めてでしたが無事点灯できました。複数個つないでダイナミック点灯とか、秋月で売っている青色のとかも試してみたいです。

エレキジャックのブレッドボードの記事

2007-06-07 22:27:47 | 電子工作
とりえあえず連載完みたいです。連載各回へのリンク

(1) 回路の確認、実験にはブレッドボードが重宝
(2) ブレッドボードを使うための準備
(3) ブレッドボードでタイマ回路を作ってみる
(4) ブレッドボードでオン/オフの制御
(5) ブレッドボードにスイッチをつける ブレッドボード編完

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

2007-06-07 02:58:59 | V850
V850付録基板とサイキットさんの小液晶をつなぐ冶具を作ってみました。小液晶は2.0mmピッチなので、ケーブルとコネクタをつないでいました(6/2)。

緑(青)液晶用の冶具(5/27)と違う所は、
- 6本の制御線はpull-upもしくはpull-downしたこと
- 20pinのボックスヘッダを使っていること
- 19pinのpull-up / pull-downを選ぶためのジャンパピンをつけたこと
- 普通のユニバーサル基板を使ったこと
です。

19pinをpull-downにするとELバックライトが点きます(6/5)。

データ線(8本)と制御線(6本)をpull-upしていれば5V系で使えますが、今回はそうしていないので3.3V系専用です。3.3VなのでELバックライトは暗いです。

配線数が減るので、やっぱり前回使ったグランド付のユニバーサル基板(サンハヤトのICB-86)の方が楽でした。


Interface 7月号の部品集め

2007-06-06 01:51:27 | V850
メモ(6/3 秋葉)

p.149の部品表
- OPアンプNJU7032Dは千石になくてマルツにあった
- CXA1645Pは秋月の店頭では売り切れで、お店の人に聞いたら奥から出してくれた
- CXA1645Pは幅が広いので、秋月で売っている24pinソケットにはささらなかった
- CXA1645Pの袋にはSILソケットも入っていた。
- ついてきた紙によるとR22の20kΩは誤差1%
- RCAジャックは秋月にも売っていた。ただし色は白がなく黒があった(30円)。ピン配置も違う
- 半固定抵抗は写真に載っているようなのは千石では見つからなかった。マルツにあった。
- 西川電子部品は日曜休み

- 通販ではなくなったドリルの刃を秋月店頭で在庫限りで売っていた
- くも8ちゃんは千石、マルツ共に売り切れ

サイキット小液晶のバックライトについて教えてもらいました

2007-06-05 02:28:50 | V850
前回サイキットさんの小液晶に画像を表示してみました。他の液晶のバックライトはLEDなのですが、この液晶のバックライトはELです。メールでサイキットさんに問い合わせてみたところ、さっそく調査して返事をくださいました。許可をいただいたので情報を公開します。

バックライトの点灯のしかたです(メールまま)

・19番のpinをプルダウンする(0V近くの電圧を加える)とELが点灯する。

・外付けの装置は必要ない。

・5.0Vのときにバックライトを点灯するとLED程は明るくないが、
 目視するのに十分な輝度が得られる。電流は60mA程度増加する。

・3.0Vのときにバックライトを点灯するとあまり明るくない。
 電流は20mA程度増加する。
(メール引用おわり)

注意点としては「電流など細かい点は、次回ロットで変わるかもしれない」ことだそうなので、あくまで参考情報ということでお願いします。

また、うれしい情報としては「このサイズ(小)の青色液晶(白LEDバックライト)も入荷する予定」だそうです。

というわけで、さっそく5Vにつないでみたのが写真になります。一応、周りを暗くして撮っています。本当はもっと明るいのですが、うまく撮れていないです。

バックライトも使おうとすると、V850自体は5Vトレラントなので入力は平気ですが、液晶の認識するHレベルが0.7VDDなので3.5Vになって3.3Vより高いので、Nチャネルオープンドレイン出力にしてプルアップしてやる必要があります。もしくは、液晶自体を4.5Vとかで動かすのもありかもしれません(ダイオードで電圧降下させる?)。
いずれにしろ19pinはオープンにせず、HかLに出力を固定した方がよさそうてです。

他に教えてもらったのは
- 102Kと書いてあるL1が昇圧用コイルらしいこと
- 20pinは直接ELに接続しているわけではなく、RLと書いてあるあたりのジャンパを接続しなければいけないかもしれないこと
です。

内部インバータと外部インバータが干渉するとまずそうな気もするので、19pinは外部ELと内部ELの切り替え用の信号なのかもしれません。そうだとすると、電源をいれる順番とかも考えなければならないことになって大変そうです。
6/6 追記 RLを接続したときの話です。RLをつながないときは20pinは独立しているので順番は気にしなくていいです。

昇圧しているということで言えば、念のため感電にも気をつけた方がよさそうです。

最後に親切に対応していただいたサイキットさんに感謝します。