Microsoft Word - PIC-IOアプリケーションノート.doc

Similar documents
橡vb_kikai0.PDF

Microsoft Word - PIC-P28-USBマニュアル.doc

Microsoft Word - PIC-P14マニュアル.doc

PowerPoint プレゼンテーション

スライド 1

UIOUSBCOM.DLLコマンドリファレンス

slide5.pptx

(Microsoft Word - VB6_VBA\215\354\220\254\216\350\217\207\201i\211\374\222\371\224\305\201j doc)

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

IM_J_BIND

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

スライド 1

Photo Sensor – 적외선 센서

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

VFD256 サンプルプログラム

橡WINAPLI.PDF

CommCheckerManual_Ver.1.0_.doc

目 次 1. All-In-One プリンタユーティリティ概要 All-In-One プリンタユーティティについて 対応プリンタ機種 システム要件 セットアップ方法 All-In-One プリンタユーティリテ

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

プログラミングA

[参考資料] Bluetooth対応タブレットでインターネット(MSP1000)

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

プログラミングA

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を

PowerPoint プレゼンテーション

導入手順 1Forex Tester 2 のソフトをダウンロードしソフトをダウンロードし保存保存するする 下記 URL をクリックし Forex Tester の公式公式ページへアクセスし Download ボタンをクリックボタンをクリック ファイルをダウンロードしてください

RsMulti の取扱説明 「RS232C で直接接続する(LAN を使用しない場合)」

モデム コマンドに関するガイドライン

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

1. 入力画面

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

ex04_2012.ppt

PIC

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

AN424 Modbus/TCP クイックスタートガイド CIE-H14

目次 1. 概要 動作環境

3 1EEPROMElectrically Erasable PROM PROMProgrammable ROM 2 EEPROM 3

P7000_P6000バージョンアップ

BASICとVisual Basic

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

目次 2 1 PC Control Utility PD 1 について 動作環境

株式会社日新テクニカ USB シリアル CAN 変換器 /8/22 ホームページ : メール

DWR-R02DN Updater 取扱説明書 発 :2015/10/30

TF Series with Tio1608-D System Setup Guide

計算機プログラミング

Microsoft Word - Manage_Add-ons


DWR-S01D Updater 取扱説明書 発行日 :2011/2/28

【注意事項】RX Driver Package、 RXファミリ RTC モジュール Firmware Integration Technology

現行のICカードリーダRW4040インストーラの課題

untitled

GR-SAKURA-SAのサンプルソフト説明

<4D F736F F D208DEC90AC837D836A B81698F4390B394C5816A2E646F63>

コンピュータ概論

Microsoft Word - Win-Outlook.docx

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

Microsoft Word - マイコンを用いた信号# doc

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

スライド 1

Microsoft Word - 本文.doc

EB-RL7023+SB/D2

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

ETCB Manual

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

製åfi†æ¡‹åƒ–.xlsx

ExcelVBA

Microsoft Word - PrivateAccess_UM.docx

untitled

DWT-B01 Updater 取扱説明書 発行日 :2011/3/23

ワイヤレスセンサモジュール取扱説明書

Microsoft Word - アプリケーションノート_Vehicle-SpyEEVBデモガイド編_A02.docx

Viewgo波形の連続格納ソフト

Verilog HDL による回路設計記述

Maser - User Operation Manual

BIOSセットアップメニュー 一覧

mPOP プリンタソフトウェア インストールマニュアル

Si 知識情報処理

DSP5Dアップグレードガイド

MINI2440マニュアル

ここをクリックしてダウンロードする ダウンロードした zip ファイルを解凍する とインストーラが現れます インストーラを 起動してインストールを開始しましょう イ ンストーラの [ Next > ] ボタンを押してい けばインストールできます ライセンスの画面では I accept the ter

1 1 TA, ,9 1. ( 2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test)

プレポスト【解説】

Flash Loader

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

