============================================================================
 ソフト名称 : Amic2313
 バージョン : 2.06a
 製作者   : カスタムエンジ
 URL   : http://www.venus.dti.ne.jp/~kn2/customeng/
 連絡先   : 上記ホームページの連絡用フォームから
 動作環境  : Windows-PC(OSはWinXP以上、CPUは1GHz以上推奨、要COMポート)
 動作確認  : WinXP + Pentium4(R)_2.6GHz + 1GB_ROM(USB接続)
         WinVista + Core(TM)2_Duo_T7100_1.80GHz + 1GB_ROM(USB接続)
 制御対象  : AVRマイコン ATtiny2313-20PU(ATMEL)
 ソフト種別 : フリーソフト
 著作権   : 著作権は製作者が保有する
 改変等   : 著作権者の許可が必要
 転載    : 著作権者の許可が必要
 免責事項  : 本ソフトの利用によって生じたすべての障害や損失に対して
         著作権者は一切の責任を負わない。
============================================================================

【 目 次 】

 ・概 要

 ・使用条件 ←重要!

 ・インストールの方法

 ・アンインストールの方法

 ・使用手順

 ・操作方法

 ・レスポンス

 ・補足事項

 ・うまく動かないとき

 ・カスタマイズ

 ・更新履歴


【 概 要 】----------------------------------------------------------------

  このソフトは、COMポートを利用して AVRマイコン ATtiny2313 の指定ピン10本
  の入出力をパソコンから簡単に制御するためのものです。
  
  これによりUSBを用いた外部機器制御が容易かつ安価に実現できます。
  
 主な特徴:

  ◆実行ファイルをコマンドラインオプション付帯で起動させる方法により、
   ショートカットやバッチファイル、コマンドプロンプト、あるいは
   さまざまな外部アプリケーションから容易に操作できます。

  ◆コマンドラインオプションの付帯なしで起動させて、専用画面から直接
   パラメータ入力して操作することもできます。

  ◆入出力方向を選択できます(マイコンポート単位)。

  ◆指定ピンへ ON/OFF/反転/ステータス表示 がオーダーできます。

  ◆PWM出力ピンへは デューティー比をオーダーできます(Ver2.00〜)。

  ◆複数のオーダーを一括して送信できるため、実処理に迅速に反映できます。

  ◆単独で指定時間動作遅延させることができます(Ver2.01〜)。

  ◆マイコンからのレスポンス文字列をログファイルに出力するため、
   フィードバック制御やエラー制御などに応用できます。
  
  使用に当たっては、指定回路の作成、別途VCPドライバーのダウンロードとインス
  トール、マイコンプログラム書込環境などが必要です。
  

【 使用条件 】重要!--------------------------------------------------------

 機能不具合を確認した場合は最大限の努力を持って改善に努めますが、
 本ソフト使用によって生じた障害や損失に対して当方は一切責任を負いません。
 また使用者への情報提供やアドバイスに対しても当方は一切責任を負いません。
 (もしこれらについて保障するとなると、リスク回避のためにあらかじめ高額な
  使用料を負担いただかなくてはならなくなってしまいます。)

 上記のことをご理解ご承諾いただける方のみ本ソフトをご使用ください。


【 インストールの方法 】----------------------------------------------------

 ダウンロードした圧縮ファイルを任意の場所で解凍すると、
 「amic2313」というフォルダを生成します。その中には以下のファイルがあります。
 
   amic2313.exe  Amic2313 PC用プログラム
   amic2313.hex  Amic2313 マイコン用プログラム(標準タイプ)
   amichiz.hex   Amic2313 マイコン用プログラム(Hi-Zタイプ)
  response.log  レスポンスログ(テキスト形式)
    readme.html   説明書ファイル(このファイル)
    hspext.dll   プラグインモジュール
    動作テスト.bat 動作テスト用バッチファイル
 
 この時点で最初にダウンロードした圧縮ファイルは不要となりますので削除して
 もらってかまいません。
  

【 アンインストールの方法 】------------------------------------------------

 amic2313フォルダを丸ごと削除してください。
 マイコンについてはライターにて「erase」処理をすると内部プログラムが消せます。


