Sim's blog

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

AT90USBボードを使ってみました

2010-10-31 04:52:33 | AVR
かなり昔に買うだけ買って放置していたストロベリーリナックスAT90USBボードを使ってみました。



開発ソフトは以下をインストールしました。
- AVR Studioのページ
- WinAVRのページ
- FLIPのページ

以下のページを参考にしました。ありがとうございます。

ストロベリーリナックスさんのチュートリアル
製品ページ (組み立て済) キットと組み立て済の2種類の製品があります。

ジャンク宿さんの記事
AT90USB162マイコンボード開発メモ【1】
AT90USB162マイコンボード開発メモ【2】
AT90USB162マイコンボード開発メモ【3】
AT90USB162マイコンボード開発メモ【4】
AT90USB再び
SPI通信

すんさんの記事
Atmel USBマウスデモ
Atmel USB CDCデモ

Atmel
AT90USB162のページ
AVR USB Series2 Software Packages USB関連のデモがダウンロードできるページ
STK526ボードのページ デモはSTK526を前提にしている。


先人の偉業が色々あるので特に書くこともないのですが、とりあえず自分がやったことを記録に残しておきます。やったことはUSBシリアルのデモを動かしました。

(1) Atmelのページ(AVR USB Series2 Software Packages)からAVR272 USB CDC Demonstration(AVR272_USB_CDC_Virtual_Com_Port.zip)をダウンロードしました。

(2) AVR272_USB_CDC_Virtual_Com_Port.zipファイルを解凍すると、3つのzipファイルがあります。AT90USB162はシリーズ2(型番の末尾が2)なので、STK526-series2-cdc-2_0_3-doc.zipを適当な場所に解凍します。私はd:\work\avr\stk526-series2-cdc-2_0_3-docに解凍しました。

zipファイルの構造は次のようになっています。

STK526-series2-cdc-2_0_3-doc
demo
STK526-series2-cdc ← at90usbxxx_cdc.inf、cdc_task.cはここにあります。
conf ← config.hはここにあります。
doc
fig
gcc ← STK526-series2-cdc.apsはここにあります。hexファイルはここにできます。
iar
Debug
Exe
doc
html
lib_board
stk_526 ← stk_526.hはここにあります。
lib_mcu
flash
pll
power ← power_drv.hはここにあります。
uart
usb
util
wdt
modules
scheduler
usb
device_chap9

(3) AVR StudioからSTK526-series2-cdc.apsというプロジェクトを開きます。このプロジェクトファイルはdemo\STK526-series2-cdc\gccにあります。

(4) すんさんのページにあるようにCPUの周波数の設定を8MHzから16MHzに変更します。具体的にはdemo\STK526-series2-cdc\confにあるconfig.hの
//! CPU core frequency in kHz
#define FOSC 8000

//! CPU core frequency in kHz
#define FOSC 16000
に書き換えます。

(5) buildします(私はいつもF7を押してます)。すると、エラーが出ています。

../main.c: In function 'main':
../main.c:107: error: expected expression before 'do'
../main.c: In function '__low_level_init':
../main.c:126: error: expected expression before 'do'

main.cを見てみると107行も126行もClear_prescaler();でした。探してみるとClear_prescaler()はpower_drv.hで定義されているマクロです。power_drv.hはlib_mcu\powerにあります。マクロの定義は次のようになっています。
#ifdef  __GNUC__
#define Clear_prescaler() (clock_prescale_set(0))
#else
#define Clear_prescaler() (Set_cpu_prescaler(0))
#endif