LANdeVOICE PBSP-SIO (I/O接点付き)

FTDI Driver Error and Recovery Procedure Check FTDI driver operation Rev :OK, Rev :NG, Rev :NG May 11, 2017 CHECK FTDI DRIVER

DWR-P01DN Updater 取扱説明書 発 :2015/10/30

FA/LAインストールガイド(トライアル版)

Raspberry Pi (Windows10 IoT Core) を使用したリーダ ライタの制御例 (UART 接続 ) 2018 年 12 月 18 日第 版 株式会社アートファイネックス

Java講座

コンピュータ概論

Nios II Flash Programmer ユーザ・ガイド

Transcription:

イントロダクション : PIC-I/O アプリケーションノート OLIMEX 社のPIC-I/Oは 小さくても かなり使える開発ボードです 4つのオプトアイソレータ付きの入力ポート 4つのリレー (220V 10A) による出力ポートが搭載されているので 自宅でいろんな機器をオン オフできます ( 注意 :AC100Vを取り扱う場合 特に敷設する場合は 第 2 種電気工事士の資格が必要です 詳しくはマイコンキットドットコムのWEBをご覧ください ) このボードは PLC( 高速電力線コントローラ ) モジュールのように 家の中で離れた場所 ( 部屋 ) の機器をRS232を通してPCから制御できるボードです 入力チャネルからの信号はPICにより解析され そして処理されます 同時にPICは入力から またはPCからの制御信号により出力を制御します この短いアプリケーションノートでは PC から グラフィカル ユーザー インターフェイス (GUI) を使用して出力をオン オフする方法を説明しています このアプリケーションノートで説明しているサンプルソフトウェアを使えば PC から簡単に機器 ( 照明 小さなモーター スプリンクラーなど ) を制御できます オプトアイソレータ入力 シリアルポート 電源ジャック リレー出力 このアプリケーションノートで使う物 : 1 PIC-I/O 開発ボード 1 16F628マイクロコントローラ (PIC-I/Oに互換性のあるPICであれば これ以外でも使えると思いますが動作確認は16F628でしか行っておりません ) 1 PIC-PG1プログラマ (PICをプログラムするため) 1 シリアルケーブル ( 作業しやすい適当なもの ) 1 12V 電源 1 Visual Basic 6.0 stdio.c はhttp://www.olimex.cl/soft/pic/stdio.c からダウンロードできます

このアプリケーションノートで行うこと : 1.PCからPICにコマンドを送ります 2.PICはこのコマンドを解釈します 3.PICは受け取ったコマンドに従って出力を制御します PIC 側が行うこと : まず PCとPIC-I/Oボードとの間でやりとりされる プロトコル を定義しなければなりません ここで使われる プロトコル ( コマンド ) は以下のとおりです : O < 出力チャンネル番号 > < 出力チャンネル状態 > 各項の説明 : O ( オー ) は 英大文字の O ( オー ) です < 出力チャンネル番号 > は オンオフする出力を識別するチャンネル番号です 入力可能な値は 1 2 3 4です < 出力チャンネル状態 > は チャンネルの状態を示します その状態は A でアクティブ( オン ) D でディアクティブ ( オフ ) であることを示します ここで2つの例を紹介します : コマンド O1A は チャンネル1 番の出力をオン ( アクティブ ) にします コマンド O4D は チャンネル4 番の出力をオフ ( ディアクティブ ) にします このコマンドはシリアルケーブルを通してPCからPIC-I/Oボードに送られます このテストでは PCに標準で付属されているハイパーターミナルを使用します その設定は 9600 8 N 1としてください ここでは PIC がどのように このコマンドを受けて動くのかを説明します このドキュメントの C ソースコードは コピーしてそのまま使えます なぜ C 言語を使うのか? それは アセンブラよりも取り扱いが簡単だからです 下記のソースコードをコンパイルするために cc5x を使用しています もし PIC マイクロコントローラの C ソースコードのコンパイル方法がわからない場合は 下記の WEB を参照してください ( 英語 )