【 使用手順 】--------------------------------------------------------------

 ■ STEP1 ■ 部品の調達
 
  以下のページの回路図を参考に必要な部品を調達して下さい。
  http://customeng.blog110.fc2.com/blog-entry-16.html
  基板の他ブレッドボードや出力確認用の抵抗(1kΩ)、LEDなども別途に用意して
  おくと役に立ちます。
  
 ■ STEP2 ■ マイコンのヒューズビット設定と HEXファイル書込
  
  マイコンのプログラムライターがない場合は ■ STEP3 ■へ進んで下さい。
  
  マイコンのプログラムライターがある場合、まずATtiny2313 のヒューズビットで
  システムクロックを「内蔵RC8MHz(分周なし)」に設定します。間違えると最悪
  マイコンが応答しない状況に陥りますのでくれぐれも慎重に行って下さい。
  
  ヒューズビットの設定が終わったら、先に生成した「amic2313」ホルダー内にある
  マイコン用プログラム(下記参照)をATtiny2313へ書き込んでください。
 
  ※マイコン用プログラムについて
 
   マイコン用プログラムは入力方式が異なる2種類を用意しています。用途に
   合わせていずれかを選択してください。
  
   「amic2313.hex」(標準)
    入力設定ピンはマイコンの内部抵抗によりプルアップされ、開放時はHigh
    (5V弱)の状態です。外付け抵抗等を経由してGNDに繋ぐことでLow状態に
    なります。
    外付けスイッチなど接点の短絡/開放で入力する場合に適しています。
    
   「amichiz.hex」(Hi-Zタイプ)
    入力設定ピンはハイインピーダンスの状態になっており、外部より3〜5.5V
    がもたらされるとHigh、0〜1.5VがもたらされるとLow状態になります。
    他のマイコンや半導体素子の出力を入力とする場合に適しています。

   なお、出力設定ピンの動作はどちらのプログラム用いても同じです(ONで5V、
   OFFでGND)。
  
 ■ STEP3 ■ 回路の作成
  
  以下のページを参考に回路を作成して下さい(ただしUSBケーブルは繋がないこと)。
  http://customeng.blog110.fc2.com/blog-entry-16.html
  動作テストが十分に済むまではブレッドボード上に作成することをお勧めします。
  作成後は回路図と同じになっているかよく確認して下さい。重大な間違いがあると
  部品が破損する恐れがあります。
  
 ■ STEP4 ■ ジャンパ他の設定
 
  回路内J1〜4のジャンパを変更することで回路の設定を変えることが出来ますが、
  動作テストが終了するまでは以下のように設定して下さい。
  
   J1(AE-UM232R基板上):1-2間をジャンパで短絡
   J2(AE-UM232R基板上):ジャンパで短絡
   J3:ジャンパで短絡
   J4:ジャンパで短絡

  また、SW1についてはOFFにしておいてください。
  
 ■ STEP5 ■ USBケーブルの接続
 
  パソコンとAE-UM232RをUSBケーブルで繋ぎます。この時LED1が点灯することを
  確認して下さい。しない場合は回路やジャンパ設定に間違いがないか確認して
  下さい。
  
  正しく接続されるとWinXPやVistaでは自動的にVCP(仮想COMポート)ドライバ
  のインストールが始まるはずです。インターネットに接続されていないなどの
  理由で自動的に始まらない場合は別途手動にてインストールして下さい。
  VCPドライバは以下のページから入手出来ます。
  http://www.ftdichip.com/Drivers/VCP.htm
    
 ■ STEP6 ■ COMポートの確認と設定
 
  Windowsのスタートメニューから設定→コントロールパネル→システム→
  ハードウェア(XPの場合)→デバイスマネージャ→ポート と進み、
  「USB Serial Port(COMx)」という項目が生成されていることを確認します。
  (生成されていない場合はUSBケーブルの接続が正しく行われていないか、VCP
  ドライバがインストールされていないなどの理由が考えられます。)
  この項目名の「COMx」の数字xが以降の「接続COMポート番号」になりますので
  ド忘れしそうな方はどこかに控えておいて下さい。
  
  さらに「USB Serial Port(COMx)」→ポートの設定(英語では Port Setting)
  を開き、各値を以下のように設定します。
  
   ビット/秒:(マイコンヒューズビット設定済の場合)57600
         (     〃     未設定の場合) 4800
   データビット:8
   パリティ:なし(None)
   ストップビット:1
   フロー制御:なし(None)
  
  マイコンヒューズビット設定済の場合はさらに下部の「詳細設定(Advanced)」
  を進み、「BMオプション」の値を最小の1msecに設定します。
  
  設定後は何度か「OK」を押して戻り、システムのプロバティを閉じて下さい。
  
 ■ STEP7 ■ マイコンのヒューズビット設定と HEXファイル書込
  
  STEP2で既にマイコンのヒューズビット設定と HEXファイル書込が済んでい
  る場合は ■ STEP8 ■へ進んで下さい。
  
  未実施の場合、作成したこの回路をプログラムライターとして動作させ、
  マイコンのヒューズビット設定と HEXファイル書込を行う事が出来ます。
  以下のページに詳しく紹介されていますので参照・実行して下さい(3章目〜)。
  ただし、システムクロックは必ず「内蔵RC8MHz(分周なし)」に設定して
  下さい(16進の場合、Lfuseを「E4」に設定すればok)。
  
  「(番外) FTDI BitBang AVR-Writer(Kimio Kosaka氏公開)」
  http://www.geocities.jp/arduino_diecimila/avr-writer/index.html
  
  設定及び書込の内容は前述 ■ STEP2 ■ に準じます。
  
  設定と書込が済んだら ■ STEP6 ■ のポートの設定と詳細設定のBMオプション
  をヒューズビット設定済の値にし、必ず最後に回路のSW2(AE-UM232Rリセッ
  ト用)を押してリセットを掛けて下さい(重要!)。
  
 ■ STEP8 ■ 動作テスト
  
  先に生成した「amic2313」ホルダー内にある「動作テスト.bat」ファイルを起動
  すると、コマンドプロンプト窓が開き、接続COMポート番号の入力を求めてきます
  ので、■ STEP6 ■ で表示された番号をキーボードから半角数字で入力し、ENTER
  キーを押せば動作テストが始まります。
  
  テストが完了すると「response.log」が開き、マイコン(ATtiny2313)からの
  レスポンス送信内容が表示されますのでその内容を確認します。以下のように
  文字列が並んでいればとりあえずは正常動作です。
  
   0 が縦に10個
   ok が縦に10個
   1 が縦に10個
   ok が縦に10個
   0 が縦に10個
   
  err など他の文字列が存在したり、表示個数が少なかったり、所々空白や文字化
  けあるいは行ズレなどが発生している場合は異常です。まずは配線やジャンパ
  設定を確認し問題ない場合は、接続COMポートの設定で BMオプションの値を変えて
  何度かテストしてみて下さい。
  
  確認が終わったら「response.log」を閉じて下さい。連動してコマンドプロンプト
  窓も閉じます。
  
 ■ STEP9 ■ 指定入出力ピンの入出力方向の変更、給電方法の変更
  
  指定入出力ピンの入出力方向を変更する場合や、回路の電源を外部給電に変更す
  る場合は、一旦USBケーブルを抜き、J1〜4のジャンパ設定や外部電源の接続した
  後、再度USBケーブルを繋ぎ、必要に応じてSW1をONにします。
  
 以上で Amic2313 を使用する準備は整いました。


