できる!Bit Bangモード

Similar documents
表 信号端子 端子名 入出力 機能 DTR 出力 COM ポート DTR (Data Terminal Ready Control Output / Handshake Signal) RXD 入力 COM ポート RXD (Receiving Asynchronous Data Input) TX

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

EB-RL7023+SB/D2

- 2 -

機能 SB-2000 は無線機とコンピュータを接続するインターフェースです CAT, CI/V を経由したリグ制御 CAT や CI/V のリグ制御のインターフェースを持っています この接続でリグを制御できます RTTY, PSK31, SSTV, FAX, その他のデジタルモードが運用できます広く

AKI-PIC16F877A開発キット (Ver1

Photo Sensor – 적외선 센서

iCLR

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

KR-501 USB Serial Converter Module USB シリアル変換モジュール取扱説明書 Version2.3 対応版 USB Serial Converter はマイコンモジュールと PC 間を接続する際に使用する通信変換モジュールです ATMEGA Mini Module

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

MS5145、MS7120,USB通信の設定

1. はじめに 本書は 弊社 UHF 920MHz 帯リーダ ライタ ( 以下 リーダ ライタとします ) を使用し ソフトウエア開発を行なうため の開発情報について説明するものです Windows Microsoft Visual Studio Microsoft Visual C++.NET M

論文番号 分 2-2 平成 24 年度全国情報技術教育研究会第 41 回全国大会 ( 新潟大会 ) Xbee を活用した無線通信の研究 期日平成 24 年 8 月 9 日 ( 木 )~10 日 ( 金 ) 場所長岡市シティホールプラザ アオーレ長岡 香川県立三豊工業高等学校 電子科 本行

USB モジュール

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

TWE-Lite R 取扱説明書

Taro-82ADAカ.jtd

接続例 ピンアサイン ポート端子台 配線可能電線太さ : AWG 16~AWG 28 端子番号信号名 1 Data + 2 Data GND Data (=TxD + RxD) : 送受信データ ( 入出力 ) - は 無接続です ご注意 : 無接続端子の

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

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

Studuinoライブラリ環境設定Mac編

このダイナミックリンクライブラリ GaugeC48.dll は 8CH から 48CH 用の DigitalGaugeCounterDG3000 シリーズ共通の DLL です この説明書は GaugeC48.dll を使ったアプリケーションを作成するためのものです 開発環境は MicrosoftVi

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

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

商品番号 : UTS-422 USB-RS422( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-422 は RS-422 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS422 変換ケーブルです 最大 3Mbps

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

MS5145 USB シリアル エミュレーション モードの設定

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

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

PowerPoint プレゼンテーション

PSoC5LP で USBMIDI 2015/5/23 第 2 回 PSoC まつり (Sat) 於 本サイプレス本社 ( 中野 ) PSoC5LP で USBMIDI ectoyfan ectoyfan アラフィフ ( 電 回路玩具ファン ) Electronic Circui

Studuino ライブラリ環境設定Windows編

Microsoft PowerPoint - DIX9211_Mega8_R24.pptx

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

Microsoft Word - RefApp7インストールガイド.doc

PIC

FTDI USB-Serial Converter デバイスドライバのインストール(Rev.1.01)

MINI2440マニュアル

LR8400/8401/8402ロガーの無線LAN計測 設定方法

Microsoft Word - USB60F_Raspi_ doc

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

Photo Sensor – 적외선 센서

MINI2440マニュアル

ワイヤレスバーコードリーダー CM-520W1 設定資料 Bluetooth SPPの設定

訂正 _ 第 1 回 1 Arduino Arduino を用意する 入力 アナログ Analog 入出力 任意の電圧を扱える 電源系 外部入力 7 12V デジタル digital 入出力 リセットボタン Low High いわゆる 01 が入出力される 通常は Low 0V GND High 5

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

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

CommCheckerManual_Ver.1.0_.doc

IEEE1888 開発キットの活用 電力管理システムを作る 慶應義塾大学 メディアデザイン研究科 秋山寛子

【実験6】 各種USB-シリアル変換ケーブルで動作する通信速度の調査

RY_R8C38ボード RY-WRITER基板 自動書き込み・実行解説マニュアル

開発環境構築ガイド

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

外出先でもインターネット環境があればデジタルノード局の運用ができる WIRES-X ポータブルデジタルノード機能 ポータブルデジタルノード機能によって 旅行先の宿泊施設 空港 車両 Wi-Fi アクセスポイントなどからワイヤーズエックスのノード局やルームへの接続が可能となり 従来の HRI-200

Arduinoで計る,測る,量る

TF Series with Tio1608-D System Setup Guide

スライド 1

作成 承認 簡単取扱説明書 (S&DL 水位計 ) 応用計測サービス株式会社 (1.1)

起動画面

WinCT-AD4212D オペレーションマニュアルVer.1.01

Photo Sensor – 적외선 센서

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

msm2012_YOKOBORI

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

maxon hat den richtigen drive

電子13-06 エネメータ専用ソフト SAVER CAST for EneMeter Ver3.00設定方法.ppt

特徴 USB ポートを接続するだけ シリアルやパラレルの接続は不要です 多くの無線用ソフトウエアは制御に RS232C の COM ポートを使いますが 最近のパソコンには COM ポートがありません USB-RS232C 変換アダプタを内蔵しているので変換アダプタなど不要です USB から RS23

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

ETCB Manual

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

メモリハイロガーLR8431、熱流ロガーLR8432を無線LANで利用する方法

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

出荷一覧表をもう一度印刷したい

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

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

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

講習会 Arduino

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

目次 第一章インストールと製品登録 1.1 インストール & ライセンス認証 3 第二章製品活用 - Leawo itransfer 3.1 コンピュータのファイルを iphone に転送 iphone のファイルをコンピュータにバックアップ ファイルを itunes から

Microsoft Word - HOBO雨量専用説明書_v1.1.doc

接続例 仕様 商品番号 UMC-201 適合規格 ( 下記参照 ) USB 2.0/1.1 ケーブル長さ 1m パソコン側接続コネクタ USB A コネクタオス シリアルポート側コネクタ D-sub コネクタ 9pin オス ( 勘合固定ナット : インチ #4-40) 対応パソコン PC/AT 互

. 日本語版作成 : 日下覚第 1 版 :

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

リファレンスアプリケーション RefApp7

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

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

商品番号 : UTS-485 USB-RS485( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-485 は RS-485 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS485 変換ケーブルです 最大 1.2km

パーツリスト 組み立て前にすべてのパーツがそろっているかご確認ください 種類 品番 数 種類 品番 数 基板 I2C LCD 1 コンデンサ 0.1uF (104) 積層セラミック 1 IC ATtiny コンデンサ 10uF 電解 1 半固定抵抗 10~50kΩ 1 コネクタ IC ソ


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

開発環境構築ガイド

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

USB_IR_Remote_Controller_Advance_Library 取扱説明書 2016/06/23 R03 Assembly Desk USB_IR_Remote_Controller_Advance_Library を使用すると 弊社製 USB IR Remote controll

HDLトレーナーサンプルプログラム説明書

Microsoft Word - BluetoothV21接続手順書3_CM520BT.docx

Transcription:

できる!BIT BANG モード Y.TOMOHARA

自己紹介 TOMO @tomozh http://ore-kb.net 福岡市内の会社でソフト開発やってます 主にVisual C++,H8, 最近 Android 趣味でプログラミングと電子工作やってます マイコンは PIC AVR プログラミングは MSX BASIC ASM(Z80) C C++

アジェンダ PCインタフェースの昔と今 FTシリーズについて Bit Bangモードとは何か非同期 Bit Bangモード LED 点滅 SW 入力同期 Bit Bangモード I2Cで温度センサはまりどころ参考文献

PC インタフェースのむかし プリンタポート シリアルポートを使って比較的手軽に制御ができていた プリンタポート シリアルポート (RS-232C)

PC インタフェースのいま 昔出来ていたことが出来なくなった! プリンタポート シリアルポート (RS-232C) 全部 USB 化 デバイスドライバ USB プロトコルの実装 USB ベンダ ID の取得 Vista から WHQL 取得してないドライバはインストール時にやたら派手な警告が出るようになった アマチュアに優しくない昨今の PC 事情に絶望した!

そこに救世主が現れた! FTDI の FT シリーズ

FT シリーズについて FTDI 社の USB- シリアル /USB- パラレル変換 IC FT232:USB- シリアル FT245:USB- パラレル FT2232: 両方 PC からはシリアルポートに見える ( 専用のドライバで直接操作することも可能 )

FT シリーズ比較表 FT232/245B FT232/245R FT2232D/C/L FT232/2232H EEPROM 外付け内蔵外付け外付け 非同期 Bit Bang 同期 Bit Bang - CBUS BitBang - FT232 のみ USB I/F USB2.0 FS USB2.0 FS USB2.0 FS USB2.0 HS OSC 外付け内蔵外付け外付け 単価 @ 秋月電子 - 350 (FT232RL) 500 (FT2232D) - オススメ

FT232R の基本回路 部品が超少ない!

BIT BANG モードとはなに か? D0 D1 D2 D3 D4 D5 D6 D7 外部接続用の端子が関数一発で汎用の入出力端子になる!! FT232/2232 専用 (B シリーズ, FT245R 不可 ) FTProg で EEPROM に設定すればここも使える! ( しかし上のやつとは排他 )

2 種類のモード Bit Bang には 2 種類のモードがある! 非同期 Bit Bang モード 最初 (FT232B) からある 同期 Bit Bang モード FT232R で追加されてやっと使い物ちょっといい感じになった

BIT BANG モードを使うには ( ハード編 ) Bit Bang 対応の FTDI チップ FT232RL がおすすめ コネクタ付きのモジュールがもっとおすすめ FT232RL 秋月電子 AE-UM232R ( 950)

BIT BANG モードを使うには ( ソフト編 ) VC++ (Visual Studio) の開発環境 基本はC/C++ C# のWrapperがFTDIのサイトで公開されている Linux, mac 等でも開発できる ( らしい ) FTD2XXライブラリ ftd2xx.h ftd2xx.lib ftd2xx.dll FTDIのサイトからダウンロードできます

おおざっぱな流れ FT_SetBitMode で 端子単位で入出力の設定と Bit bang モードの有効化 FT_Write で端子へ出力 FT_Read または FT_GetBitMode で端子の状態取得 D0 D1 D2 D3 D4 D5 D6 D7 出力 入力 FT_SetBaudRate で転送速度を設定

非同期 BIT BANG モード FT_Write で設定されたバイト列を 端子から等間隔で出力する (FT_SetBitMode で出力設定された端子のみ ) 端子の状態を等間隔で入力する 受信したデータは FT_Read で取得 FT_GetBitMode を使えば最新の状態を取得できる 上記 2 つを非同期で行う

簡単!LED 点滅

ASYNCINPUT.CPP(1) #include <windows.h> #include ".. lib ftd2xx.h" #pragma comment(lib, ".. lib ftd2xx.lib") : FT_HANDLE hft; // 1 番目のデバイスをオープン FT_Open(0, &hft); // 明示的にリセット FT_SetBitMode(hFt, 0x00, FT_BITMODE_RESET); // 非同期 BitBang (b0-b7: 出力 ) FT_SetBitMode(hFt, 0xff, FT_BITMODE_ASYNC_BITBANG);

ASYNCINPUT.CPP(2) while(1) { unsigned char data; unsigned long written; // 出力バイト数 } // 右へ for(int i=0; i<8; i++) { data = (1<<i); // data の値をポートに出力 FT_Write(hFt, &data, 1, &written); Sleep(200); } : 左に流す処理は割愛 :

簡単! スイッチ入力

ASYNCOUTPUT.CPP(1) #include <windows.h> #include ".. lib ftd2xx.h" #pragma comment(lib, ".. lib ftd2xx.lib") : FT_HANDLE hft; // 1 番目のデバイスをオープン FT_Open(0, &hft); // 明示的にリセット FT_SetBitMode(hFt, 0x00, FT_BITMODE_RESET); // 非同期 BitBang (b0-b7: 出力 ) FT_SetBitMode(hFt, 0xff, FT_BITMODE_ASYNC_BITBANG); LED 点滅と同じ!

ASYNCOUTPUT.CPP(2) while(1) { unsigned char data; // ポートの値を data に格納 FT_GetBitMode(hFt, &data); printf("data=%02x n", data); } Sleep(200); 押したスイッチのビットが 0 になる

応用! 壁づたいネズミ 改

同期 BIT BANG モード 基本的な動きは非同期 Bit Bang モードと同じ 端子情報の入力と出力を同じタイミングで行う ( 厳密には 入力 出力の順 ) Clock t1 t2 t3 t4 t5 t6 D7..0 Current Data New Data WR# RD t1 t2 t3 t4 t5 t6 Application Note AN_232R-01 for the FT232R and FT245R Bit Bang Modes Version 2.02 3 Synchronous Bit Bang Mode

SYNCINOUT.CPP(1) FT_HANDLE hft; Include は省略 // 1 番目のデバイスをオープン FT_Open(0, &hft); // 転送速度を設定 FT_SetBaudRate(hFt, 9600); // タイムアウト設定 (Recv:1000ms, Send:1000ms) FT_SetTimeouts(hFt, 1000, 1000); // 明示的にリセット FT_SetBitMode(hFt, 0x00, FT_BITMODE_RESET); // 同期 BitBang (b0-b7: 出力 ) FT_SetBitMode(hFt, 0xff, FT_BITMODE_SYNC_BITBANG);

SYNCINOUT.CPP(2) const int DATA_LEN = 16; unsigned char writedata[data_len];// 送信データ unsigned char readdata[1024]; // 受信データ unsigned long byteswritten; // 出力バイト数 unsigned long bytesread; // 入力バイト数 for(int i = 0; i < DATA_LEN; i++) writedata[i] = i % 256; FT_Write(hFt, writedata, DATA_LEN, &byteswritten); dump("ft_write", writedata, byteswritten); FT_Read(hFt, readdata, sizeof(readdata), &bytesread); dump("ft_read", readdata, bytesread);

SYNCINOUT.CPP(3) 同期 Bit Bang は 1 クロックにつき入力 出力の順に処理するので FT_Read の結果は必ず FT_Write したものより 1 バイト古い ここでもう 1 回 1 バイトだけ FT_Write すると直前に出力した 0x0F が得られる

同期 BIT BANG で I2C 温度 計 同期 Bit Bang モードで簡易 I2C 通信をやってみる

概要 バイト配列に SDA,SCL の波形を作り込んでおき FT_Write でまとめて送信 同時に SDA,SCL の一連の変化が受信バッファに格納されるので FT_Read で読み取って I2C の受信データに変換 同期 Bit Bang なので N 番目の受信データ =N-1 番目の送信データが成り立つのでビット位置の関連づけができる

はまりどころ (1/5) 変更した設定は ソフトを終わらせても残っている ( 全部かは知らない ) FT_SetBitMode SetLatencyTimer など 初期値を期待して省略すると思わぬトラブルになるので 明示的に初期化しましょう

はまりどころ (2/5) 絶え間なく FT_Write しても出力に間隔が空くことがある FT232RL 921,600bps 設定 /1024 バイトのデータを連続送信し D0-7 を観測データは 00h~FFh の循環

はまりどころ (3/5) 基本的に等間隔で送信されない FT232RL 9,600bps 設定 /1024 バイトのデータを連続送信し D0-7 を観測データは 00h~FFh の循環

はまりどころ (4/5) FT_Write はブロッキングする FT_Write で送信している間に別スレッドで FT_Read しても FT_Write が完了するまで読み込まれなかった しかし FT_Write はなるべくまとめて送信した方が高速

はまりどころ (5/5) Bit Bang での転送速度が仕様書とかなり違う 仕様書には Bit Bang モード時の転送間隔は FT_SetBaudRate の値 16 と記載されているが 実測では 4 ぐらいになる FT232RL 9,600bps 設定時に約 38,000bytes/s

読むべきドキュメント類 http://www.ftdichip.com/support/ftdocuments.htm FT_000071:Software Application Development D2XX Programmer's Guide D2XX プログラマーズガイド AN232BM-01 Bit Bang モードの解説 (FT232/245B) AN_232R-01 Bit Bang モードの解説 (FT232/245R) AN232B-03 スループット改善の方法について

その他情報 西日本常盤商行 :USB Module D2XX や Bit Bang モードの解説 http://www.tokiwa-west.co.jp/usb_module/usb.htm ヒューマンデータ :USB 関連参考資料 資料多数 評価ボードの販売も行っている http://www.hdl.co.jp/usb/ftdi/index.html ore-kb.net:bit-bang モードの使い方 手前味噌ですが 自分のとこにも http://ore-kb.net/hard/bitbang/

ご清聴ありがとうございました!