~ ワンチップマイコンの内蔵機能をPCで制御 ~
USB-SFR は,パソコンで動作するプログラムから,ワンチップマイコン内蔵の周辺機能を直接に制御するモジュールです。VB, C, Java などのプログラムから USB 経由でマイコンの特殊機能レジスタ(SFR)を読み書きすることで,組込み制御の基本が学べます。また,ホスト PC との通信を要する制御システムを PC 側のアプリケーション作成のみで構成できます。
◎ USB 接続し、仮想 COM ポートを通じて AVR マイコンの特殊機能レジスタ(SFR) を読み書き。
◎ I/Oポート(6bit)、ADC(10bit, 6ch)、コンパレータ、タイマ/カウンタ、USI, EEPROM を利用可能。
[ハードウェア]
USBポート付きパソコン
[OS]
Windows 2000/XP/Vista/7
MacOS 10.2~
Linux ~2.4 (2.6では カーネルへのパッチが必要。未サポート)
[通信方法]
VB6, VC++, C#, J# などのプログラム言語から COM ポートをアクセス。
(Java では RXTX などを導入してください。)
または汎用ターミナルソフトウェアからのマニュアル操作。
モジュールは部品キットで提供しています。添付の説明書に沿って半田付けしてください。完成したら Windows ではドライバをインストール(AVR-CDC)します。
ブレッドボードなどに取り付け、ポート(PA0)に抵抗(220~470Ω)とLEDを接続します。●マークがGND、右端が+3Vです。ハイパーターミナルから I/Oポートの ON/OFFを試してください。ターミナルはエコーにするとよいでしょう。他の設定(ボーレート、パリティなど)は適当でかまいません。
初期状態では "DDRA ? " と入れれば(末尾のスペースを忘れずに) "00" (PORTAはすべて入力)が返ります。
"01 DDRA = " (PA0 のみ出力)
"01 PORTA = " (PA0 の LED が点灯)
"00 PORTA = " (消灯)
プログラムでコマンド発行するときは、1コマンド送信するごとに応答(CR-LF)を確認してください。応答時間はシステム依存ですが、概ね1mSec以内です。
USB-SFR では Atmel 社の8ビットマイコン ATtiny44 を使用しています。データシート(英文)とサンプルプログラムを熟読して使い方を理解し ADC, タイマー、EEPROM などを制御してください。
| Function | Command | Format | Response |
| Who | @ | @ | "usbsfr", CR-LF |
| Get | ? | address ? | data, CR-LF |
| Set | => | data address = | CR-LF |
| AND & Set | & | data address & | CR-LF |
| OR & Set | | | data address | | CR-LF |
| EX-OR & Set | ^ | data address ^ | CR-LF |
| Set Double | $ | data2 data1 address $ | CR-LF |
基本は Get(読み出し)と Set(書き込み)の2つです。他に書き込み時の AND, OR, EX-OR演算と、連続書き込み(EEPROM用)です。データ値、アドレス値の後にコマンドを送ります。データ、アドレスは16進数のアスキーコードで、区切り文字はスペース、タブ、改行です。
例:
DDRA_?_ DDRA レジスタの値+改行を応答。
12_34_=_ データ(0x12)をレジスタ(0x34)に書き込む。改行を応答。
FB_PORTA_&_ PORTA の値を読み、0xFB と AND 演算して書き戻す。改行を応答。
SFRアドレスは "PINA", "DDRA", "PORTA" のみ内部定義しています。他はメモリマップ値で指定します。コマンド文字のみ送れば、前回のデータ、アドレス値を再利用します。
◎ DDRA, PORTA を読み書きするときは、最上位の2ビット(PORTA6,7)は必ず0にしてください。これらは USB 通信に使用しています。
◎ AVR は3Vで駆動しています。外部回路との接続に注意してください。基板右端ピンから3Vの電圧が得られます。I/Oポートに接続した負荷も含め、ここからの電流消費は 100mA 以内にしてください。
◎ AVR を再プログラムするときは、IC クリップを用いるか、リセット端子を基板から引き出してください。ISP でプログラムできますので、書き込み器を入手して最新ファームウェアにアップデートしてください。
USF-SFR とテスト用のサンプル回路は下図のとおりです。Cプログラム(Windows, Mac用)のサンプルを資料に入れてあります。Mac 用のバイナリは PPC 版です。
サンプルプログラムはコマンドプロンプトから、シリアルポートが COM7 なら sfrdemo 7 のように起動します。
(Mac 版はターミナルで起動。デバイスが /dev/cu.usbmodem123 なら sfrdemo 123、ただし PATH を通しておくこと)


統合型開発環境 AVR Studio と GCC コンパイラ(WinAVR) を使えば ATtiny44 のプログラムを改変できます(再プログラムには書き込み器が必要です)。
※ USB-SFRは組込みプログラミングを手軽に体験していただくためのものです。本格的な応用には、USBインターフェース内蔵のマイコンあるいは FTDI 社などのチップをお勧めします。
資料一式(回路、サンプル、ソースコード)
USB-SFR.2008-02-12.tgz
(114KB)
(Windows 用)
USB-SFR.2008-02-12.zip
(136KB)
回路例でのサンプルプログラムです。CDC-IO の解説とサンプルも参考にしてください(USB-SFR は CDC-IO の ATtiny44 版です)。
.NET2005 (VB, C#, C++) net2005.zip
(54KB)
2003 ( VB, C++, C ) vs2003.zip
(59KB)