【 操作方法 】-------------------------------------------------------------

 Amic2313 の操作方法はコマンドラインオプションを用いる方法と、専用画面へ
 パラメータ入力する方法の2種類に大別されます。
 
 ◆コマンドラインオプションを用いる方法
 
  amic2313.exeへのショートカットやバッチファイル、コマンドプロンプト、
  あるいは外部アプリケーションなどからコマンドラインオプションを用いて
  実行する方法です。
  
  送信するコマンドラインの基本的な書式は以下のようになります。
  (使用するアプリケーションによって書式が若干異なります。)
 
  [パス名] [半角スペース] [COMポート番号] [:] [パラメータ] [パラメータ]...
    @     A       B     C    D

  @ 実行ファイル(amic2313.exe)へのパス名です。ショートカットからの起動や
    バッチファイルではパス名中に空白があるとうまく動作しない場合があります
    ので念のため「""」で括っておくのが良いと思います。
    
  A 起動オプションを区別するために半角のスペースを入れます。当方制作の
    「Mission Reflector Fast」のミッションファイルに記載する場合は
    半角スペースではなく「&」を入れます。
     
  B 接続COMポート番号を半角英数で記載します。
  
  C パラメータと区別するため :(半角コロン)を入れます。
  
  D パラメータを半角英数字で記載します。パラメータは複数繋げて記載可能で、
    左側のパラメータから順次実行されます。
    
    個々のパラメータは以下の3つの要素で構成されます。
   
   <第1要素> ポート記号他
   
    制御対象にする指定入出力ピンのポート記号(BまたはD)を記載します。
    ピンをチャンネル番号で指定する場合は N を記載します。
    
    PWM出力調整をする場合は W 、動作遅延時間の設定は T を記載します。
    
    入出力方向設定(J3及びJ4)の状態取得をする場合は A を記載します。 
    
    いずれも半角英字であれば、大文字/小文字の別は問いません。
        
   <第2要素> ビット番号他
   
    制御対象にする指定入出力ピンのビット番号もしくはチャンネル番号を半角
    数字で記載します。(マイコンのピンとチャンネル名の対応は回路図を参照
    下さい。)
    
    PWM出力調整をする場合はPWM出力番号(0または1)を半角数字で記載します。
    (対象ピンとPWM出力番号は回路図を参照下さい)。
    
    動作遅延時間を設定する場合は設定値(単位:秒)の2桁目の数値(0〜9の整数)
    を半角数字で記載します。10秒未満の遅延を設定する場合は必ず 0 を記載
    して下さい(省略不可)。
    
    入出力方向設定の状態取得をする場合は、対象ピン番号(0または1)を半角数
    字で記載します。 

   <第3要素> オーダー他
   
    制御対象にする指定入出力ピンへのオーダー種類を半角数字で記載します。
    オーダーは基本的に次の4種類です。
    
     0 → 出力をOFF(Low)にする。入力ピンではオーダー不可(errになる)。
     1 → 出力をON(High)にする。入力ピンではオーダー不可(err)。
     2 → 出力を反転(トグル)する。入力ピンではオーダー不可(err)。
     3 → ステータス(ON/OFF状況)をレスポンスする。
     
    PWM出力調整を行う場合には、出力レベル値(0〜9の整数)を半角数字で記載
    します。出力レベル値はデューティー比(1周期におけるON時間の割合)を
    10倍したもので、実質の出力電圧(V)≒出力レベル値×0.5 となります。
    なお対象ピンに対して、通常のON出力をオーダーすれば PWM出力レベル値10、
    OFF出力をオーダーすれば PWM出力レベル値0と同等です。
    
    動作遅延時間を設定する場合は、設定値(単位:秒)の1桁目の数値(0〜9の整
    数)を半角数字で記載します。
   
    入出力方向設定の状態取得をする場合は、3 を半角数字で記載します。 
   
  ●記載例(基本)
   
   仮に COM5ポートに接続していて、amic2313.exe が「 C:\amic2313 」にある
   場合、ショートカット、バッチファイル、コマンドプロンプトなどで
     
     "C:\amic2313\amic2313.exe" 5:B01B11B21B31B41
   
   と記載して実行すると PB0、PB1、PB2、PB3、PB4 の5つのピンが ON します。
   ちなみに以下のようにチャンネル番号で指定しても全く同じ内容です。
     
     "C:\amic2313\amic2313.exe" 5:N51N61N71N81N91
     
   当方制作「Mission Reflector Fast」のミッションファイルへは、
     
     exec/S=C:\amic2313\amic2313.exe&5:n51n61n71n81n91
     
   と記載すれば同等です。
   
   
  ●PWM出力調整の記載例
  
   (諸条件は前記載例と同じ)ショートカット、バッチファイル、コマンドプ
   ロンプトなどで
   
     "C:\amic2313\amic2313.exe" 5:W03W17
   
   と記載して実行すると PWM0(PB2)の出力レベルが3、PWM1(PB3)の出力レベル
   が7になります。
   
   もちろん以下のように他のパラメータと合わせて記載しても構いません。
   
     "C:\amic2313\amic2313.exe" 5:N51N61W09W19N91
     
     
  ●動作遅延時間の記載例
  
   (諸条件は前記載例と同じ)ショートカット、バッチファイル、コマンドプ
   ロンプトなどで
   
     "C:\amic2313\amic2313.exe" 5:N01T05N00
   
   と記載して実行すると CH0(PD2) をONして5秒後に CH0(PD2)をOFFにします。
   
   1つのパラメータで指定できる最大遅延時間は 99秒です。これを超える値を
   設定したい場合は、以下のように複数のパラメータで指定することで可能に
   なります。
   
     "C:\amic2313\amic2313.exe" 5:w09t60t60t60w01
     
     
  ●入出力方向設定状態取得の記載例
  
   (諸条件は前記載例と同じ)ショートカット、バッチファイル、コマンドプ
   ロンプトなどで
   
     "C:\amic2313\amic2313.exe" 5:A03A13
   
   と記載して実行すると PA0(J4接続) と PA1(J3接続)の状態が response.log
   にレスポンスされます。レスポンスの内容は入力設定ピンでステータスをオ
   ーダーした場合に準じます。
   
   
 ◆専用画面を用いる方法
   
   Amic2313 はあくまで前述「コマンドラインオプションを用いる方法」が
   メインですが、コマンドラインオプションを記載せずにamic2313.exeを起動
   した際にエラーを出したり無動作にするのはもったいない気がしたので、
   専用画面を起動してそこに接続COMポート番号とパラメータを記載して動作さ
   せることが出来るようにしました。
   
   記載書式は以下の通り(パス名と半角スペースは不要)で、
   内容は前述「コマンドラインオプションを用いる方法」に準じます。
   
    [COMポート番号] [:] [パラメータ] [パラメータ]...
   
   これを入力窓内に記載しENTERキーを押す度に内容が送信・実行されます。
   専用画面を閉じ終了する場合は画面右上の×ボタンをクリックします。
   