今回はWinAVRを使っているので__GNUC__というマクロが定義されています。したがって#ifdefは上の方のclock_prescale_set(0)を使ったマクロを定義しています。clock_prescale_set()ですが、avr/power.hで定義されています。このファイルはWinAVRをインストールしてフォルダの下のinclude\avrにあります。覗いてみると、clock_prescale_set()もマクロ定義になっていて、do~while(0)で囲まれていました。結局マクロを展開すると、(do ~ while(0));のようにdo~whileのまわりに括弧がいる形になってC言語の文法エラーになっていたということみたいです。たぶん元々は関数で定義されていたので括弧でくくっても問題がなかったんでしょうね。
というわけで、以下のように括弧を取り除いてエラーを修正します。
#ifdef  __GNUC__
#define Clear_prescaler() clock_prescale_set(0)
#else
#define Clear_prescaler() (Set_cpu_prescaler(0))
#endif

ちなみに、もうちょっと下にSet_cpu_prescaler(x)のマクロ定義でも(clock_prescale_set(x))となっているので括弧を取り除いてやります。

これで無事build完了です。私の環境(WinAVR-20100110)だと以下のようなサイズになりました。

Program: 5018 bytes (30.6% Full)
(.text + .data + .bootloader)
Data: 172 bytes (33.6% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...

(6) Flipを使って、hexファイルを書き込みます。STK526-series2-cdc.hexはdemo\STK526-series2-cdcの下にできます(STK526-series2-cdc.apsと同じフォルダ)。Flipの使い方はストロベリーリナックスのチュートリアルに写真入りで解説されています(サンプルプログラムの書き込み)。

書き込みモードにするときは、リセットのジャンパをつける → ブートのジャンパをつける → リセットのジャンパをはずす → ブートのジャンパをはずす、という順番にします。

書き込みに成功して実行を開始すると、新しいデバイス(AT90USBxxx CDC USB to UART MGM)を認識してドライバをインストールします。ドライバはdemo\STK526-series2-cdcの下のat90usbxxx_cdc.infです。

(7) TeraTermで38400bpsに設定して通信した様子です(PB0とGNDをショートしたときのメッセージ)。


このデモ自体の機能は、以下の3つです。
- USB-UARTから受信した文字をUARTへエコーバックする。その際にPD5に接続されたLED3を反転する。
- ???なトリガーでPD5に接続されたLED2が反転する。cdc_task.cではusb_request_break_generationがTRUEのときに反転することになっています。
- STK526のジョイスティックを倒すと方向に応じたメッセージを出力する。実際は5個のボタンになっていて、上 PB5、下 PB7、左 PB4、右 PB6、push PB0に割りあたっています。STK526のHardware User Guideを見ると、このジョイスティックは押すとpull-downされるが、そうでないときはHi-Zであると書かれていて、AVRの内蔵pull-upを有効にしておく必要があるそうです。

STK526のLEDやジョイスティック関連の定義はstk_526.hの中でマクロとして定義されています。stk_526.h自体はlib_board\stk_526にあります。

ボタンに反応したりといったデモの機能自体はcdc_task.cの中のcdc_task()の中に定義されています。main()は初期化した後、scheduler()という関数を呼び出すだけです。conf_scheduler.hでschedulerが呼び出すタスクを定義していて、task2がcdc_taskということのようです。cdc関連のプログラムを開発するには、このデモを改造するのがよさそうな気がします。
一応、AVR USB Series2 software library templateというseries2-usb_software_library_template-2_0_0-doc.zipファイルもダウンロードできるようです。

試しにcdc_task()の中のUARTに出力しているところ
uart_putchar(uart_usb_getchar()); // loop back USB to USART
を、次のように書き換えてみると、USB-UARTにエコーバックするようになりました。
putchar(uart_usb_getchar()); // loop back USB to USART


というわけで、やってみたことは以上です。

schedule()は、taskを順に呼び出しているだけで、タイマー割り込みとかで時分割処理をしているわけではないので、cdc_task()の中ではあまり長い処理はしない方がよさそうです。結構、使い方は面倒そうな気もします。もっと手軽に使えればいいのにとか勝手なことを思いました。

10月30日(土)のつぶやき

2010-10-31 02:15:40 | Twitter
00:09 from Echofon
ハワードザダックの映画、好きだったなあ。というか、リー・トンプソンだな。映画のサントラとかあったのだろうか。
00:33 from Echofon
今さらながらなんですが、FPGA2.0のサイトに登録するとAltera関連の日本語情報が見れるようになる。http://www.altima.jp/
11:28 from Echofon
全面青ってことは、雨だらけってことかあ http://tokyo-ame.jwa.or.jp/
13:58 from Echofon
台風14号、夜に関東最接近…大雨・暴風警戒 http://www.yomiuri.co.jp/national/news/20101030-OYT1T00130.htm
13:58 from Echofon
台風が近づいているということは、日米もしまってるんだろうな
14:17 from Echofon
あすぴよパパさん、はんだづけカフェにたどりつけるのだろうか
14:29 from Echofon
ありゃ、はんだづけカフェのUSTがoff airだ
18:06 from Echofon
マルツセミナー「8x8ドットマトリクスシールドの製作」 http://marutsumake.blog74.fc2.com/
23:47 from web
巨乳好きということかな。 Sim0000のおっぱい守備範囲 ~AA A B C D E F【G H I J ~】理想:Iカップ http://shindanmaker.com/21237 てか、IとかJとかすごすぎかも
23:54 from Echofon
FPGAはXC3S250E(Spartan-3E)、USBはPIC18F24J50。16pin分5Vトレラントになっている普通のFPGAボードw http://www.switch-science.com/products/detail.php?product_id=416
by Sim0000 on Twitter

10月29日(金)のつぶやき

2010-10-30 02:18:39 | Twitter
07:15 from マイコミジャーナル ログイン
メモリ充 #mycomj http://j.mp/91pa7Q STMicro、大容量Flashメモリ内蔵のエントリークラス32bitマイコンを発表
09:24 from Echofon
今日も寒い~
09:25 from Echofon
おお、特訓ですね。必殺技の開発? RT: @osamu_iwasaki: よし、では朝の千本ハンダから
09:36 from Echofon
心拍センサシールド http://www.galileo-7.com/?pid=24016076
by Sim0000 on Twitter

10月28日(木)のつぶやき

2010-10-29 02:15:10 | Twitter
07:09 from Echofon
外の気温は10度くらいだ。寒い
09:07 from Echofon
まだ雨が降ってないと思って、歩き出したら思いっきり振られてしまった。
09:13 from MYCOM JOURNAL LP
どんどん進化してるなあ。gccしかないというのは不健全だしがんばってほしい #mycomj http://j.mp/9N9o7l LLVM Clang、Linuxカーネルビルドに成功
16:10 from Echofon
つまみジャンパーピン各色。http://bit.ly/b5bX0j #akiduki
20:12 from Echofon
斉藤は日ハムか
by Sim0000 on Twitter

10月27日(水)のつぶやき

2010-10-28 02:15:47 | Twitter
00:00 from Echofon (Re: @maris_HY
@maris_HY ふむふむ、Bが下になって、Aが上になって、Bの符号を拡張してAに入れるんですね。
12:23 from Echofon
月極定礎ホールディングスwRT: @doggie_ele: こんなのも http://bit.ly/bWtjyA
23:15 from Echofon
DE0でNiosのROMブートの記事をすんさんが書いている http://ekousaku.web.fc2.com/terasicDE0_RomBoot.html
23:20 from Echofon
プロトタイパーズの記事が出ている http://pc.watch.impress.co.jp/docs/column/musashino_proto/20101027_402548.html
by Sim0000 on Twitter

10月26日(火)のつぶやき

2010-10-27 02:15:09 | Twitter
00:54 from Echofon
di halt ばたり
13:27 from Echofon
青春保存計画にウケた。 RT: @kyohritsu: カセットテープからUSB経由でパソコンに取り込む「秀音」(¥4980)。積み上げてしまうほど大人気発売中です。


18:10 from Echofon
windows xpで扱えるハードディスクのサイズは1パーティション2TBということらしい
23:38 from Echofon
6809だったような・・・ RT: @suga41: Z80のSEX命令っていうのは、やっぱりどきどきする。
by Sim0000 on Twitter

10月24日(日)のつぶやき

2010-10-25 02:18:25 | Twitter
00:28 from Echofon
ブログ書きました。「東工大の工大祭に行ってきました」 http://bit.ly/bM6tfV
00:38 from Echofon
そんな楽しそうな展示もあったんですね。RT: @gomisai: 折角なので、人力飛行機の展示も見てあげてさい。電子工作的には尾翼が動くだけですが。南2号館1Fです。 #nicobun
17:04 from Echofon
外は雨が降っている
by Sim0000 on Twitter

10月23日(土)のつぶやき

2010-10-24 02:13:49 | Twitter
08:03 from Echofon
あ、今日でしたか。 RT: @ienaga045: 今日はニコニコ技術文化祭見学に行くかどうか悩みどころだ.(時間的に) [寮]
09:04 from Echofon
ニコニコ技術部文化祭 10/23,24 10:00-17:00 東工大 http://bit.ly/bYe5b3
09:13 from Echofon
こっちの方が場所も分かっていいかな。ニコニコ技術文化祭 http://koudaisai.jp/event/nicofes/
09:34 from Echofon
超音波センサ(送受信セット) 300円 http://akizukidenshi.com/catalog/g/gI-00120/
14:06 from www.movatwi.jp
おもいっきり、二度寝しちゃった。東工大に行かないと。
15:44 from www.movatwi.jp
東工大なう。ぱおさん、はるさん、ikkeiさんに遭遇。
15:46 from www.movatwi.jp
ろ技研がすごいらしい。ぱおさん情報
15:48 from www.movatwi.jp
最初、ろり研とそら耳したのは内緒w
17:19 from www.movatwi.jp
川崎なう。人がいっばい
17:23 from www.movatwi.jp (Re: @inanzu
@inanzu おつかれさま
23:25 from web
ブログ書きました。「ニコニコ技術文化祭に行ってきました(2010)」 http://bit.ly/asBcQP
23:25 from web
そういえば、ニコニコ技術文化祭のタグは何なんだろう?
23:41 from Echofon (Re: @strv
@strv @Nasupl ありゃ、やってしまいました。こちらになります。http://bit.ly/cAek9G
23:42 from Echofon
リンク先を間違ったので再送。ブログ書きました。「ニコニコ技術文化祭に行ってきました(2010)」 http://bit.ly/cAek9G #nicobun
23:50 from Echofon (Re: @kranke_t
@kranke_t @Rapha_n 失敬、今年の分はこちらになります>< http://bit.ly/cAek9G
23:52 from Echofon
東工大の工大祭では、西9号館でロボット技術研究会、無線研究会の展示に電子工作関連がありました。#nicobun
23:54 from Echofon
はやぶさのでっかい模型もありました>工大祭 #nicobun
by Sim0000 on Twitter

東工大の工大祭に行ってきました

2010-10-24 00:26:00 | その他
ニコニコ技術文化祭に行った帰りに見てきました。って、普通は逆ですね^^

電子工作系関連ということでロボット技術研究会と無線研の展示を見学しました。

ロボット技術研究会の展示です。

ぜんまい動力の振り子時計。中が見れるんですが、見てて飽きません。昔の人はすごかったんだなあ。



全てロジックICで作った4096点FFT装置。まあ、とにかくこれはすごかったです。
秋月のSD12864の表示回路もロジックICで組んでます。ROMを使いたくないとのことで、三角関数のテーブルも電源起動時にロジックICで計算しています。
作者の方のホームページ「古典回路屋

A/D変換は抵抗ネットワークで作っています。

デモとしては、マイクから拾った信号をFFTしてスペクトラムをグラフィック液晶に表示する(はず?)というものでした。手前のノートに設計情報が手書きでぎっしり書かれています。

輪ゴム銃です。なんと東工大には輪ゴム銃研があるみたいです。


マイコン勉強会。PICでした。



マイクロマウス

迷路を学習していく様子のデモをしていました。センサは赤外線で壁をスキャンしているそうです。

レーザープロジェクタ


電子楽器研


以上が、ロボット技術研究会の部屋に飾ってあったものです。なぜか立体パズルなんかもありました。近くの部屋にロボコン関連の展示もあったのですが、そちらは写真を撮りそこないました。

無線研究部の展示です。

ニキシー管時計です。


秋月の300円液晶のコントローラです。

制御にはMAX IIというCPLDを使っていました。


どちらも、もっといっぱい展示があったんですが、写真がうまくとれていませんでした><。
色々な学科の研究室の展示なんかもあって、とにかく盛りだくさんです。


おまけ

はやぶさの展示がありました。実物大模型なんかがありました。









ニコニコ技術文化祭に行ってきました(2010)

2010-10-23 23:21:42 | その他
昨年に引き続き、今年も遊びに行ってきました(去年の記事)。東工大の大学祭の一環として開催されています。


入り口の看板

道にあった看板


会場1の入り口にあった看板

会場2の入り口にあった看板


坂をとにかく登る車

タコルカが元気に踊ってました。ぶれてて申し訳ない。でも、ずっと動いているので勘弁w

ぬいぐるみがいっぱい?なぜかミシンも置いてありました。

音の高低で通信

ゲームっぽい画面で人形を操作できます

人形w


ミクミンPさん
原寸大あの楽器

どこでもタコルカピアノ。手袋が足になっていて、指先のボタンで音を鳴らします。

ミクテルミン。測距離センサを使っていました。以前あった大きいのの簡易版だそうです。



はるさん
モーターフェーダーでネギを振ってみた。FPGAで制御していました。

はるさんの行く所。必ずFPGAがあります。aitendoのOLEDにFPGAから出力しています。


おなじみPAOさんのオシロネギ振り


ウダーさんも来られていました。


某まほうつえ。ごめんなさい。元ネタが分かりません。


基板も作られたそうです。丸い!


電動ローラーブレード「プロトキャリバー02」。なんと006Pの9V電池で動いています。3分しかもたないのだとか。


電池1本でネギ振り


@きよしさん
電子楽器CamiDion


髭伯爵さん
レーザーハープ。演奏する楽しみを実現できる楽器について熱く語ってくださいました。以前、NT川崎でプレゼンをお聞きしたことがありますが、日々進歩されているそうです。

測距離センサーで手の高さを検出しています。


フィードバックのあるマウス。モーターでひもをひっぱって、不思議な感触が味わえます。

体験用のゲーム


実物は見れませんでしたが、ビール注ぎ機だそうです。



とても楽しませていただきました。プレゼン会場ではNT名古屋の中継をしていました。10/24は、プレゼンが色々あったり、出し物も変わるみたいです。


おまけ
会場の東工大はとても広いです。敷地内にトンネルや橋がありました。




10月22日(金)のつぶやき

2010-10-23 02:14:42 | Twitter
14:23 from Echofon
PS3のせいで売り切れていたのが復活してハンダ付け不要に。2415円。AVR-USBマイコンボード【完成品】 http://strawberry-linux.com/catalog/items?code=50031
14:36 from Echofon
はい、自分で組み立てるキットの方は1890円のままです。http://strawberry-linux.com/catalog/items?code=50027 RT: @tokoya: @Sim0000 値上がりしてない?
21:35 from www.movatwi.jp
今日の飲み会も完了。帰投なう
22:27 from Echofon
@noritan_org WiMAX+CDMAにきまりでしょうw http://www.au.kddi.com/seihin/ichiran/data/data01/index.html
by Sim0000 on Twitter

10月21日(木)のつぶやき

2010-10-22 02:14:18 | Twitter
10:10 from MYCOM JOURNAL LP
色々出てくるなあ。 #mycomj http://j.mp/cxaArL Xilinx、車載向けターゲットデザインプラットフォーム3種類を発表
10:11 from MYCOM JOURNAL LP
今年もあるんだ。 #mycomj http://j.mp/ccUm14 電子工作コンテスト2010の受付が開始 - テーマは「電子工作って楽しい!」
10:29 from Echofon
磁石でON/OFFするスイッチ。リードスイッチFR2S1013(10個入) http://akizukidenshi.com/catalog/g/gP-04210/
12:11 from Echofon
これはいい。すんさんの掲示板経由、「作るサウンドエレクトロニクス」http://nagasm.suac.net/ASL/mse/index.html
13:19 from Echofon
今のルール(標準?)だと、uint32_tを使うにはstdint.hというヘッダファイルをincludeしなければいけないらしい。VS2008だと、そんなファイルはない。VS2010にはあるみたい。
13:26 from Echofon (Re: @ktakemaru
@ktakemaru 今頃、気づきました。場所は品川近辺ですか? 多少遅れるかもしれませんが、参加します。 @Sim0000 さん、都合がよろしければ明日19:00品川アトレ入り口界隈に、のりたんの会集合でー。
13:34 from Echofon (Re: @jujurou
@jujurou なるほど、それでstdint.hはvs2008にないんですね。PIC32 starter kitのコンパイラもstdint.hがありました。サポートされるコンパイラのことを考えるとC99は今のところ、微妙ですね。
19:15 from www.movatwi.jp
東海道線なう。集合時間に遅刻中
20:19 from www.movatwi.jp
品川なう。のりたんさんといっしょ
21:55 from www.movatwi.jp
東海道線なう。のりたんさんといっしょ
22:04 from www.movatwi.jp
川崎なう。のりたんさんは東京方面に引き返すとのこと
22:07 from www.movatwi.jp (Re: @chobichan
@chobichan 今日はありがとうございました
22:12 from www.movatwi.jp (Re: @noritan_org
@noritan_org 今日はお話しできて愉しかったです。
22:26 from Echofon
五稜郭ロボ vs. イカール星人 http://d.hatena.ne.jp/washita/20090316/p4
22:29 from Echofon
あはは、すごろくですかw RT: @noritan_org: 振り出しにもどる。@品川
22:33 from web (Re: @n24bass
@n24bass 今日はありがとうございました。まさかお会いできると思ってませんでした^^
22:41 from Echofon
HakoTubeでvol.6まで見れるw http://www.omoide.tv/hakotube/
23:02 from Echofon
RT @osamu_iwasaki: 明日、金曜日の17時から秋葉原アールティをお借りして「フィジコンナイト」と称して工作を楽しむ夕べを行います(無料)。ぼくはアニオマジックの製品や作品をいろいろ持って行ってちくちくしようかと。場所はこちら! http://ow.ly/2X6jZ
23:13 from Echofon (Re: @ktakemaru
@ktakemaru 今日はありがとうございました。
by Sim0000 on Twitter

10月19日(火)のつぶやき

2010-10-20 02:12:14 | Twitter
00:16 from Echofon
Tさんにいいことがあったみたいだ。おめでとー
01:27 from Echofon
di halt (F3 76)
10:55 from Echofon
トラ技2007/1の付録基板の販売らしい。直販のみ。「超低消費電力マイコンMSP430基板2枚組み」http://shop.cqpub.co.jp/hanbai/books/I/I000023.html
17:14 from Echofon (Re: @chobichan
@chobichan 同じものが2枚はいってるっぽいです>MSP430基板
22:42 from web (Re: @Sim0000
4096ツイート目だったらしい RT @Sim0000 @chobichan 同じものが2枚はいってるっぽいです>MSP430基板
by Sim0000 on Twitter