http://www.sparkfun.com/tutorial/setup_space/setting_up_your_space.htm このソースコードで行っていることは いつ PIC が PC からのコマンドを受け取ったかをインターラプトにより確認する処理です 最後の 3 文字を保存し 次に PIC は 0x0D (ASCII コードで改行の意味 ) コードを受け取ったときに そのシーケンスが正しいシーケンスかどうかチェックします. #define HS_Osc #define Serial_Out_BB RB2 #define Serial_In_BB RB7 #define Baud_9600 #include "c:\cc5x\16f628.h" //Compiler specific header file #include "c:\cc5x\int16cxx.h" //General Interrupts header file #pragma origin 4 //Manditory when interrupts are used #define TRUE 1 #define FALSE 0 bit print_it; bit start_record; uns8 data_in; uns8 data_last1; uns8 data_last2; uns8 data_last3; uns8 memory_array[8]; uns8 mem_spot; interrupt serverx(void) int_save_registers char sv_fsr = FSR; // save FSR if required if(rcif) //UART Recieve Interrupt data_in = RCREG; print_it = TRUE; //No clearing RCIF, must clear RCREG RCREG = 0; FSR = sv_fsr; // restore FSR if saved int_restore_registers #include "c:\cc5x\delay.c" // Delays #include "c:\cc5x\stdio.c" // Software and Hardware based RS232 Signals #pragma config = 0x3F02 //HS Oscillator, CProtect off, WDT off void main()

PORTA = 0b.0000.0000; TRISA = 0b.0000.0000; //0 = Output, 1 = Input PORTB = 0b.0000.0000; TRISB = 0b.0000.0010; //0 = Output, 1 = Input - RB1 on the 16F628 is RX of the UART uns8 x; RB5 = 1; //Turn on the on-board LED mem_spot = 0; uns16 button_monitor = 0; enable_uart_tx(0); //Turn on Transmit UART with TX Interupts Disabled enable_uart_rx(1); //Turn on Receive UART with RX Interupts Enabled char aux; aux = 0x0000; while(1) if (print_it == TRUE) //We have something to record GIE = 0; print_it = FALSE; button_monitor = 0; //Reset the LED blinker //Store the incoming data to the memory array memory_array[mem_spot] = data_in; mem_spot++; if (mem_spot > 8) mem_spot = 0; if (data_in == 0x0D && mem_spot>3) //0x0D is ENTER in ASCII code rs_out(12); data_last1 = memory_array[mem_spot-2]; data_last2 = memory_array[mem_spot-3]; data_last3 = memory_array[mem_spot-4]; if(data_last3 == 'O') switch (data_last2) case '1': if (data_last1 == 'A') aux = 0x08; if (data_last1 == 'D') aux &= 0xF7; PORTA = aux; break; case '2': if (data_last1 == 'A') aux = 0x04; if (data_last1 == 'D')

default: break; mem_spot = 0; GIE = 1; aux &= 0xFB; PORTA = aux; break; case '3': if (data_last1 == 'A') aux = 0x02; if (data_last1 == 'D') aux &= 0xFD; PORTA = aux; break; case '4': if (data_last1 == 'A') aux = 0x01; if (data_last1 == 'D') aux &= 0xFE; PORTA = aux; break; CREN = 0; CREN = 1; PC 側が行うこと : //Blinks the LED when the counter called button_monitor rolls over if(button_monitor == 0xFFFF) RB5 ^= 1; button_monitor++; 前述したようにPCはハイパーターミナルを使用してPICにコマンドを送ります でも もっと使いやすいグラフィカルなユーザーインターフェイスを使いたいと思います そこで Visual Basic 6を使用して 簡単なグラフィク ユーザー インターフェイスを作ります このソフトでは 各リレーにオン / オフスイッチとCOMポートセレクタを付けています まず オン / オフボタンの処理ルーチンを説明します