【 レスポンス 】-----------------------------------------------------------

 命令を受信したマイコン(ATtiny2313)は実行処理を行い、所定の文字列を返信
 します。Amic2313 はこれを response.log に記録します。この内容を分析すれば
 エラー制御やフィードバック制御などに応用できます。
 
 <書式>
 
  1パラメータに対して1つのレスポンスが、1行づつ下行に向かって記載され
  ます。正常状態では空白行は発生しません。
  
 <書込>
 
  ・コマンドラインオプションで実行する場合
  
   Amic2313 が全てのパラメータを実行処理して終了する際に、受信した全ての
   レスポンスをまとめて response.log に上書きします。
  
  ・専用画面で実行する場合
  
   専用画面 が起動すると response.log の内容は一旦消去され、ENTERキーを
   押して記載した全てのパラメータの実行処理が完了する毎に、受信した全て
   のレスポンスをまとめて追記していきます。
  
 <内容>
 
  ok → 出力設定ピンに ON/OFF/反転 のいずれかのオーダーが送られ、マイコ
     ンが正常に処理した場合。

   0 → オーダーに「ステータス」を送信した場合のレスポンスで、対象ピンが
     「Low状態」であることを示す(注記参照)。
      
   1 → オーダーに「ステータス」を送信した場合のレスポンスで、対象ピンが
     「High状態」であることを示す(注記参照)。
      
  err → マイコンで正常処理できないパラメータを、PC側から送信した場合。
     (例:入力設定ピンに出力オーダー、不当文字列など)
     
  COMMAND ERROR → 接続COMポート番号とパラメータの間に仕切り記号 : が存在
           しないとき。
     
  COM PORT ERROR → 接続COMポート番号が不正な場合、あるいは USBケーブルが
           正しく接続されていない場合。

  DATA OUTPUT ERROR → パラメーター送信エラー。
 
  DATA INPUT ERROR → レスポンス取得エラー。
             
  (その他の文字列や空白) → 不明なエラー
  
 <注記>

   ・出力設定ピンのステータスは、0の場合OFF、1の場合ONであることを示します。
   PWM対象ピン出力時のステータスは、出力レベル0(OFF)の場合を0(Low状態)、
    それ以外は1(High状態)とみなしてレスポンスされます。
    
   ・入力設定ピンのステータスは、0の場合Low状態、1の場合High状態を示しますが、
    それぞれON/OFFのどちらに対応するかは、マイコン用プログラムの選択や
    入力回路に依存します。
   
   ・動作遅延パラメータ送信に対して文字列のレスポンスはありません。
   
   ・英大文字で記載されたエラーは PC側システムによる割込記載です。これらの
    エラーが発生した場合 Amic2313 は残りの処理を中断して即時終了します。
   

【 補足事項 】-------------------------------------------------------------

 ・Amic2313 ではエラー発生を受けてのリトライ処理は一切行っていません。
  必要な場合は response.log の内容を基にご自身でプログラムを組むか、
  有償カスタマイズをご依頼ください。

 ・ジャンパーの設定変更は、完全に電源を落としてから行って下さい。
  特にJ3とJ4についてはマイコンプログラムがリセットされた状態でないと設定が
  有効になりません。
 
 ・PWM出力周波数は約16KHzです(PWM0、PWM1とも)。
 
 ・ATtiny2313の許容消費電流は最大200mA、各入出力ピンの定格は40mAです。
  負荷を接続する際にはこれを上回らないよう十分考慮して下さい。
 
 ・amic2313.exe は終了毎に接続 COMポートを開放しています。
 
 ・当方ではUSBでしか動作確認していませんが、AE-UM232R のかわりに ADM3202AN
  を使うとシリアルケーブルで接続しても動かせるのではないかと思います。
 
 ・最新情報はホームページで公開されます。

  カスタムエンジ
  http://www.venus.dti.ne.jp/~kn2/customeng/
  
  研究室
  http://customeng.blog110.fc2.com/blog-entry-16.html
  

【 うまく動かない時 】------------------------------------------------------

 Amic2313 が思うように動かない時は以下のことを確認してください。

  ■1:デバイスドライバは正しくインストールされているか?
  ■2:パソコンがCOMポート接続機器を認識しているか?
  ■3:ケーブルがパソコンのCOMポートに正しく接続されているか?
     (接続するケーブルの品質精度にも影響されます。)
  ■4:ケーブルを接続したCOMポートを正しく指定しているか?
  ■5:回路の電源は入っているか?電源の仕様は適切か?
  ■6:回路の配線は正しいか?ジャンパの設定は正しいか?
  ■7:接続COMポートの設定は適切な値になっているか?
     (必要に応じてビット/秒やBMオプションの値を変えてみる)
  ■8:接続COMポートがビジーになっていないか?
     (外部の別ソフトが占有していたり高速制御していると使用できません。)
  ■9:ソフトの設定に不備はないか?
     (記入間違い、記入落ち、必要箇所の誤削除、余計な記述等)
  ■10:ソフトは最新版か?
     (最新版では過去の不具合が改善されている可能性があります。)
  ■11:ノイズや電波等の影響を多大に受けていないか?
     (ノイズ等の影響を多大に受けると正常に動作しない場合があります。
     白熱電灯やヒータなどの「抵抗負荷」に比べ、送風機やモータなどの
     「誘導負荷」が与える影響は大きく、状況次第では事前に物理的対策
     を講ずる必要があります。)