Private Sub OutOn_Click(Index As Integer) MSComm1.Output = "O" Delay MSComm1.Output = Chr$(Index + &H30 + 1) Delay MSComm1.Output = "A" Delay MSComm1.Output = Chr$(13) LedOn (4 + Index) End Sub ご覧になるとわかるように PICに一文字送るごとに少しウェイト時間を入れてPICの処理を待っています 次のような命令文となります : MSComm1.Output = Chr$(Index + &H30 + 1) 各ボタンには番号が付いており それぞれのルーチンを呼ぶときに そのボタンの番号がパラメータとして使われます 上記の命令は この番号をASCIIに変換し シリアルポートをとおして送ります (ASCIIコードについては www.asciitable.com を参照してください ) MSComm1.Output = Chr$(13) シリアルポートに Enter( 改行 ) 文字を送ります (ASCII 表で 13 は 0x0D Enter( 改行 ) の意味 )

VB6 でシリアルポートを制御する場合は このルーチンを使用してください : Private Sub Command1_Click() If Command1.Caption = "Open" Then MSComm1.CommPort = Text1.Text MSComm1.PortOpen = True Command1.Caption = "Close" Else MSComm1.PortOpen = False Command1.Caption = "Open" End If End Sub Private Sub CheckRxData(incomingChars As String) crpos = InStr(1, incomingchars, Chr$(13), vbbinarycompare) If crpos <> 0 Then rxline = Mid(incomingChars, 1, crpos - 1) For i = 2 To 5 If Mid(rxLine, i, 1) = "A" Then LedOn (i - 2) Else LedOff (i - 2) End If Next i End If End Sub Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comeventbreak Debug.Print "comeventbreak" Case comeventframe Debug.Print "comeventframe" Case comeventoverrun Debug.Print "comeventoverrun" Case comeventrxover Debug.Print "comeventrxover" Case comeventrxparity Debug.Print "comeventrxparity" Case comeventtxfull Debug.Print "comeventtxfull" Case comeventdcb Debug.Print "comeventdcb" Case comevcd Debug.Print "comevcd" Case comevcts Debug.Print "comevcts" Case comevdsr Debug.Print "comevdsr" Case comevring Debug.Print "comevring" Case comevreceive CheckRxData (MSComm1.Input) Case comevsend Debug.Print "comevsend" Case comeveof Debug.Print "comeveof" End Select End Sub

必要なファイルはすべて以下のWEBからダウンロードしてください : http://www.olimex.cl/pic-io.zip このインターフェイスを使う場合は その使用しようとしているPCのCOMポートは使用可能であることを確認してください ポートを選択した後は open ボタンをクリックし 次に任意のオン/ オフボタンをクリックしてください

ハードウェア :

重要 : 著作権 2007 Olimex Ltd 著作権所有 Olimex そのロゴ またそれらの組み合わせたものはOlimex Ltd. の登録商標です その他の製品名は それぞれの所有者の商標です 本書の内容は Olimex 製品に関して提供されているものです 知的所有権に関する許諾は 明示的または黙示的であるとを問わず この書類によって またはOlimex 製品の購入によって与えられるものではありません この書類に記載されている情報 または製品に関して すべてまたはその一部でも 事前の著作権所有者による許諾無しに 利用または複製することは禁じられています この書類に記載された製品は 常に改良または改善されることをご承知ください この書類に記載されている技術情報そしてその製品は OLIMEX 社から誠意をもってご提供させていただいているものです しかし 保証に関してはこの限りではなく 市場性または適正に関しては 明示的または黙示的であるとを問わず 除外されます この書類は 当該製品の使用者を支援するためにだけ考慮されたものです OLIMEX 社は 情報の欠落または誤りにより または製品の使用により発生したいかなる損失 あるいは損害に対して 一切の法的義務を持たないことをご承知おきください