【 カスタマイズ 】----------------------------------------------------------

  当方では、配布しているソフトをユーザー様の仕様に基づき有償でカスタマイズ
  いたします。見積は無料です。お気軽にご相談ください。 メールフォーム 


【 更新履歴 】--------------------------------------------------------------

  2009-04-27:β版公開開始。
  
  2009-04-29:Ver1.00
       (専用画面でENTERキー高速連打時にフリーズする不具合を修正)
  
  2009-04-30:Ver1.01
       (専用画面で英大文字の入力がエラーになる不具合を修正)
  
  2009-05-02:Ver2.00
       (PWM出力機能を追加)
  
  2009-05-06:Ver2.01
       (動作遅延機能を追加、送受信手順の合理化他)
  
  2009-05-08:Ver2.02
       (実行速度の向上)
  
  2009-05-20:Ver2.03
       (実行速度の大幅な向上、レスポンス書込についての説明を修正他)
  
  2009-05-21:Ver2.04
       (レスポンス文字列受信安定化)
  
  2009-05-22:Ver2.05
       (レスポンス受信アルゴリズム変更による安定高速化他)
  
  2009-05-25:Ver2.06
       (マイコン用プログラム更新、入出力方向設定状態取得機能追加)
  
  2010-01-12:Ver2.06a
       (マイコン用プログラム(Hi-Zタイプ)追加)
 

Producted by CustomEng.