PICkit 3 Starter Kit User’s Guide

Size: px
Start display at page:

Download "PICkit 3 Starter Kit User’s Guide"

Transcription

1 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 2015 Microchip Technology Inc. DS41628B_JP

2 Microchip 社製デバイスのコード保護機能に関して以下の点にご注意ください Microchip 社製品は 該当する Microchip 社データシートに記載の仕様を満たしています Microchip 社では 通常の条件ならびに仕様に従って使用した場合 Microchip 社製品のセキュリティレベルは 現在市場に流通している同種製品の中でも最も高度であると考えています しかし コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です 弊社の理解では こうした手法は Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます Microchip 社は コードの保全性に懸念を抱いているお客様と連携し 対応策に取り組んでいきます Microchip 社を含む全ての半導体メーカーで 自社のコードのセキュリティを完全に保証できる企業はありません コード保護機能とは Microchip 社が製品を 解読不能 として保証するものではありません コード保護機能は常に進歩しています Microchip 社では 常に製品のコード保護機能の改善に取り組んでいます Microchip 社のコード保護機能の侵害は デジタルミレニアム著作権法に違反します そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合 デジタルミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります 本書に記載されているデバイスアプリケーション等に関する情報は ユーザの便宜のためにのみ提供されているものであり 更新によって無効とされる事があります お客様のアプリケーションが仕様を満たす事を保証する責任は お客様にあります Microchip 社は 明示的 暗黙的 書面 口頭 法定のいずれであるかを問わず 本書に記載されている情報に関して 状態 品質 性能 商品性 特定目的への適合性をはじめとする いかなる類の表明も保証も行いません Microchip 社は 本書の情報およびその使用に起因する一切の責任を否認します 生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入者のリスクとし また購入者はこれによって発生したあらゆる損害 クレーム 訴訟 費用に関して Microchip 社は擁護され 免責され 損害を受けない事に同意するものとします 暗黙的あるいは明示的を問わず Microchip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標 Microchip 社の名称とロゴ Microchip ロゴ dspic FlashFlex KEELOQ KEELOQ ロゴ MPLAB PIC PICmicro PICSTART PIC 32 ロゴ rfpic SST SST ロゴ SuperFlash UNI/O は 米国およびその他の国におけるMicrochip Technology Incorporated の登録商標です FilterLab Hampshire HI-TECH C Linear Active Thermistor MTP SEEVAL Embedded Control Solutions Company は 米国におけるMicrochip Technology Incorporatedの登録商標です Silicon Storage Technology は 他の国における Microchip Technology Inc. の登録商標です Analog-for-the-Digital Age Application Maestro BodyCom chipkit chipkit ロゴ CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense HI-TIDE In-Circuit Serial Programming ICSP Mindi MiWi MPASM MPF MPLAB Certified ロゴ MPLIB MPLINK mtouch Omniscient Code Generation PICC PICC-18 PICDEM PICDEM.net PICkit PICtail REAL ICE rflab Select Mode SQl Serial Quad I/O Total Endurance TSHARC UniWinDriver WiperLock ZENA および Z-Scale は 米国およびその他の Microchip Technology Incorporated の商標です SQTP は 米国における Microchip Technology Incorporated のサービスマークです GestIC および ULPP は Microchip Technology Inc. の子会社である Microchip Technology Germany II GmbH & Co. & KG 社の他の国における登録商標です その他本書に記載されている商標は各社に帰属します 2015, Microchip Technology Incorporated, All Rights Reserved. ISBN: Microchip 社では Chandler および Tempe ( アリゾナ州 ) Gresham ( オレゴン州 ) の本部 設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949: 2009 認証を取得しています Microchip 社の品質システムプロセスおよび手順は PIC MCU および dspic DSC KEELOQ コードホッピングデバイス シリアル EEPROM マイクロペリフェラル 不揮発性メモリ アナログ製品に採用されています さらに 開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています DS41628B_JP - p Microchip Technology Inc.

3 目次 Chapter 1. 概要 1.1 はじめに ハイライト 新機能 キットの内容 PICkit 少ピン開発ボード ソフトウェアの概要 デモの実行 Chapter 2. PIC MCU のアーキテクチャ 2.1 はじめに コアの基礎 データ / プログラムバス アキュムレータ 命令 バイト指向 ビット指向 リテラル 制御 スタックレベル メモリ構成 プログラムメモリ フラッシュプログラムメモリ コンフィグレーションワード デバイス ID リビジョン ID ユーザ ID データメモリ コアレジスタ 特殊機能レジスタ 汎用 RAM 共通 RAM バンク データ EEPROM メモリ プログラミングの基礎 MPASM アセンブラの動作 XC8 の動作 アセンブラでの数値表現 XC8 コンパイラでの数値表現 Microchip Technology Inc. DS41628B_JP - p.3

4 Chapter 3. レッスン 2.17 MPASM アセンブラのディレクティブ Banksel cblock Org (addr) End Errorlevel #include レッスン レッスン 1: Hello World (LED の点灯 ) レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語 レッスン 2: LED 点滅 レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語 レッスン 3: ローテート レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語 レッスン 4: A/D 変換 レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語 レッスン 5: 可変速ローテート レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語...62 DS41628B_JP - p Microchip Technology Inc.

5 3.7 レッスン 6: デバウンス レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ PIC C 言語 レッスン 7: 方向切り換え付き可変速ローテート レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語 レッスン 8: パルス幅変調 (PWM) レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ アセンブリ レッスン 9: Timer レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ アセンブリ C 言語 レッスン 10: 割り込みとプルアップ レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ C 言語 レッスン 11: 間接アドレス指定 レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ言語 C 言語 レッスン 12: ルックアップテーブル レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶレジスタ 新しく学ぶ命令 Microchip Technology Inc. DS41628B_JP - p.5

6 アセンブリ言語 C 言語 レッスン 13:EEPROM レッスンの紹介 ハードウェアの動作 概要 新しく学ぶレジスタ 新しく学ぶ命令 アセンブリ言語 C 言語...95 補遺 A. ブロック図と MPLAB X IDE のショートカット A.1 MPLAB X IDE の便利なショートカット...98 A.2 レジスタ名の定義...98 A.3 PIC MCU のアセンブリコーディング作法...98 DS41628B_JP - p Microchip Technology Inc.

7 まえがき お客様へのご注意 全ての文書の内容は時間と共に古くなります 本書も例外ではありません Microchip 社の製品は お客様のニーズを満たすために常に改良を重ねており 実際のダイアログやツールが本書の説明とは異なる場合があります 最新の文書は弊社ウェブサイト ( で公開しています 文書は DS 番号で識別します この識別番号は 各ページのフッタのページ番号の前に記載しています DS 番号 DSXXXXXA の XXXXX は文書番号 A は文書のリビジョンレベルを表します 開発ツールの最新情報は MPLAB X IDE のオンラインヘルプで提供しています [Help] メニューから [Topics] を選択すると オンラインヘルプファイルのリストが表示されます はじめに 本書の構成 この章には PICkit 3 スタータキットを使い始める前に知っておくと便利な一般情報を記載しています 主な内容は以下の通りです 本書の構成 本書の表記規則 保証登録 推奨参考資料 Microchip 社のウェブサイト 開発システムの顧客変更通知サービス カスタマサポート 改訂履歴 本書では PICkit 3 スタータキットを開発ツールとして使って ターゲット基板のファームウェアのエミュレーションとデバッグを行う方法を説明します 以下に本書の構成を示します セクション第 1 章 概要 セクション第 2 章 PIC MCU のアーキテクチャ セクション第 3 章 レッスン 補遺 A. ブロック図と MPLAB X IDE のショートカット 2015 Microchip Technology Inc. DS41628B_JP - p.7

8 本書の表記規則 本書では以下の表記規則を適用します 本書の表記規則表記 意味 例 Arial/MS ゴシックフォント : 二重かぎカッコ : 参考資料 MPLAB IDE ユーザガイド テキストの強調... は唯一のコンパイラです... 角カッコ : [ ] ウィンドウ名 [Output] ウィンドウ ダイアログ名 [Settings] ダイアログ メニューの選択肢 [Enable Programmer] を選択 かぎカッコ : ウィンドウまたはダイアロ Save project before build グのフィールド名 右山カッコ (>) を使い 角カッコ メニューパス File>Save で囲まれた下線付きテキスト 角カッコで囲んだ太字のテキ ダイアログのボタン [OK] をクリックする スト タブ [Power] タブをクリックする N Rnnnn Verilog 形式の数値 : N は総桁数 R は基数 n は各桁の値 4 b hf1 山カッコ (< >) で囲んだテキストキーボードのキー <Enter> <F1> を押す Courier New フォント : 標準の Courier New サンプルソースコード #define START ファイル名 autoexec.bat ファイルパス c:\mcc18\h キーワード _asm, _endasm, static コマンドラインオプション -Opa+, -Opa- ビット値 0, 1 定数 0xFF, A 斜体 変数の引数 file.o (file は有効な任意のファイル名 ) 角カッコ : [ ] オプションの引数 mcc18 [options] file [options] 中カッコとパイプ文字 : { } どちらかの引数を選択する errorlevel {0 1} 場合 (OR 選択 ) 省略記号... 繰り返されるテキスト var_name [, var_name...] ユーザが定義するコード void main (void) {... } DS41628B_JP - p Microchip Technology Inc.

9 まえがき 保証登録 推奨参考資料 同封の保証登録カードにご記入の上 お早めに郵送してください 折り返し製品のアップデート情報をお届けします ソフトウェアのマイナーリリースは弊社ウェブサイトで提供しております 本書では PICkit 3 スタータキットの使い方を説明しています その他の便利な文書を 以下に一覧でご紹介します 以下の Microchip 社文書を推奨します PICkit 3 スタータキットの Readme ファイル PICkit 3 スタータキットの使い方についての最新情報は MPLAB X IDE のインストール先ディレクトリの Readmes サブディレクトリにある Readme for PICkit 3 Starter Kit Board User s Guide.txt ファイル (ASCII テキストファイル ) を参照してください Readme ファイルには 本書に記載できなかった最新情報と既知の問題を記載しています PIC16(L)F1825/29 データシート (DS41440) このデータシートは PIC16F1829 の機能についてまとめています PIC18(L)F1XK22 データシート (DS41365) このデータシートは PIC18F14K22 の機能についてまとめています Readme ファイルその他のツールの使い方についての最新情報は MPLAB X IDE のインストール先ディレクトリの Readmes サブディレクトリにある各ツールの Readme ファイルを参照してください Readme ファイルには 本書に記載できなかった最新情報と既知の問題を記載しています 2015 Microchip Technology Inc. DS41628B_JP - p.9

10 Microchip 社のウェブサイト Microchip 社は自社が運営するウェブサイト ( を通してオンラインサポートを提供しています 当ウェブサイトでは お客様に役立つ情報とファイルを簡単に見つけ出せます お好みのインターネットブラウザを使って以下の内容をご覧になれます 製品サポート データシートとエラッタ アプリケーションノート サンプルコード 設計リソース ユーザガイドとハードウェアサポート文書 最新ソフトウェアリリース ソフトウェアアーカイブ 一般的技術サポート よく寄せられる質問 (FAQ) 技術サポートのご依頼 オンラインディスカッショングループ Microchip 社のコンサルタントプログラムおよびメンバーリスト ご注文とお問い合わせ 製品セレクタと注文ガイド 最新プレスリリース セミナー / イベントの一覧 お問い合わせ先 ( 営業所 / 販売代理店 ) の一覧 開発システムの顧客変更通知サービス Microchip 社の顧客変更通知サービスは お客様に Microchip 社製品の最新情報をお届けするサービスです ご興味のある製品ファミリまたは開発ツールに関する変更 更新 リビジョン エラッタ情報をいち早くメールにてお知らせします Microchip 社のウェブサイト にアクセスし [Customer Change Notification] からご登録ください 以下の開発システム製品カテゴリをお選び頂けます コンパイラ - Microchip 社の C コンパイラとその他の言語ツールの最新情報です これには HI-TECH C C16 MPLAB C18 MPLAB C30 C コンパイラ MPASM および MPLAB ASM30 アセンブラ MPLINK および MPLAB LINK30 オブジェクトリンカ MPLIB および MPLAB LIB30 オブジェクトライブラリアンが含まれます インサーキットデバッガ Microchip 社の MPLAB ICD 2 MPLAB ICD 3 PICkit 3 インサーキットデバッガの最新情報です MPLAB X IDE - Microchip 社の MPLAB IDE( 開発システムツール向け Windows 統合開発環境 ) の最新情報です これには MPLAB X IDE MPLAB SIM シミュレータ MPLAB IDE プロジェクトマネージャ 一般的な編集およびデバッグ機能が含まれます プログラマ - Microchip 社のプログラマの最新情報です これには MPLAB PM3 デバイスプログラマと PICkit 3 開発用プログラマが含まれます DS41628B_JP - p Microchip Technology Inc.

11 まえがき カスタマサポート 改訂履歴 Microchip 社製品をお使いのお客様は 以下のチャンネルからサポートをご利用頂けます 販売代理店 弊社営業所 技術サポートサポートは販売代理店までお問い合わせください もしくは弊社までご連絡ください 本書の末尾には各国営業所の一覧を記載しています 技術サポートは下記のウェブページからもご利用頂けます リビジョン A (2012 年 10 月 ) 本書は初版です リビジョン B (2012 年 11 月 ) セクション 表 3-15 を改訂しました 2015 Microchip Technology Inc. DS41628B_JP - p.11

12 NOTES: DS41628B_JP - p Microchip Technology Inc.

13 第 1 章概要 1.1 はじめに 本章ではキットに含まれるハードウェアを紹介し ソフトウェアのダウンロードとインストール方法についても簡単に説明します 1.2 ハイライト 本章の内容は以下の通りです - 新機能 - キットの内容 - PICkit 少ピン開発ボード - ソフトウェアの概要 - デモの実行 1.3 新機能 このキットは PICkit 2 スタータキットの後継製品です 従来の少ピン開発ボード (DM ) を改良し デバッグヘッダなしでコードの全機能をデバッグできるようにしています ソフトウェアも新しい技術に対応するため更新しました 以下に新機能の一覧を示します 1. アセンブリと C の両言語でソフトウェアを提供 2. レッスンおよびモジュールの数を拡充 3. 従来の MPLAB 8 に加えて MPLAB X をサポート 4. 新しいエンハンストミッドレンジ PIC16 および PIC18 のルーチンを提供 5. ユニバーサル XC8 コンパイラを使用 以下に PICkit 少ピン開発ボードの変更点を示します 1. ポテンショメータを RA4 に接続 ( 以前は RA0) 2. スイッチを RA2 に接続 ( 以前は RA3) この少ピン開発ボードは以前のものと互換です 以前のピンを新しいピンに接続すると 以前の機能に戻せます 1.4 キットの内容 1. PICkit 3 プログラマ (x1) 2. マイクロ USB ケーブル (x1) 3. PICkit 少ピン開発ボード ( 製品番号 :DM ) (x1) 4. PIC16F1829-I/P (x1) 5. PIC18F14K22-I/P (x1) 13 のレッスンはウェブからダウンロードできます PIC16F1829 は新しいエンハンストミッドレンジデバイスで 従来のミッドレンジ PIC16 MCU より多くの機能をサポートしています このキットに付属のソフトウェアは PIC16F1829 と PIC18F14K22 をサポートしています このソフトウェアはこれら 2 つのデバイスで動作するよう作成してありますが 他のデバイスにも容易に移植できます 2015 Microchip Technology Inc. DS41628B_JP - p.13

14 1.5 PICkit 少ピン開発ボード 18 ピン PIC MCU を使うにはボードに若干の変更が必要です 14 ピンおよび 20 ピン PIC MCU は全てのインターフェイスデバイスを利用できます 8 ピン PIC MCU を使う場合はピンと LED を接続し直す必要があります スイッチとポテンショメータは 8 ピンデバイスがサポートするピンに接続済みです このボードは LED の横に穴を設けてあり ハードウェアの変更が必要な場合は簡単にはんだ付けできます この基板は PICkit プログラマ等のインサーキットシリアルプログラマ (ICSP ) でプログラムできます この基板には 5 V を供給します 図 1-1 に PICkit 少ピン開発ボードを示します 図 1-1: PICkit 少ピン開発ボードのレイアウト ICSP Programming Header External Power 20-pin DIP Socket 14-pin Expansion Header Generous Prototyping Area Push Button Potentiometer LEDs 表 1-1 に このボードに付属する 2 つの PIC MCU に接続されている部品を示します 表 1-1: ピン割り当て デバイス LED <DS4:DS1> スイッチ SW1 ポテンショメータ RP1 PIC16F1829 <RC3:RC0> RA2 RA4 PIC18F14K22 <RC3:RC0> RA2 RA4 1.6 ソフトウェアの概要 本書は 読者に電子工学の基礎知識がある事を前提としています PIC MCU のプログラミング経験がなくてもかまいませんが プログラミングに関する基礎知識やビットとバイトの違いといった基礎知識は必要です DS41628B_JP - p Microchip Technology Inc.

15 概要 1.7 デモの実行 このソフトウェアはアセンブリと C で記述してあり MPLAB X 統合開発環境 (IDE) と MPLAB 8 IDE の両方のプロジェクトを含んでいます アセンブリで記述したコードは行数が多く複雑ですが PIC MCU のハードウェアと密接に関係しているため C と一緒にアセンブリも学習すると理解が深まります C 言語は高級言語であるため プログラムの流れを容易に理解できます 各レッスンにはアセンブリと C の両方のコードがあり どちらも機能は同じです ほとんどのレッスンは前のレッスンで学んだ内容を基にしているため レッスンは順番通りに進める事を推奨します 各レッスンでは それぞれ新しい周辺モジュールまたは概念を学びます 本書をお読みになる際は 必ずソースコードを参照してください エンハンストミッドレンジと PIC18 のコードを順に紹介し その相違点について説明します このボードのデバイスには 本書のレッスンが 1 つプログラム済みです このプログラムを実行するには 電源ヘッダ (P2) に 5 V を印加するか プログラマヘッダ (P1) にプログラマを接続して IDE を使ってプログラマから 5 V を供給します デモプログラムを実行すると 4 つの LED が 1 つずつ順番に点灯します ( ローテート ) プッシュボタン (SW1) を押すと ローテートの方向が反転します ポテンショメータ (RP1) を回すとローテートの速度が変わります このデモプログラムは 本書のレッスン 1 ~ 7 の内容に基づいて作成しています 2015 Microchip Technology Inc. DS41628B_JP - p.15

16 NOTES: DS41628B_JP - p Microchip Technology Inc.

17 第 2 章 PIC MCU のアーキテクチャ 2.1 はじめに 本章では エンハンストミッドレンジ PIC16F1829 (DS41440) と PIC18F14K22 (DS41365) のアーキテクチャを説明します 2.2 コアの基礎 エンハンストミッドレンジ PIC16 MCU と PIC18 MCU は改良型ハーバードアーキテクチャを採用しており プログラムメモリとデータメモリが独立しています このアーキテクチャではコード命令とデータに同時にアクセスできるため より高速な実行が可能です 現在の命令をデコードおよび実行中に 次の命令をフェッチします 図 2-1 と図 2-3 から分かるようにデータバスとプログラムバスが分離しています 本書では これらの図に記載されたレジスタとモジュールのほとんどを取り上げます 各ブロックの連携を理解するため 以下のブロック図を参照しながら各レッスンを進めてください 図 2-1: エンハンストミッドレンジ PIC MCU の概略ブロック図 15 Configuration 15 Data Bus Program Counter 8 MUX Flash Program Memory 16-Level 8 Stack (13-bit) (15-bit) RAM Program 14 Bus Instruction Reg reg Direct Addr 7 8 Program Memory Read (PMR) 5 BSR FSR Reg reg FSR1 reg Reg 12 RAM Addr Addr MUX Indirect Addr FSR0 reg Reg STATUS Reg reg Power-up Timer 3 MUX OSC1/CLKIN OSC2/CLKOUT Instruction Decode and & Control Timing Generation Oscillator Start-up Timer Power-on Reset Watchdog Timer Brown-out Reset 8 ALU W Reg Internal Oscillator Block VDD VSS 2015 Microchip Technology Inc. DS41628B_JP - p.17

18 図 2-2: エンハンストミッドレンジ PIC MCU の概略データブロック図 Program Flash Memory RAM EEPROM OSC2/CLKOUT Timing Generation PORTA OSC1/CLKIN INTRC Oscillator CPU PORTB MCLR 図 2-1 PORTC PORTD SR Latch ADC 10-Bit Timer0 Timer1 Timer2 Timer4 Timer6 Comparators PORTE LCD ECCP1 ECCP2 ECCP3 CCP4 CCP5 MSSP EUSART Note: 周辺モジュールの詳細は 各モジュールに対応する章を参照してください Note 1: See applicable chapters for more information on peripherals. DS41628B_JP - p Microchip Technology Inc.

19 PIC MCU のアーキテクチャ 図 2-3: PIC18 の概略ブロック図 Table Pointer<21> inc/dec logic Address Latch Program Memory Data Latch 8 Instruction Bus <16> Data Bus<8> 8 8 PCLATU PCLATH PCU PCH PCL Program Counter 31-Level Stack STKPTR Table Latch ROM Latch Data Latch PORTA RA0 Data Memory RA1 (512/768 bytes) RA1 Address Latch 12 Data Address<12> BSR FSR0 Access Bank FSR1 FSR2 12 inc/dec logic Address Decode PORTB RA3 RA4 RA5 RB4 RB5 RB6 RB7 IR OSC1 (2) OSC2 (2) MCLR (1) VDD, VSS Internal Oscillator Block LFINTOSC Oscillator 16 MHz Oscillator Instruction Decode and Control Single-Supply Programming State machine control signals Power-up Timer Oscillator Start-up Timer Power-on Reset Watchdog Timer Fail-Safe Clock Monitor 8 PRODH PRODL 8 x 8 Multiply 3 8 BITOP W ALU<8> 8 Precision FVR Band Gap Reference PORTC RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 BOR Data EEPROM Timer0 Timer1 Timer2 Timer3 FVR CVREF Comparator ECCP1 MSSP EUSART ADC 10-bit FVR CVREF Note 1: RA3 を使うには MCLR 機能を無効にする必要があります 2: OSC1/CLKIN と OSC2/CLKOUT は 特定のオシレータモードにおいてこれらのピンをデジタル I/O として 使っていない場合のみ使えます 2015 Microchip Technology Inc. DS41628B_JP - p.19

20 2.3 データ / プログラムバス 2.4 アキュムレータ データバスはポートピンを介してデバイス外部および全ての周辺レジスタ ( 例 : タイマ ADC PWM) に接続しています プログラムバスは プログラムが格納されるフラッシュメモリに接続しています アセンブル済みのコードはここに書き込まれます アキュムレータはワーキングレジスタ (WREG) の 1 つだけです アキュムレータは算術演算等データバスに関連する全タスクを処理します ALU が扱うデータサイズは 8 ビットで 8 ビット MCU の名称はここに由来します 2.5 命令 命令は PIC MCU が実行すべき処理の内容 ( ビットシフト ジャンプ等 ) を指示します プログラムメモリに格納されるプログラムで中心的な役割を果たすのが命令です エンハンストミッドレンジ PIC MCU 全てで命令数は 49 個のみです PIC18 には 75 個の命令があります PIC MCU はごくわずかの命令を覚えるだけで良く RISC( 縮小命令セットコンピューティング ) プロセッサと呼ばれます 各命令の詳細は この後のレッスン時に説明します ここでは各命令の基本構成について説明します 1 命令サイクルは 4 クロックサイクルで構成されます つまり PIC MCU の動作周波数が 4 MHz の場合 1 命令の実行には 1 µs かかります ( 式 2-1 参照 ) 式 2-1: 命令実行時間 T clock cycle = FOSC 4 * T = = = 1 µ s FOSC 4 MHz 基本的に命令は全て 1 命令サイクルで実行されます 例外は条件テストが真の場合 またはプログラムカウンタ (PC) が変わる場合です これらの場合には NOP (No Operation) 命令サイクルが追加される 実行に 2 命令サイクルを要します 例 2-1 例 2-1: BTFSS PORTA, RA0 この命令はピン RA0 が High (= 1) の場合のみ 2 命令サイクルかかります これはスキップ動作によってプログラムカウンタの値が変化するためです PIC18 は エンハンストミッドレンジ PIC16 アーキテクチャに比べワードサイズが拡張されています PIC18 のワードサイズは 16 ビット幅で この中にオペコードと必要な全てのオペランドを含みます エンハンストミッドレンジ PIC16 のワードサイズは 14 ビット幅です オペコードは各命令に固有で プロセッサによって解釈されます オペコードのフォーマットには以下の 4 つがあります 1. バイト指向 2. ビット指向 3. リテラル 4. 制御 DS41628B_JP - p Microchip Technology Inc.

21 PIC MCU のアーキテクチャ 2.6 バイト指向 エンハンストミッドレンジ PIC16 のバイト指向命令は全て 6 ビットのオペコード 7 ビットのファイルアドレス 1 ビットの結果格納先ビットで構成されます PIC18 のバイト指向命令は全て 6 ビットのオペコード 8 ビットのファイルアドレス 1 ビットの結果格納先ビット 1 ビットの RAM アクセスビットで構成されます これら全てのビットフィールドのサイズを合計すると エンハンストミッドレンジ PIC16 コアの場合は命令ワードサイズの 14 ビット幅に一致します 同様に PIC18 の場合も全てのビットフィールドのサイズを合計すると 16 ビット幅のワードサイズに一致します バンクセレクトレジスタ (BSR) を使ってユーザがバンクを選択する場合 PIC18 の RAM アクセスビット (a) をセットします PIC16 の場合 ディレクティブの banksel を使って常に正しいバンクに切り換える必要があります これは 最初のいくつかのレッスンで説明します 結果格納先ビット (d) は 結果を WREG に格納するか元のファイルレジスタに書き戻すかを指定します d = 0 の場合は結果を WREG レジスタに格納します d = 1 の場合は結果をファイルレジスタに書き込みます ファイルレジスタ (f) は どのレジスタを使うかを指定します 特殊機能レジスタ (SFR) または汎用レジスタ (GPR) を指定できます 例 2-2: ADDWF data,f 2.7 ビット指向 この命令は WREG の内容と data を加算し 結果をファイルレジスタ data に書き戻します PIC18 では あるファイルレジスタのデータを WREG を使わずに別のファイルレジスタへ直接移動できます エンハンストミッドレンジ PIC16 アーキテクチャでは データ移動は必ず WREG 経由で行います ビット指向命令はファイルレジスタの特定の 1 ビットに対して演算を実行します これらの命令はファイルレジスタの特定の 1 ビットをセットまたはクリアします また ファイルレジスタの特定のビットを検査する事もできます エンハンストミッドレンジ PIC16 のビット指向命令は全て 4 ビットのオペコード 7 ビットのファイルアドレス 3 ビットのビットアドレスで構成されます PIC18 のビット指向命令は全て 4 ビットのオペコード 8 ビットのファイルアドレス 3 ビットのビットアドレス 1 ビットの RAM アクセスビットで構成されます 例 2-3: BSF PORTA,RA0 この命令は PORTA レジスタのピン RA0 をセットします 2.8 リテラル リテラル命令は 命令内にデータオペランドを含みます どちらのアーキテクチャも 8 ビットの即値を使います 残りのビットはオペコードに使います 例 2-4: MOVLW A この命令は A の ASCII 値 (0x41) を WREG に格納します 2015 Microchip Technology Inc. DS41628B_JP - p.21

22 2.9 制御 プログラムカウンタに格納するプログラムメモリのアドレスを指定する命令を制御命令と呼びます これには call goto branch が含まれます これらの命令はそれぞれワード長が異なります 詳細は 各 PIC MCU のデータシートで 命令セットのまとめ の章を参照してください DS41628B_JP - p Microchip Technology Inc.

23 PIC MCU のアーキテクチャ 図 2-4: エンハンストミッドレンジ PIC16 命令の一般的な形式 Byte-oriented file register operations OPCODE d f (FILE #) d = 0 for destination W d = 1 for destination f f = 7-bit file register address Example Instruction ADDWF MYREG, W Bit-oriented file register operations OPCODE b (BIT #) f (FILE #) b = 3-bit bit address f = 7-bit file register address Literal and control operations General OPCODE k (literal) BSF MYREG, BIT k = 8-bit immediate value CALL and GOTO instructions only OPCODE k (literal) k = 11-bit immediate value MOVLW 0x45 MOVLP instruction only OPCODE k (literal) k = 7-bit immediate value CALL LABEL MOVLB instruction only OPCODE k (literal) MOVLP 15 k = 5-bit immediate value BRA instruction only OPCODE k (literal) MOVLB 3 k = 9-bit immediate value FSR Offset instructions OPCODE n k (literal) n = appropriate FSR k = 6-bit immediate value BRA LABEL FSR Increment instructions OPCODE n m (mode) n = appropriate FSR m = 2-bit mode value ADDFSR FSR1, 3 OPCODE only 13 0 OPCODE MOVIW ++FSR Microchip Technology Inc. DS41628B_JP - p.23

24 図 2-5: PIC18 の命令の一般的な形式 Byte-oriented file register operations OPCODE d a f (FILE #) d = 0 for result destination to be WREG register d = 1 for result destination to be file register (f) a = 0 to force Access Bank a = 1 for BSR to select bank f = 8-bit file register address Byte to Byte move operations (2-word) OPCODE f (Source FILE #) f (Destination FILE #) Example Instruction ADDWF MYREG, W, B MOVFF MYREG1, MYREG2 f = 12-bit file register address Bit-oriented file register operations OPCODE b (BIT #) a f (FILE #) BSF MYREG, bit, B b = 3-bit position of bit in file register (f) a = 0 to force Access Bank a = 1 for BSR to select bank f = 8-bit file register address Literal operations OPCODE k (literal) MOVLW 7Fh k = 8-bit immediate value Control operations CALL, GOTO and Branch operations OPCODE n<7:0> (literal) n<19:8> (literal) GOTO Label n = 20-bit immediate value OPCODE S n<7:0> (literal) n<19:8> (literal) S = Fast bit CALL MYFUNC OPCODE n<10:0> (literal) BRA MYFUNC OPCODE n<7:0> (literal) BC MYFUNC 図 2-1 と図 2-3 のブロック図にはいくつかの小さな違いがあります 本書では いくつかの重要な相違点について説明します DS41628B_JP - p Microchip Technology Inc.

25 PIC MCU のアーキテクチャ 2.10 スタックレベル 2.11 メモリ構成 2.12 プログラムメモリ スタックレベルはエンハンストミッドレンジコアが 16 段 PIC18 が 31 段です スタックの段数が多いほど ソフトウェアでサブルーチンを呼び出して元のアドレスに戻る前に別のサブルーチンを呼び出す階層を多くできます call または goto 命令を実行するとプログラムカウンタはコードの別の場所を指し示すように書き換えられます これらの命令がなければ コードは最初から最後まで順番通りに実行されるだけです その意義については 後述します プログラムメモリの別の位置へジャンプする前に コールスタックに戻りアドレスを保存しておきます 参考までに挙げると ベースライン MCU (PIC10/12) にはコールスタックの深さが 2 段しかないものもあります スタックレベルが浅いと モジュール方式のコードを作成するのは非常に困難です エンハンストミッドレンジ PIC16 および PIC18 MCU のメモリは 以下の 3 つで構成されます 1. プログラムメモリ 2. データ RAM 3. データ EEPROM プログラムメモリは以下の 5 つで構成されます 1. フラッシュプログラムメモリ 2. コンフィグレーションワード 3. デバイス ID 4. リビジョン ID 5. ユーザ ID フラッシュプログラムメモリ エンハンストミッドレンジおよび PIC18 MCU は全てプログラムメモリにフラッシュを使っています フラッシュの採用により PIC MCU は数十万回の消去と書き込みを可能にしています PIC18 のプログラムバスは 21 ビット幅で エンハンストミッドレンジコアは 15 ビット幅です プログラムバスの幅が広いほど大きなアドレスを指定できるため プログラムメモリの容量を大きくできます 図 2-6 に示すように エンハンストミッドレンジコアのプログラムカウンタは 32K x 14 のプログラムメモリ空間をアドレス指定できます 2015 Microchip Technology Inc. DS41628B_JP - p.25

26 図 2-6: エンハンストミッドレンジのプログラムメモリマップとコールスタック PC<14:0> CALL, CALLW 15 RETURN, RETLW Interrupt, RETFIE Stack Level 0 Stack Level 1 Stack Level 15 Reset Vector 0000h On-chip Program Memory Interrupt Vector Page 0 Page 1 Page 2 Page 3 Rollover to Page h 0005h 07FFh 0800h 0FFFh 1000h 17FFh 1800h 1FFFh 2000h Rollover to Page 3 7FFFh 図 2-7 に示す通り PIC18 MCU は 2 MB のプログラムメモリ空間をアドレス指定できます また 割り込みベクタの数がエンハンストミッドレンジは 1 つですが PIC18 MCU は 2 です 大きな違いとして エンハンストミッドレンジコアのプログラムメモリは複数ページありますが PIC18 にはページの概念はありません エンハンストミッドレンジコアでは 現在のページから別のページへ実行が移る場合はページ切り換えが必要です この後のレッスンで紹介するエンハンストミッドレンジ PIC16 のコードはどれも 1 ページを超えないため ページの切り換えは不要です コードが別のページにオーバーフローする場合 pagesel が必要である事を示す警告がアセンブラから出力されます DS41628B_JP - p Microchip Technology Inc.

27 PIC MCU のアーキテクチャ 図 2-7: PIC18 のプログラムメモリマップとコールスタック CALL,RCALL,RETURN RETFIE,RETLW PC<20:0> Stack Level 1 Stack Level On-Chip Program Memory 1FFFh 2000h PIC18(L)F13K22 Reset Vector High Priority Interrupt Vector Low Priority Interrupt Vector On-Chip Program Memory 3FFFh 4000h PIC18(L)F14K h 0008h 0018h User Memory Space Read 0 Read 0 1FFFFFh h コンフィグレーションワード これらの PIC MCU には複数のコンフィグレーションワード ( メモリ ) があり これによって動作時の設定を書き換えられるようにしています オシレータの選択 メモリ保護 低電圧検出等を設定できます 設定項目の内容はデバイスによって異なります エンハンストミッドレンジのコンフィグレーションビットは コード実行中は読み出し専用です PIC18 はコード実行中に全てのコンフィグレーションビットが読み出し可能で ほとんどのコンフィグレーションビットに書き込みできます コンフィグレーションビットは特別な方法で書き込みます これについては レッスンのソースファイルで見ていきます デバイス ID デバイス ID は読み出し専用で PIC MCU のデバイス固有 ID を格納しています PIC16F1829 の ID は DEVICEID に格納され PIC18F14K22 の ID は DEVID1 と DEVID2 に格納されます リビジョン ID 各 PIC MCU にはシリコンリビジョンを示す 5 ビットの ID があります これらのビットは読み出し専用で DEVID レジスタに格納されています 通常 1 つの PIC MCU に対して複数のシリコンリビジョンがあります 各リビジョンのエラーとその回避策はエラッタで説明しています データシートと併せて参照してください 2015 Microchip Technology Inc. DS41628B_JP - p.27

28 2.13 データメモリ 2.14 バンク ユーザ ID これら 4 つのメモリアドレスは ユーザがチェックサムまたはその他のコード識別番号を格納できる ID 位置として指定されています これらは通常実行中に読み書き可能です これら 2 つのデバイスファミリはデータメモリのレイアウトが大きく異なっています どちらのファミリもデータメモリは以下の 4 つで構成されます 1. コアレジスタ 2. 特殊機能レジスタ 3. 汎用 RAM 4. 共通 RAM コアレジスタ コアレジスタには PIC MCU の基本動作に直接影響するレジスタが含まれ データメモリの全てのバンクに同じレジスタが割り当てられています 12 個のコアレジスタのうち 以下に 3 つの例を示します 1. STATUS 2. WREG 3. INTCON STATUS レジスタは ALU による算術演算の状態を格納します WREG レジスタはレジスタとの間でデータの受け渡しに使います INTCON レジスタは PIC MCU を割り込みベクタへジャンプさせる各種割り込みのイネーブルビットとフラグビットを格納しています 特殊機能レジスタ 特殊機能レジスタはデバイス内蔵の周辺モジュールにアクセスする際に使います エンハンストミッドレンジコアでは 特殊機能レジスタは各データメモリバンクのコアレジスタ直後の 20 バイト ( アドレス x0ch/x8ch ~ x1fh/x9fh) を占めます PIC18 コアの特殊機能レジスタは全てアクセス RAM にあります ( セクション 2.14 バンク 参照 ) 汎用 RAM 汎用 RAM は ユーザアプリケーションでのデータ格納および一時的なデータと状態を保存するために使います この領域はプログラムで RAM として使えますが アクセス前にバンクを正しく選択しておく必要があります エンハンストミッドレンジコアでは 各データメモリバンクの SFR 直後に最大 80 バイトの汎用 RAM があります 共通 RAM エンハンストミッドレンジコアには全てのバンクからアクセス可能な 16 バイトの共通 RAM があります PIC18 アーキテクチャにはアクセス RAM と呼ばれる同様の RAM が最大 96 バイトあります PIC18F14K22 のデータメモリは 16 個のバンク (1 バンク 256 バイト ) に分割されます PIC16F1829 のデータメモリは 32 個のメモリバンク (1 バンク 128 バイト ) に分割されます エンハンストミッドレンジ PIC16 では バンクは以下の内容で構成されます 個のコアレジスタ DS41628B_JP - p Microchip Technology Inc.

29 PIC MCU のアーキテクチャ 個の特殊機能レジスタ (SFR) 3. 最大 80 バイトの汎用 RAM (GPR) バイトの共通 RAM ( 全バンクからアクセス可能 ) 図 2-8 に エンハンストミッドレンジ PIC16 のバンク構成を示します 図 2-8: エンハンストミッドレンジのメモリバンク構成 7-bit Bank Offset Memory Region 00h 0Bh 0Ch 1Fh 20h Core Registers (12 bytes) Special Function Registers (20 bytes maximum) General Purpose RAM (80 bytes maximum) 6Fh 70h 7Fh Common RAM (16 bytes) アドレス 70h ~ 7Fh は全てのバンクで共有します この 16 バイトの RAM 領域に格納したデータは バンク切り換えなしでアクセスできるため便利です 図 2-9 に PIC16F1829 の最初の 8 バンクを示します 16 バイトの共通 RAM 同様 先頭の 12 個のコアレジスタも全バンクからアクセスできます 2015 Microchip Technology Inc. DS41628B_JP - p.29

30 DS41628B_JP - p Microchip Technology Inc. 図 2-9: PIC16F1829 のメモリマップ ( レジスタ読み書きの前にバンク選択が必要 ) BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5 BANK 6 BANK 7 000h INDF0 080h INDF0 100h INDF0 180h INDF0 200h INDF0 280h INDF0 300h INDF0 380h INDF0 001h INDF1 081h INDF1 101h INDF1 181h INDF1 201h INDF1 281h INDF1 301h INDF1 381h INDF1 002h PCL 082h PCL 102h PCL 182h PCL 202h PCL 282h PCL 302h PCL 382h PCL 003h STATUS 083h STATUS 103h STATUS 183h STATUS 203h STATUS 283h STATUS 303h STATUS 383h STATUS 004h FSR0L 084h FSR0L 104h FSR0L 184h FSR0L 204h FSR0L 284h FSR0L 304h FSR0L 384h FSR0L 005h FSR0H 085h FSR0H 105h FSR0H 185h FSR0H 205h FSR0H 285h FSR0H 305h FSR0H 385h FSR0H 006h FSR1L 086h FSR1L 106h FSR1L 186h FSR1L 206h FSR1L 286h FSR1L 306h FSR1L 386h FSR1L 007h FSR1H 087h FSR1H 107h FSR1H 187h FSR1H 207h FSR1H 287h FSR1H 307h FSR1H 387h FSR1H 008h BSR 088h BSR 108h BSR 188h BSR 208h BSR 288h BSR 308h BSR 388h BSR 009h WREG 089h WREG 109h WREG 189h WREG 209h WREG 289h WREG 309h WREG 389h WREG 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah PCLATH 20Ah PCLATH 28Ah PCLATH 30Ah PCLATH 38Ah PCLATH 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh INTCON 20Bh INTCON 28Bh INTCON 30Bh INTCON 38Bh INTCON 00Ch PORTA 08Ch TRISA 10Ch LATA 18Ch ANSELA 20Ch WPUA 28Ch 30Ch 38Ch INLVLA 00Dh PORTB (1) 08Dh TRISB (1) 10Dh LATB (1) 18Dh ANSELB (1) 20Dh WPUB (1) 28Dh 30Dh 38Dh INLVLB (1) 00Eh PORTC 08Eh TRISC 10Eh LATC 18Eh ANSELC 20Eh WPUC 28Eh 30Eh 38Eh INLVLC 00Fh 08Fh 10Fh 18Fh 20Fh 28Fh 30Fh 38Fh 010h 090h 110h 190h 210h 290h 310h 390h 011h PIR1 091h PIE1 111h CM1CON0 191h EEADRL 211h SSP1BUF 291h CCPR1L 311h CCPR3L 391h IOCAP 012h PIR2 092h PIE2 112h CM1CON1 192h EEADRH 212h SSP1ADD 292h CCPR1H 312h CCPR3H 392h IOCAN 013h 093h 113h CM2CON0 193h EEDATL 213h SSP1MSK 293h CCP1CON 313h CCP3CON 393h IOCAF 014h 094h 114h CM2CON1 194h EEDATH 214h SSP1STAT 294h PWM1CON 314h 394h IOCBP (1) 015h TMR0 095h OPTION_REG 115h CMOUT 195h EECON1 215h SSP1CON 295h CCP1AS 315h 395h IOCBN (1) 016h TMR1L 096h PCON 116h BORCON 196h EECON2 216h SSP1CON2 296h PSTR1CON 316h 396h IOCBF (1) 017h TMR1H 097h WDTCON 117h FVRCON 197h 217h SSP1CON3 297h 317h 397h 018h T1CON 098h OSCTUNE 118h DACCON0 198h 218h 298h CCPR2L 318h CCPR4L 398h 019h T1GCON 099h OSCCON 119h DACCON1 199h RCREG 219h SSP2BUF (1) 299h CCPR2H 319h CCPR4H 399h 01Ah TMR2 09Ah OSCSTAT 11Ah SRCON0 19Ah TXREG 21Ah SSP2ADD (1) 29Ah CCP2CON 31Ah CCP4CON 39Ah CLKRCON 01Bh PR2 09Bh ADRESL 11Bh SRCON1 19Bh SPBRGL 21Bh SSP2MSK (1) 29Bh PWM2CON 31Bh 39Bh 01Ch T2CON 09Ch ADRESH 11Ch 19Ch SPBRGH 21Ch SSP2STAT (1) 29Ch CCP2AS 31Ch 39Ch MDCON 01Dh 09Dh ADCON0 11Dh APFCON0 19Dh RCSTA 21Dh SSP2CON (1) 29Dh PSTR2CON 31Dh 39Dh MDSRC 01Eh CPSCON0 09Eh ADCON1 11Eh APFCON1 19Eh TXSTA 21Eh SSP2CON2 (1) 29Eh CCPTMRS 31Eh 39Eh MDCARL 01Fh CPSCON1 09Fh 11Fh 19Fh BAUDCON 21Fh SSP2CON3 (1) 29Fh 31Fh 39Fh MDCARH 020h 0A0h 120h 1A0h 220h 2A0h 320h 3A0h 汎用 汎用 汎用 汎用 汎用 汎用 レジスタ レジスタ レジスタ レジスタ レジスタ レジスタ 汎用レジスタ 80 バイト 80 バイト 80 バイト 80 バイト 80 バイト 80 バイト 06Fh 96 バイト 0EFh 16Fh 1EFh 26Fh 2EFh 36Fh 3EFh 070h 0F0h 170h 1F0h 270h 2F0h 370h 3F0h アクセス アクセス アクセス アクセス アクセス アクセス 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 07Fh 0FFh 17Fh 1FFh 27Fh 2FFh 37Fh 3FFh 凡例 : 未実装のデータメモリ領域 0 として読み出し Note 1: PIC16(L)F1829 でのみ使えます 汎用レジスタ 80 バイト アクセス 70h ~ 7Fh PICkit 3 スタータキットユーザガイド

31 PIC MCU のアーキテクチャ アセンブリで PIC16F1829 を使う際は図 2-9 を常に参照し SFR への書き込み前に正しいバンクを選択している事を確認します PIC18 MCU ではバンク選択が効率化されており SFR へのアクセスにはバンク切り換えが不要です これは データメモリの一部をマッピングしたアクセスバンクが用意されており この領域にはユーザがバンクセレクトレジスタを指定しなくてもアクセスできるためです アクセスバンクは バンク 0 のメモリの先頭 96 バイトとバンク 15 の末尾 160 バイトで構成されます 下位のブロックは アクセス RAM と呼ばれ GPR で構成されます 上位のブロックにはデバイスの SFR ( バンク 15) がマッピングされます この後のレッスンで見ていくように PIC18 のアセンブリコードにはバンク切り換えがありません 図 2-10 と図 2-11 に この改良されたマッピング方式を示します 2015 Microchip Technology Inc. DS41628B_JP - p.31

32 図 2-10: PIC18F14K22 のデータメモリマップ BSR<3:0> = 0000 = 0001 = 0010 = 0011 = 0100 Bank 0 Bank 1 Bank 2 Bank 3 Bank 4 00h FFh 00h FFh 00h FFh 00h FFh 00h Data Memory Map Access RAM GPR 000h 05Fh 060h 0FFh 100h 1FFh 200h 2FFh 300h 3FFh 400h a = 0 の場合 : BSR を無視してアクセスバンクを使います 先頭の 96 バイトはバンク 0 の汎用 RAM です 残りの 160 バイトはバンク 15 の特殊機能レジスタ (SFR) です a = 1 の場合 : BSR で指定したバンクを命令で使います = 0101 Bank 5 FFh 00h 4FFh 500h = 0110 = 0111 = 1000 Bank 6 Bank 7 Bank 8 FFh 00h FFh 00h FFh 00h UNUSED Read 00h 5FFh 600h 6FFh 700h 7FFh 800h Access Bank Access RAM Low Access RAM High (SFRs) 00h 5Fh 60h FFh = 1001 Bank 9 FFh 00h 8FFh 900h = 1010 Bank 10 FFh 00h 9FFh A00h = 1011 Bank 11 FFh 00h AFFh B00h = 1100 Bank 12 FFh 00h BFFh C00h = 1101 Bank 13 FFh 00h CFFh D00h = 1110 = 1111 Bank 14 Bank 15 FFh 00h FFh 00h FFh Unused SFR (1) SFR DFFh E00h EFFh F00h F53h F5Fh F60h FFFh Note 1: F53h ~ F5Fh のアドレスにある SFR はアクセスバンクには含まれません DS41628B_JP - p Microchip Technology Inc.

33 PIC MCU のアーキテクチャ 図 2-11: PIC18F14K22 のバンク 15 に含まれる特殊機能レジスタ (F60h ~ FFFh はアクセス RAM に含まれる ) Address Name Address Name Address Name Address Name Address Name FFFh TOSU FD7h TMR0H FAFh SPBRG F87h (2) F5Fh (2) FFEh TOSH FD6h TMR0L FAEh RCREG F86h (2) F5Eh (2) FFDh TOSL FD5h T0CON FADh TXREG F85h (2) F5Dh (2) FFCh STKPTR FD4h (2) FACh TXSTA F84h (2) F5Ch (2) FFBh PCLATU FD3h OSCCON FABh RCSTA F83h (2) F5Bh (2) FFAh PCLATH FD2h OSCCON2 FAAh (2) F82h PORTC F5Ah (2) FF9h PCL FD1h WDTCON FA9h EEADR F81h PORTB F59h (2) FF8h TBLPTRU FD0h RCON FA8h EEDATA F80h PORTA F58h (2) FF7h TBLPTRH FCFh TMR1H FA7h EECON2 (1) F7Fh ANSELH F57h (2) FF6h TBLPTRL FCEh TMR1L FA6h EECON1 F7Eh ANSEL F56h (2) FF5h TABLAT FCDh T1CON FA5h (2) F7Dh (2) F55h (2) FF4h PRODH FCCh TMR2 FA4h (2) F7Ch (2) F54h (2) FF3h PRODL FCBh PR2 FA3h (2) F7Bh (2) F53h (2) FF2h INTCON FCAh T2CON FA2h IPR2 F7Ah IOCB FF1h INTCON2 FC9h SSPBUF FA1h PIR2 F79h IOCA FF0h INTCON3 FC8h SSPADD FA0h PIE2 F78h WPUB FEFh INDF0 (1) FC7h SSPSTAT F9Fh IPR1 F77h WPUA FEEh POSTINC0 (1) FC6h SSPCON1 F9Eh PIR1 F76h SLRCON FEDh POSTDEC0 (1) FC5h SSPCON2 F9Dh PIE1 F75h (2) FECh PREINC0 (1) FC4h ADRESH F9Ch (2) F74h (2) FEBh PLUSW0 (1) FC3h ADRESL F9Bh OSCTUNE F73h (2) FEAh FSR0H FC2h ADCON0 F9Ah (2) F72h (2) FE9h FSR0L FC1h ADCON1 F99h (2) F71h (2) FE8h WREG FC0h ADCON2 F98h (2) F70h (2) FE7h INDF1 (1) FBFh CCPR1H F97h (2) F6Fh SSPMASK FE6h POSTINC1 (1) FBEh CCPR1L F96h (2) F6Eh (2) FE5h POSTDEC1 (1) FBDh CCP1CON F95h (2) F6Dh CM1CON0 FE4h PREINC1 (1) FBCh VREFCON2 F94h TRISC F6Ch CM2CON1 FE3h PLUSW1 (1) FBBh VREFCON1 F93h TRISB F6Bh CM2CON0 FE2h FSR1H FBAh VREFCON0 F92h TRISA F6Ah (2) FE1h FSR1L FB9h PSTRCON F91h (2) F69h SRCON1 FE0h BSR FB8h BAUDCON F90h (2) F68h SRCON0 FDFh INDF2 (1) FB7h PWM1CON F8Fh (2) F67h (2) FDEh POSTINC2 (1) FB6h ECCP1AS F8Eh (2) F66h (2) FDDh POSTDEC2 (1) FB5h (2) F8Dh (2) F65h (2) FDCh PREINC2 (1) FB4h (2) F8Ch (2) F64h (2) FDBh PLUSW2 (1) FB3h TMR3H F8Bh LATC F63h (2) FDAh FSR2H FB2h TMR3L F8Ah LATB F62h (2) FD9h FSR2L FB1h T3CON F89h LATA F61h (2) FD8h STATUS FB0h SPBRGH F88h (2) F60h (2) 凡例 : = 未実装のデータメモリ領域 0 として読み出し Note 1: これは物理レジスタではありません 2: 未実装レジスタは 0 として読み出されます 図 2-11 に示したバンク 15 の SFR のうち F60h ~ FFFh のレジスタは全てアクセスバンクに含まれるためバンク切り換えは必要ありません エンハンストミッドレンジコアではバンク切り換えに 2 命令が必要なため PIC18 ではプログラム全体で命令数を大幅に削減できる可能性があります 2015 Microchip Technology Inc. DS41628B_JP - p.33

34 2.15 データ EEPROM メモリ 2.16 プログラミングの基礎 データ EEPROM はデータ RAM とプログラムメモリの両方から独立した不揮発性メモリアレイで プログラムデータの長期格納に使います EEPROM はレジスタファイルにもプログラムメモリ空間にも直接マッピングされておらず 特殊機能レジスタを介して間接的にアドレス指定します EEPROM は通常動作中に読み書き可能です PIC16F1829 と PIC18F14K22 はどちらも 256 バイトの EEPROM を内蔵しています この EEPROM には高い消去 / 書き込み耐性があります バイト書き込みを実行すると 書き込み位置を自動的に消去してから新しいデータが書き込まれます 詳細はセクション 3.14 レッスン 13:EEPROM を参照してください このセクションでは アセンブリと C の基礎について簡単に説明します C プログラミングについては さらに詳しいチュートリアルをウェブで見つける事ができます 本書では PIC16F1829 と PIC18F14K22 の両方に XC8 コンパイラ v.1.00 を使います これ以降のバージョンであれば問題なく動作します まず XC8 コンパイラのユーザガイドからお読みになる事を推奨します C 言語は移植性が非常に高く ほとんどのコンパイラで問題なくビルドできるのが大きな利点の 1 つです アセンブリはコンパイルされるのではなく MPASM と呼ばれるユーティリティでアセンブルされます 本書では 全ての PIC1X MCU に対応したユニバーサルアセンブラの MPASM アセンブラ v5.43 を使います C 等の高級言語は 扱うマイクロプロセッサのアーキテクチャを理解していなくてもプログラミングできるのが大きな利点の 1 つです アーキテクチャに関する知識はコンパイラが持っているため コンパイラに任せておけば C コードをアセンブリにコンパイルしてくれます アセンブリを使う場合 PIC MCU の命令セットを使う必要があり さらにメモリマップを理解する必要があります アセンブリを使うと PIC MCU のアーキテクチャに関する知識が身につくだけでなく コードサイズも大幅に縮小できるという利点があります MPASM アセンブラの動作 本書のレッスンは全て絶対コードで記述しています つまり アセンブラが必要とするものは全てソースファイルに含まれています このプロセスを以下に示します 図 2-12: MPASM アセンブラの動作 code.asm MPASM code.hex Programmer assembler MCU この方法でソースファイルをアセンブルする場合 ソースファイルで使っている全ての変数とルーチンをそのソースファイル内か そのソースファイルに明示的にインクルードされているファイル内で定義する必要があります アセンブルがエラーなく完了すると ターゲットの PIC MCU で実行可能なマシンコードを含む HEX ファイルが生成されます このファイルをデバッガで使ってコード実行をテストする事も デバイスプログラマで使ってマイクロコントローラをプログラミングする事もできます XC8 の動作 コンパイラは 高級言語で記述したコードを PIC MCU が理解できるレベルに変換するのに必要な処理を全て実行します 図 2-13 に この処理の流れを示します DS41628B_JP - p Microchip Technology Inc.

35 PIC MCU のアーキテクチャ 図 2-13: XC8 の動作 コンパイラとアセンブラから出力されるのはどちらも HEX ファイルです コンパイラが生成するアセンブリは MPLAB IDE の逆アセンブリウィンドウで表示できます 図 2-14: 逆アセンブリウィンドウに表示したコード 図 2-14 は レッスン 5 の逆アセンブリの一部を表示したものです C は直感的に理解および記述できるよう設計された言語です C の各コード行の下には 2 行のコードが表示されています これは C と同じ結果が得られるように PIC MCU 固有の命令を使って記述したものです 2015 Microchip Technology Inc. DS41628B_JP - p.35

36 アセンブラでの数値表現 特に明記しない限り アセンブラはプログラム内の数値定数を 16 進数 ( 基数 16) と見なします 2 進数 ( 基数 2) 8 進数 ( 基数 8) 10 進数 ( 基数 10) ASCII 符号もサポートされます 表 2-1: XC8 コンパイラでの数値表現 特に明記しない限り コンパイラはプログラム内の数値定数を 10 進数 ( 基数 10) と見なします 2.17 MPASM アセンブラのディレクティブ ディレクティブはソースコードに記述されるアセンブラのコマンドですが 通常はオペコードには直接変換されません これらは入力 出力 データ割り当て等 アセンブラの制御に使います アセンブラのディレクティブの多くには 複数の名前とフォーマットがあります これらは Microchip 社の従来のアセンブラとの下位互換性 および各種プログラミング手法との互換性を維持するために存在します MPASM アセンブラのディレクティブの詳細は MPLAB X IDE のメニューバーで [Help]>[Help Contents] と選択してヘルプを参照してください Banksel banksel label このディレクティブは label を含むバンクに切り換えるためのバンク選択コードを生成するようアセンブラとリンカに指示します 人為的ミスを防ぐため BSR を直接設定するのではなく必ずこのディレクティブを使います cblock 例 2-5: cblock [address] Variable endc アセンブラでの数値表現 基数フォーマット例 16 進数 # 0x# H # 12 0x12 H 12 10,8 進数.# D # Octal O #.12 D 12 Octal O 12 2 進数 B # B ASCII A # # A c c 表 2-2: コンパイラでの数値表現 基数フォーマット例 16 進数 0x# 0x12 10 進数 # 12 2 進数 0b# 0b ASCII # c address で指定したアドレスを先頭に連続する複数の変数を定義します DS41628B_JP - p Microchip Technology Inc.

37 PIC MCU のアーキテクチャ Org (addr) Org は addr で指定したアドレスからコード生成を開始するようアセンブラに指示します 基本的に 本書で紹介するレッスンのコードはアドレス 0x0000 から開始します End End は アセンブラに対してアセンブルを中止するように命令します プログラムの最後に 1 つ必要です 必ずしもファイルの最後に置く必要はありませんが End 文の後の行はアセンブルされません Errorlevel アセンブラからの警告を抑止します メッセージを出力ウィンドウに表示しないようにするのは そのメッセージの意味を十分に理解している場合のみとします 例 2-6: MESSAGE 302 Operand Not in Bank 0, check to ensure bank bits are correct #include 例 2-7: include include_file #include <include_file> 指定したファイルをソースコードとして読み込みます これは インクルードファイルの内容全体を include 文の場所に挿入したのと同じ効果があります 山カッコ (< >) で囲んだ場合 そのファイルがアセンブラのライブラリフォルダにある事を示します 二重引用符 ( ) で囲んだ場合 インクルードファイルが現在の作業ディレクトリにある事を示します これらディレクトリの場所は IDE で変更できます 2015 Microchip Technology Inc. DS41628B_JP - p.37

38 NOTES: DS41628B_JP - p Microchip Technology Inc.

39 第 3 章レッスン 以下の 13 レッスンでは 特に重要なコード行を示しながらそのレッスンで初めて学ぶ PIC MCU のレジスタと命令について説明します 各レッスンでは それぞれ新しい周辺モジュールまたは機能を紹介していきます PIC16 と PIC18 ではコードが若干異なる事があります 各レッスンでは これらの違いを取り上げて説明します 最初にエンハンストミッドレンジの PIC16 について説明し その後で PIC18 について説明します 両デバイスでほとんど違いがない事もあります 違いが全くない場合 PIC18 のセクションに なし と記載しています 一度説明した違いについては以降改めて説明しません このため 順番通りにレッスンを進める必要があります コードが異なるのは主にアセンブリで C のプログラムはほとんど違いがありません 各レッスンでは C コードだけでなくアセンブリコードも学習する事を強く推奨します レッスンのフォルダ構造は以下の通りです 1. < アーキテクチャ > 以下に例を示します a. < 言語 > i. < レッスン > 1. < レッスン >.X (MPLABX プロジェクト ) 2. Mplab8 (MPLAB 8.x プロジェクト ) 3. < レッスン >.< 拡張子 > ( ソースファイル ) 2.PIC16 a. Assy b. C i. 01 Hello World 1. Hello_world.X (MPLABX プロジェクト ) 2. Mplab8 (MPLAB 8.x プロジェクト ) 3. Hello_world.asm i. 01 Hello World 1. Hello_world.X (MPLABX プロジェクト ) 2. Mplab8 (MPLAB 8.x プロジェクト ) 3. Hello_world.c どちらのプロジェクトもソースファイルは共通です このため MPLAB X を使ってソースファイルに変更を加えると MPLAB 8プロジェクトにも変更が反映されます MPLAB X IDE を使う事を推奨します 変更を加えるのはソースファイルのみとし プロジェクトフォルダのファイルは変更しません MPLAB X IDE のスタートページからリンクしてある入門ビデオを参照してください MPLAB 8.XX の場合 MPLAB IDE Quick Start Guide (DS51281) ( を入門ガイドとして参照してください 2015 Microchip Technology Inc. DS41628B_JP - p.39

40 DS41628B_JP - p Microchip Technology Inc. 3.1 レッスン # レッスン新しく学ぶモジュール新しく学ぶ概念新しく学ぶレジスタ新しく学ぶ命令 1 Hello World ALU ラッチポート PIC MCU プログラミングの基礎 2 LED 点滅 1. GPR 2. SFR 3. アクセス RAM 4. オシレータ 1. 遅延 2. I/O 3. バンク切り換え TRISC PORTC LATC BSF BCF CLRF OSCCON MOVLW DECFSZ GOTO MOVWF BRA BTG 3 ローテートビット検査 STATUS BTFSC LSRF RRCF 4 A/D 変換 ADC ビットシフト ANSEL ADCON0/1/2 SWAPF 5 可変速ローテート ハードウェアスタック 関数 CALL RETURN XORWF TSTFSZ RCALL 6 デバウンスプリプロセッサマクロ 7 方向切り換え付き可変速ローテート コードのモジュール化 パルス幅変調 (PWM) ECCP 1. PWM 分解能 CCPxCON PRx TxCON ANDLW 8 2. PWM 周波数 CCPTMRS CCPRxL 3. 変調 9 Timer0 Timer0 タイマ OPTION_REG T0CON 割り込みとプルアップ 1. 割り込みベクタ ( 優先度高 / 低 ) 1. 割り込みの有用性 IOCAN IOCA RETFIE 弱プルアップ IOCAF RCON WPUA 間接仮想レジスタ 1. ポインタ INDFx FSRx INCF 11 アドレス指定ルックアップテーブルプログラムメモリ読み出し 1. メモリの節約 EEADRx EEDATx EECON1 MOVIW RETLW BRW 2. 自己読み出し ステートマシン PCL PCLATH TBLRD* TBLPTR TABLAT 13 EEPROM 不揮発性メモリ低消費電力 EECON2 SLEEP RLNCF PICkit 3 スタータキットユーザガイド

41 レッスン 3.2 レッスン 1: Hello World (LED の点灯 ) レッスンの紹介 最初のレッスンでは LED の点灯方法を学びます ハードウェアの動作 DS1 が点灯を続けます 概要 LED は RC0 ~ RC3 の I/O ピンに接続されています まず これらの I/O ピンを出力に設定します このレッスンでは これらのピンの 1 本を High に駆動 (RC0 = 1) して LED を点灯させます これら 2 つの論理レベルは PIC MCU の電源ピンに基づいて決定します PIC MCU の電源ピン (VDD) は 5 V に接続され ソース (VSS) はグランド (0 V) に接続されるため 1 は 5 V 0 は 0 V と等価です 新しく学ぶレジスタ 両デバイス共通 表 3-1: LATC PORTC TRISC 新しく学ぶ両デバイス共通のレジスタレジスタ目的データラッチ PORTC の全てのピンのステータスを保持ピンが入力 (1) か出力 (0) かを決定 LATC データラッチ (LATx レジスタ ) は I/O ピンが駆動している値の Read-Modify-Write 動作に便利です LATx レジスタへの書き込み動作は 対応する PORTx レジスタへの書き込みと同じ効果があります LATC レジスタを読み出すと I/O ポートラッチの保持値が読み出されます PORTC PORTC レジスタを読み出すと I/O ピンの値が読み出されます 書き込みはポートに直接行うのではなく LATx レジスタに対して行います TRISC このレジスタは PORTC に接続された各ピンのデータ方向を指定します 表 3-2: TRIS の値と方向 TRIS の値 1 入力 0 出力 方向 1 は Input ( 入力 ) の I の形 0 は Output ( 出力 ) の O の形になぞらえると簡単に覚えられます 書き込みは必ずラッチへ実行し 読み出しは必ずポートから実行するように注意します 2015 Microchip Technology Inc. DS41628B_JP - p.41

42 3.2.5 新しく学ぶ命令 エンハンストミッドレンジおよび PIC18 の全命令の詳細は 各 PIC MCU のデータシートで 命令セットのまとめ の章を参照してください 本書では 各デバイスの重要な命令について簡単に説明します 両デバイス共通 表 3-3: bsf レジスタの 1 ビットをセットします 例 3-1: bcf レジスタの 1 ビットをクリアします 例 3-2: CLRF レジスタ全体をクリアします 初期化時に LED 等の周辺出力を全て OFF にする場合に使うと便利です 例 3-3: 新しく学ぶ両デバイス共通の命令 命令英語名目的 bsf Bit Set f 指定したビットを 1 (5 V) にする bcf Bit Clear f 指定したビットを 0 (0 V) にする clrf Clear f レジスタの全てのビットを 0 にする bsf LATC, 0 命令実行前 : RC0 = 0 命令実行後 : RC0 = 1 bcf LATC, 0 命令実行前 : RC0 = 1 命令実行後 : RC0 = 0 clrf LATC 命令実行前 : LATC = b 命令実行後 : LATC = b DS41628B_JP - p Microchip Technology Inc.

43 レッスン 例 3-4: アセンブリ エンハンストミッドレンジ #include <p16f1829.inc> CONFIG _CONFIG1, (_FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF); CONFIG _CONFIG2, (_WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _LVP_OFF); errorlevel -302 ;supress the 'not in bank0' warning ORG 0 Start: banksel TRISC ; select bank1 bcf TRISC,0 ; make IO Pin C0 an output banksel LATC ; select bank2 clrf LATC ; init the LATCH by turning off everything bsf LATC,0 ; turn on LED C0 (DS1) goto $ ; sit here forever! ; end ; コメントの開始を表します アセンブラは セミコロンから行末までのテキストを全て無視します コードの可読性を高めるため なるべく多くのコメントを挿入するようにします #include <p16xxxx.inc> p16f1829.inc には この PIC MCU 固有の SFR およびその他メモリのアドレスが全て定義してあります この文は プログラムのヘッダコメントの後の最初の行に記述してください その次に CONFIG ディレクティブを記述します CONFIG プロセッサのコンフィグレーションビットを設定します このディレクティブを使う前に プロセッサを宣言しておく必要があります ここで記述している各コンフィグレーションワードの詳細は PIC16F1829 のデータシートを参照してください この中で最も重要なのは RA3 のマスタクリアを OFF にする MCLRE_OFF です Errorlevel -302 MESSAGE 302 Operand not in Bank 0, check to ensure bank bits are correct という警告メッセージの出力を抑制します Org xx 以下のコードの開始アドレスを xx で指定します org を指定しない場合 アドレス 0 からコード生成が開始します Start: これはラベルです ラベルには そのラベル直後のオペコードと同じメモリアドレスが割り当てられます 実際のコードでは call goto branch 命令のジャンプ先をラベルで指定する事を推奨します Banksel TRISC 2015 Microchip Technology Inc. DS41628B_JP - p.43

44 エンハンストミッドレンジコアで最もよく使う 非常に重要なディレクティブです この擬似命令は アセンブラとリンカに対して TRISC レジスタが属するバンクを選択するコードを生成するよう指示します この場合 バンク 1 です これには 1 命令サイクルかかります 例 3-5: ピン RC0 を出力にします このレジスタのビットを 1 にセットするとそのピンは入力に設定され 0 にクリアすると出力に設定されます clrf LATC 全ての出力レジスタを 0 に初期化する事を推奨します 全てのレジスタがリセット時にクリアされる保証はありません bsf LATC, 0 これで PORTC0 に接続された DS1 が点灯します goto $ これは アセンブラに対して現在の命令へジャンプするよう指示する命令で この命令が無限に実行されます PIC18 #include <p18f14k22.inc> bcf TRISC, 0 ;Config settings CONFIG IESO = OFF, PLLEN = OFF, FOSC = IRC, FCMEN = OFF, PCLKEN = OFF CONFIG BOREN = SBORDIS, BORV = 19, PWRTEN = OFF, WDTEN = OFF CONFIG MCLRE = OFF, HFOFST = OFF, DEBUG = OFF, STVREN = ON CONFIG XINST = OFF, BBSIZ = OFF, LVP = OFF CONFIG CP0 = OFF, CP1 = OFF CONFIG CPD = OFF, CPB = OFF CONFIG WRT0 = OFF, WRT1 = OFF CONFIG WRTB = OFF, WRTC = OFF, WRTD = OFF CONFIG EBTR0 = OFF, EBTR1 = OFF CONFIG EBTRB = OFF errorlevel -302 ;suppress the 'not in bank0' warning ORG 0 Start: bcf TRISC,0 ;make IO Pin C0 an output clrf LATC ;init the LATCH by turning off everything bsf LATC,0 ;turn on LED C0 (DS1) goto $ ;sit here forever! end ここでは コンフィグレーションワードと CONFIG ディレクティブが異なっています PIC18 の方がコンフィグレーションワードに多くの機能があります 各コンフィグレーションワードの役割の詳細は PIC18F14K22 のデータシートを参照してください エンハンストミッドレンジとの最も重要な違いは バンク切り換えの必要がない事です 全ての SFR がアクセスバンクにあるため banksel 文は不要です DS41628B_JP - p Microchip Technology Inc.

45 レッスン C 言語 C 言語のソースコードは PIC16 も PIC18 もほとんど同じです エンハンストミッドレンジ 例 3-6: #include <htc.h> //PIC hardware mapping //config bits that are part-specific for the PIC16F1829 CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF); CONFIG(WRT_OFF & PLLEN_OFF & STVREN_OFF & LVP_OFF); //Every program needs a `main` function void main(void) { TRISCbits.TRISC0 = 0; //using pin as output LATC = 0; //init to zero LATCbits.LATC0 = 1; //turn on the LED by writing to the latch while(1) continue; //sit here forever doing nothing } // コメントの開始を表します コンパイラは行末までの全てのテキストを無視します コードの可読性を高めるため なるべく多くのコメントを挿入するようにします #include <htc.h> htc.h ファイルを指定しておくと プロジェクト作成時に選択したプロセッサのヘッダファイルが自動的に読み込まれます CONFIG コンフィグレーションワードへの書き込みを実行します 詳細はデータシートを参照してください void main(void) 全ての C プログラムは最初に main 関数があります これは必須の関数です LATCbits.LATC0 = 1 LATCbits は インクルードしたファイル (htc.h) で定義された構造体です このプログラムで選択する必要があるのは ピン RC0 に接続された DS1 のみです これは LATC = 0b と記述する事もできます これはOR 代入演算子と呼ばれるもので C0 以外の全てのピンの状態が維持されます OR 演算を省略して LATC = 0b とすると C0 以外の全てのビットがクリアされます while (1) continue; この while 文を評価すると常に真となり continue 文で現在のループに留まります この状態が無限に続きます continue 文がなくても正しく動作します アセンブリコードよりも少ない行数で同じ機能を実現しています 2015 Microchip Technology Inc. DS41628B_JP - p.45

46 PIC18 PIC16 のコードと異なるのはコンフィグレーションワードの部分のみです 詳細は PIC18F14K22 のデータシートを参照してください DS41628B_JP - p Microchip Technology Inc.

47 レッスン 3.3 レッスン 2: LED 点滅 レッスンの紹介 このレッスンでは 前のレッスンで使った LED (DS1) を点滅させます 動作自体はあまり変わりませんが アセンブリコードを記述しようとすると PIC MCU の実行の仕組みを深く理解する必要があります ハードウェアの動作 DS1 が 1.5 秒周期で点滅を繰り返します 概要 遅延を生成する手段の 1 つに ある値をデクリメントして時間を消費する方法があります アセンブリではコード実行をユーザが直接制御できるため タイミングを正確にプログラミングできます C では コンパイラが C コードをアセンブリにコンパイルした後 PIC MCU に書き込むファイル (HEX ファイル ) を作成します このため C コードの場合は 1 行の実行に何命令が必要かを正確に予測する事は困難です MPLAB X と MPLAB 8.xx にはどちらも C プロジェクトの逆アセンブリウィンドウがあります プログラムのビルドが正常に完了したら コンパイラが生成した命令をこのウィンドウで確認できます 新しく学ぶレジスタ 両デバイス共通 表 3-4: OSCCON 新しく学ぶ両デバイス共通のレジスタレジスタ目的プロセッサ速度を設定する OSCCON どのようなプログラムでも このレジスタに必ず書き込む必要があります 正確な遅延ループを得るには プロセッサ速度を設定する事が重要です レッスン 1 のようにこのレジスタへの書き込みを省略した場合 周波数は既定値 (PIC16F1829 の場合は 500 khz PIC18F14K22 の場合は 1 MHz) となります 既定値はデバイスによって異なります 新しく学ぶ命令 両デバイス共通 表 3-5: 新しく学ぶ両デバイス共通の命令 命令英語名目的 movlw Move literal to WREG バイト値を移動する movwf Move WREG to f バイト値を移動する decfsz Decrement f, Skip if 0 遅延ループを作る bra label Relative branch 条件ジャンプする goto label Go to address ジャンプする MOVLW 8 ビットのリテラル ( 定数 ) をワーキングレジスタ (WREG) に書き込みます movlw 0x5A 命令実行後 :W = 0x5A 2015 Microchip Technology Inc. DS41628B_JP - p.47

48 アセンブリでは非常によく使う命令です 通常 データを WREG に代入した後 演算を実行するか別のレジスタへ代入します movwf movlw に似た命令で WREG のデータを別のレジスタへ代入します 例 3-7: movwf OPTION_REG 命令実行前 : OPTION_REG = 0xFF W = 0x4F 命令実行後 : OPTION_REG = 0x4F W = 0x4F decfsz レジスタの値を 1 つデクリメントします デクリメント後のレジスタの値が 0 の場合 次の命令をスキップします これは遅延ループの作成に使います bra/goto これら 2 つの命令は コードの別のセクションへのジャンプに使います BRA は現在のプログラムカウンタの位置からの相対分岐です エンハンストミッドレンジコアの場合 カウンタはプログラムメモリの -256 n 255 のアドレスレンジにアクセスできます PIC18 の BRA は プログラムメモリの n 1023 のアドレスレンジにアクセスできます 値と符号に注意が必要です エンハンストミッドレンジコアでは 相対分岐を使うとページ境界を越えてジャンプできるため便利です goto は無条件ジャンプで エンハンストミッドレンジの場合は現在のページ内の任意のアドレスにアクセスできます PIC18 では goto 命令で全てのプログラムメモリにアクセスできます ただしプログラムメモリを 2 ワード必要とする事に注意が必要です つまりPIC18 では 1つの goto 命令がBRA 命令の2 倍の空間を必要とします PIC18 では 分岐先アドレスが現在のアドレスから ±1024 以内であれば GOTO ではなく相対分岐を推奨します エンハンストミッドレンジでは ページ境界を越えたジャンプを繰り返す場合のみ相対分岐に利点があります PIC18 表 3-6: btg 指定したレジスタのビット値を反転します アセンブリ 新しく学ぶ PIC18 の命令 命令英語名目的 btg Bit Toggle f LED を点滅する エンハンストミッドレンジ 例 3-8: movlw b' ' ;set cpu clock speed movwf OSCCON DS41628B_JP - p Microchip Technology Inc.

49 レッスン ここでは PIC MCU の動作周波数を 500 khz に設定しています ワーキングレジスタ (WREG) を使ってレジスタにバイト値を代入します このレジスタへの書き込みを省略した場合も PIC16F1829 は既定値の 500 khz で動作します しかし既定値はデバイスによって異なるため コードの冒頭で必ずこのレジスタへの書き込みが必要です これで PIC MCU は 1 命令を 8 µs で実行するようになります ( 式 3-1 参照 ) 式 3-1: 実行時間 Instruction time = = = FOSC kHz 8 µs 4 4 LED を点滅させるには まず LED を点灯した後に一定時間待ってから同じ時間だけ LED を消灯するようにプログラムを記述する必要があります これには内蔵 RAM を使います 例 3-9: cblock 0x70 Delay1 Delay2 endc ;shared memory location that is accessible from all banks ; Define two file registers for the delay loop in shared memory 例 3-10: CBLOCK はユーザメモリを割り当てます CBLOCK の後の数値は どのアドレスからメモリを割り当てるかを指定します 0x70 は エンハンストミッドレンジコアでは全てのバンクで共有する共通 RAM のアドレスです ここに格納できるのは 16 バイトのみです これらの変数を使う場合 プログラムでバンクを切り換える必要はありません ここから先のレッスンでは エンハンストミッドレンジではこの共通 RAM に PIC18 ではアクセス RAM に変数を格納します ここに 以下の遅延ループを作成するための 2 つの変数を格納します bsf LATC, 0 ; turn LED on OndelayLoop: decfsz Delay1,f ; Waste time. bra OndelayLoop ; The Inner loop takes 3 instructions per loop * 256 loops = 768 instructions decfsz Delay2,f ; The outer loop takes an additional 3 instructions per lap * 256 loops bra OndelayLoop ; (768+3) * 256 = instructions / 125K instructions per second = ;sec. bcf PORTC,0 ; Turn off LED C0 - NOTE: do not need to switch banks with 'banksel' since ;bank0 is still selected OffDelayLoop: decfsz Delay1,f ; same delay as above bra OffDelayLoop decfsz Delay2,f bra OffDelayLoop bra MainLoop ; Do it again... bra でループ先頭に戻り 処理を繰り返します このループの実行には 3 命令サイクル ( デクリメントに 1 命令サイクル bra に 2 命令サイクル ) かかります そしてカウンタの動作によってこのループを 256 回実行するため 実行には合計 768 命令サイクルがかかります それでも 人間の目にはほとんど認識できないほどの速さです そこで このループの外側にもう 1 つのループを追加してさらに速度を落とします 内周ループの実行時間が 768 サイクルで 外周ループの 3 サイクルを足したものを 256 回繰り返します すなわち 実行時間は (768+3) * 256 = 命令 /125K 命令 /s = s です 2015 Microchip Technology Inc. DS41628B_JP - p.49

50 例 3-11: goto 命令とbra 命令が2 命令サイクルを必要とするのは このプロセッサがパイプライン構造をしているためです プロセッサは現在の命令を実行中に次の命令をフェッチします プログラムが発生すると goto または bra の後のフェッチ済み命令は実行されません その代わりに NOP が実行され その間に分岐先の命令をフェッチします 変数 Delay1 と Delay2 は 0 から 255 へロールオーバします このため デクリメントする前に変数 Delay1 と Delay2 に値を代入しておく必要はありません PIC18 エンハンストミッドレンジコアには全バンクで共有できる汎用 RAM ( 共通 RAM) が 16 バイトありますが PIC18 にはこれに相当する領域として 0x00->0x5F があります この 96 バイトはバンク指定なしでアクセスできます cblock 0x00 ; Access RAM Delay1 ; Define two file registers for the delay loop in shared memory Delay2 endc C 言語 両デバイス共通変数カウンタを使った C による遅延ループでは 実際の遅延時間は予測できません C コードの場合 PIC MCU に書き込む前にコンパイラがユーザコードをアセンブリに変換するステップが入ります ループの実行時間は コンパイラの効率およびプログラムの記述方法によって異なります 従って 遅延ループ用のライブラリ関数を使う事を推奨します このレッスンでは両方の方法を紹介します このレッスンのコードの最後でコメントアウトしたセクションは XC8 コンパイラ内蔵の高精度な遅延関数を使っています これ以降のレッスンでは この内蔵遅延マクロを使います 例 3-12: #define _XTAL_FREQ //Used by the HI-TECH delay_ms(x) macro 例 3-13: この高精度なルーチンを使うには PIC MCU のプロセッサ速度を定義しておく必要があります delay = 7500; while (1) { while(delay--!= 0)continue; //each instruction is 8us (1/(500KHz/4)) LATCbits.LATC0 ^= 1; delay = 7500; //toggle the LED //assign a value since it is at 0 from the delay loop 変数 delay を作成し デクリメントしてから LED をトグルしています ^ はピンの値と 1 を XOR 演算しており これによってピンの値をトグルしています コンパイラの最適化レベルを変えると生成されるコードが変化し 遅延時間が増減します DS41628B_JP - p Microchip Technology Inc.

51 レッスン 3.4 レッスン 3: ローテート レッスンの紹介 4 つの LED の点灯を循環させます ( ローテート ) ハードウェアの動作 LED が左から右へ 1 つずつ順に点灯する動作を繰り返します 概要 このレッスンでは シフト命令とビット指向のスキップ命令を使って LED を順番に点灯させる方法を学びます 新しく学ぶレジスタ 両デバイス共通 表 3-7: STATUS 新しく学ぶ両デバイス共通のレジスタレジスタ目的 ALU のステータスを調べる STATUS STATUS レジスタは 算術演算を実行するたびにハードウェアによって自動的に更新されます このレジスタを使うと以下の条件をチェックできます 1. ゼロ 2. ディジットキャリー 3. キャリー 4. オーバーフロー 5. 負個々の命令がどのビットに影響するかは 各 PIC MCU のデータシートの 命令セットのまとめ を参照してください 新しく学ぶ命令 両デバイス共通 表 3-8: 新しく学ぶ両デバイス共通の命令 命令英語名目的 btfsc Bit Test f, Skip if Clear If/Else 文 btfsc 指定したレジスタの指定したビットを検査します そのビットがクリア ( 値が 0 ) なら次の命令をスキップします これは IF-ELSE 文を実行するのと同じです 2015 Microchip Technology Inc. DS41628B_JP - p.51

52 エンハンストミッドレンジ 表 3-9: PIC18 新しく学ぶエンハンストミッドレンジの命令 命令英語名目的 lsrf Logical Right Shift ビットを右方向へシフトする 表 3-10: 新しく学ぶ PIC18 の命令 命令英語名目的 rrcf Rotate Right f through Carry ビットを右方向へシフトする LSRF/RRCF LSRF と RRCF の違いは 前者の場合は MSb に 0 が入るという事です 後者の場合は carry ビットの内容を MSb にシフトします どちらの命令も LSb を carry ビットにシフトします 以下に例を示します 図 3-1: LSRF MSb LSb C X 図 3-2: RRCF MSb LSb C 例 3-14: シフトの結果 carry ビットに 1 が入った場合 次のローテートを実行するとレジスタの MSb に 1 が入るため それを避けたい場合は carry ビットをクリアしておく必要があります アセンブリ エンハンストミッドレンジ Rotate: lsrf LATC,F ;shift the LEDs and turn on the next LED to the right btfsc STATUS,C ;did the bit rotate into the carry (i.e. was DS1 just lit?) bsf LATC, 3 ;yes, it did and now start the sequence over again by turning on DS4 goto MainLoop ;repeat this program forever DS41628B_JP - p Microchip Technology Inc.

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション マイコンプログラミング演習 I 第 04-05 回 LEDを用いたI/O 制御担当 : 植村 実験の目的 本実験ではマイコンシステムを用いた信号の入出力の制御方法を理解することを目的とし, マイコンのアーキテクチャを理解 実装するとともに, アセンブラによるプログラミング技術の習得を行う. 回路の構成として,PIC16F84A を用いてスイッチを入力とする LED の点灯 / 消灯の出力操作を行う回路ならびにアセンブラプログラムを実装する.

More information

スライド 1

スライド 1 6.LED( 発光ダイオード ) の制御を学ぼう 本稿の Web ページ http://www.cmplx.cse.nagoya-u.ac.jp/~furuhashi/education/pic/index.html 1 5V R 4 SW 1 R 3 R 2 SW 2 SW 3 PIC16F84A 1 RA2 RA1 18 2 RA3 RA0 17 3 RA4 OSC1 16 4 MCLR OSC2

More information

スライド 1

スライド 1 4. 演算命令 ( つづき ) ( 足し算の桁上がり,Rotate, etc.) を学ぼう 本稿の Web ページ http://www.cmplx.cse.nagoya-u.ac.jp/~furuhashi/education/pic/index.html 1 本章では足し算の桁上がり情報の格納場所の確認をするプログラムを学びます. PIC16F マイコンではデータは 8 ビットで表されています.

More information

Microsoft Word - 工学ゼミ3_テキスト

Microsoft Word - 工学ゼミ3_テキスト 2017 年 工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積 極的に応用しながら

More information

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018 工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 第 1 回 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積極的に応用しながら

More information

PIC18 Istructios PIC16, PIC x Microchip Techology Icorporated. All Rights Reserved. PICmicro PIC18 52

PIC18 Istructios PIC16, PIC x Microchip Techology Icorporated. All Rights Reserved. PICmicro PIC18 52 PIC18 2003 Microchip Techology Icorporated. All Rights Reserved. PICmicro PIC18 51 PIC18 Istructios PIC16, PIC17 16 16 8x8 2003 Microchip Techology Icorporated. All Rights Reserved. PICmicro PIC18 52 PIC18

More information

Taro11-…e…L…X…g.jtd

Taro11-…e…L…X…g.jtd PIC アセンブラの基礎 年組番氏名 群馬県立利根実業高等学校 工業技術科情報技術コース 1.PICとは? PIC( ピック ) とは Peripheral Interface Controllerの頭文字から名付けられ 周辺インターフェイス コントローラを意味する 米国のMicrochip Technology 社により開発されたワンチップマイコン ( マイクロコントローラ ) 製品のシリーズ名称である

More information

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが MPASM MPASM は Microchip Tecnology Inc. 社の開発した PIC のためのアセンブリ言語である ここでは MPASM の文法と使用法などについて記述する 1. 文法 ソースコードファイルは ASCII テキストファイルエディターを使って作成する そのように作られたソースコードは以下に示す基本的ガイドラインに従うべきである ソースファイルの各行は次の 4 つのタイプの情報を含んでよい

More information

Microsoft Word - 工学ゼミ3_テキスト

Microsoft Word - 工学ゼミ3_テキスト 2016 年 工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積 極的に応用しながら

More information

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し エンベデッド コントロール セミナー 2000 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 1 実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション マイコンプログラミング演習 I 第 02-03 回回路構築 /LEDを用いた出力制御担当 : 植村 導入 講義内容 本講義では携帯電話や携帯オーディオプレイヤー 各種ロボットなどの電子機器 情報機器に用いられるマイコン制御技術を 実習を通して理解する PIC: Peripheral Interface Controller 直訳 : 周辺装置インタフェースコントローラー マイクロコンピュータ CPUやメモリをワンチップ化した小型のコンピュータパソコンのような汎用性はないが低コスト

More information

スライド 1

スライド 1 2. 転送命令を学ぼう 2004 年 8 月に本講義ノートを Web にアップして以来, とても多くの方の訪問を受けてきました. 内容が一部古くなっていたので,2012 年 5 月時点の情報に書き改めました. 主な変更点は以下の通りです. 第 0 章に本講座の準備のための章を設け, 以下の更新をしました. 1. プログラム開発環境 (MPLAB IDE) を v8.84 に更新しました. 2012

More information

untitled

untitled 1050259 16 2 22 1 1 DC DC 2 20 TRIZ PIC PIC MPLAB IDE PIC16F84A PIC16F876 DC 3 20 20 PIC 4 16*32 24*72 ( 1-1) 5 ON,OFF 1-2 & 10ms 6 7 2-1 8 2 PWM Microchip Technology PIC 9 1 H PIC 10 PID 90g PWM P I PWM

More information

untitled

untitled PIC Pic MPLAB HEX Pic PIC 18CXXX 14000 17CXXX 16C92X 16F8XX 16C7XX 16C6XX 16C62X 16F8X 12C5XX 16C5X 16C55X 12C6XX d f b f k k PIC 4 2 1 2 1 SPI SPI,SSART SPI 4 5 8 1 2 SPI,USART 1 64 128 256 8 (10bit)

More information

3 1EEPROMElectrically Erasable PROM PROMProgrammable ROM 2 EEPROM 3

3 1EEPROMElectrically Erasable PROM PROMProgrammable ROM 2 EEPROM 3 1 ROM 3 1EEPROMElectrically Erasable PROM PROMProgrammable ROM 2 EEPROM 3 000 001 EEPROM 3FF 14bit1024 A B 00 INDIRECT ADDR 80 INDIRECT ADDR 01 TMR0 81 OPTION 02 PCL 82 PCL 03 STATUS 83 STATUS 04 FSR 84

More information

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB) コンピュータ工学講義プリント (12 月 11 日 ) 今回は ローテイト命令を用いて 前回よりも高度な LED の制御を行う 光が流れるプログラム 片道バージョン( 教科書 P.119 参照 ) 0.5 秒ごとに 教科書 P.119 の図 5.23 の様に LED の点灯パターンが変化するプログラムを作成する事を考える この様にすれば 光っている点が 徐々に右に動いているように見え 右端まで移動したら

More information

スライド 1

スライド 1 8. ステッピングモータの制御を学ぼう 秋月電子通商 PIC ステッピングモータドライバキット ( 小型モータ付き ) を参照しました. 回路製作の詳細は第 0 章を参照してください. 1 2 第 0 章図 28 より完成写真 ( マイコン回路 + ステッピングモータ駆動回路 ) PIC マイコンによるステッピングモータの制御 PIC16F84 R 1 R 2 RB6 RB0 ステッピングモータ S

More information

,, ( ) 5 ma ( ) 5V V 5 6 A B C D E F G H I J , LED LED, LED, 7 LED,, 7 LED ( ) V LED VCC 5V 7 LED VCC f g f a g b a b c e d e d c dp dp VCC (

,, ( ) 5 ma ( ) 5V V 5 6 A B C D E F G H I J , LED LED, LED, 7 LED,, 7 LED ( ) V LED VCC 5V 7 LED VCC f g f a g b a b c e d e d c dp dp VCC ( [] PIC 8 (/6, 6/ ) (/, 6/) (5/7, 6/8) PIC PIC PIC (5/, 6/5) V 5 (5/, 7/ ) V LED ( LED ( /, 6/) V V V ( 5/8, 6/9) V ( 5/5, 6/6) ( V 5/8, 7/ 9) V % 6%, LED, LED /7, 6/ 5) 7,, LED, LED LED ,, ( ) 5 ma ( )

More information

前付(念).indd

前付(念).indd 図解 PIC マイコン実習 ( 第 2 版 ) サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. http://www.morikita.co.jp/books/mid/078332 このサンプルページの内容は, 第 2 版 1 刷発行時のものです. i 第 2 版 まえがき 10 MPLAB PIC USB MPLAB X 2 PIC16F84A PIC PIC

More information

スライド 1

スライド 1 RX62N 周辺機能紹介データフラッシュ データ格納用フラッシュメモリ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ データフラッシュの概要 プログラムサンプル 消去方法 書き込み方法 読み出し方法 FCUのリセット プログラムサンプルのカスタマイズ 2 データフラッシュの概要 3 データフラッシュとは フラッシュメモリ

More information

PIC10(L)F320/322 Product Brief

PIC10(L)F320/322 Product Brief 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います PIC10(L)F320/322 PIC10(L)F320/322 製品概要 高性能 RISC CPU: 命令は 35 しかなく習得が容易 : - 分岐命令を除き 全てシングルサイクル命令 動作速度 : - DC 16 MHz クロック入力 - DC 250 ns 命令サイクル 最大 1 K

More information

スライド 1

スライド 1 9. 割り込みを学ぼう 9.1 外部からの割り込み (SW1 を押すことにより割り込みをかける方法 ) 9.2 タイマ 0 による割り込み ( 処理タイミングの管理方法 : 一定時間毎に LED1, 2, 3 を点滅させる方法 ) 回路製作の詳細は第 0 章を参照してください. 1 9.1 外部からの割り込み (SW1 を押すことにより割り込みをかける方法 ) ;Interrupt test program

More information

Microsoft PowerPoint - 第8α章.ppt [互換モード]

Microsoft PowerPoint - 第8α章.ppt [互換モード] 第 8α 章 PIC16F88を 用 いたステッピングモータ の 速 度 制 御 本 稿 のWebページ 目 次 8-1. PIC16F88を 用 いたステッピングモータ 制 御 の 実 験 回 路 図 回 路 図 立 体 配 線 図 完 成 写 真 8-2.ステッビングモータの 定 速 駆 動 8-3.タイマ0 割 り 込 みによる 制 御 周 期 管 理 8-4. A/D 変 換 モジュール 8-5.

More information

PIC

PIC PIC - 1 ページ 2 週目 UBW を使用してみる 2010 年 5 月 23 日 15:28 前回の Gainer mini はあくまでも PC 側にプログラムがあり PIC は IO ボックス的な使用しかできなかった 入出力デバイスとして PIC を使う場合は 簡易で便利であるが それ以上の事 (PC なしでの動作 PC と対等の動作 ) は出来ない 今週からは 本来の PIC としての使い方を学ぶ

More information

39733a.fm

39733a.fm 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ ハイライト 本セクションには下記の主要項目を記載しています 45.1 はじめに... 45-2 45.2 データメモリの構成... 45-3 45.3 拡張データ空間... 45-7 45.4 データ配置... 45-14

More information

スライド 1

スライド 1 3. 演算命令を学ぼう 本稿の Web ページ http://www.mybook-pub-site.sakura.ne.jp/pic/index.html 1 ; ADD このソースファイルを各自打ち込んで下さい. EQU 0x0C ; at 0C 足し算を実行するプログラムの例です. MOVLW B 00000001 ; Load 0x01 to W ADDLW B'00000011' ; W

More information

3 4 PIC

3 4 PIC PIC 16 2 9 3 4 PIC 5 7 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 7 7 7 0 7 0 7 11 13 14 15 19 5-1 5-2 5-3 19 19 19 5-4 20 5-5 20 5-6 22 5-7 23 5-8 25 5-9 26 5-10 27 29 6-1 29 6-2 29 6-3 29 1 6-4 IC 30 6-5 31

More information

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

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+) RL78 開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行 ( 統合開発環境編 ) (High-performance Embedded Workshop CS+) 2017/4/7 R20UT2087JJ0103 ソフトウェア事業部ソフトウエア技術部ルネサスシステムデザイン株式会社 はじめに 本資料は 統合開発環境 High-performance Embedded Workshop

More information

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

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ arduino プログラミング課題集 ( Ver.5.0 2017/06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイコンから伝える 外部装置の状態をマイコンで確認する 信号の授受は 入出力ポート 経由で行う (2) 入出力ポートとは?

More information

MPLAB Code Configurator User’s Guide

MPLAB Code Configurator User’s Guide MPLAB Code Configurator ユーザガイド 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 2015 Microchip Technology Inc. DS40001725B_JP Microchip 社製デバイスのコード保護機能に関して以下の点にご注意ください Microchip 社製品は 該当する Microchip

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

#include "uart.h" // #define RTC8583 0xA0 // RTC address #define CTRL 0x00 // RTC register notation START/STOP #defin

#include uart.h // #define RTC8583 0xA0 // RTC address #define CTRL 0x00 // RTC register notation START/STOP #defin ****************** RTC clock with thermo & moisture meter by PIC12F1829 LCD display and serial output with internal clock By nobcha all right reserved Reffer to 05/22/2014 PIC16F1827+RTC8564NB + SHT-11

More information

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

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート ) TrueSTUDIO 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです 無料の試用版開発ツール Atollic TrueSTUDIO for ARM Lite で作成したプロジェクトです ビルド可能なプログラムのコードサイズが 32Kbyte 以内の制限があります プログラムの開始番地は 0x08000000

More information

DS41364B_JP

DS41364B_JP データシート 28/40/44 ピンフラッシュベース 8 ビット CMOS マイクロコントローラ (LCD ドライバおよびナノワット XLP テクノロジ対応 ) ご注意 : この日本語版ドキュメントは 参考資料としてご使用の上 最新情報につきましては 必ず英語版オリジナルをご参照いただきますようお願いします 2009 Microchip Technology Inc. Preliminary DS41364B_JP

More information

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

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

More information

Notes and Points for TMPR454 Flash memory

Notes and Points for TMPR454 Flash memory 表紙 TMPR454 内蔵 Flash メモリ対応版手順書 株式会社 DTS インサイト ご注意 (1) 本書の内容の一部または 全部を無断転載することは禁止されています (2) 本書の内容については 改良のため予告なしに変更することがあります (3) 本書の内容について ご不明な点やお気付きの点がありましたら ご連絡ください (4) 本製品を運用した結果の影響については (3) 項にかかわらず責任を負いかねますのでご了承ください

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2015 年度 5 セメスター クラス D 計算機工学 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節 ) 大学院情報科学研究科鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語 )

More information

ヒント 2: CWG を使ったハーフブリッジまたはフルブリッジ回路の駆動 ハーフブリッジまたはフルブリッジモータ回路を駆動するために多ピンマイクロコントローラは必ずしも必要ではありません PWM モジュールと CWG モジュールを組み合わせると 少ピンデバイスでも駆動できます 図 2: CWG によ

ヒント 2: CWG を使ったハーフブリッジまたはフルブリッジ回路の駆動 ハーフブリッジまたはフルブリッジモータ回路を駆動するために多ピンマイクロコントローラは必ずしも必要ではありません PWM モジュールと CWG モジュールを組み合わせると 少ピンデバイスでも駆動できます 図 2: CWG によ 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 新周辺モジュール活用のヒントとコツ 相補波形ジェネレータ (CWG) 構成可能なロジックセル (CLC) 数値制御オシレータ (NCO) 周辺モジュール活用のヒントとコツ はじめに マイクロチップ社は 小型化と高性能化ならびに使いやすさと信頼性の向上を目指して常に先進的な製品を提供しています

More information

Microsoft Word - テキスト.docx

Microsoft Word - テキスト.docx 学籍番号 氏 名 情報電子工学演習 Ⅴ( ハードウェア実技編 ) PIC マイコンによる光学式テルミンの製作 新潟工科大学情報電子工学科 課題チェック欄 課題 ドレミ音の発生 (6/28) 回路図 (7/5) フローチャート (7/12) 評価 スケジュール < 内容 > < 集合場所 > 第 1 回 (6/14) PIC マイコンとタイマモジュールの活用 [S2-9] 第 2 回 (6/21) パルスの発生とオシロスコープによる観察

More information

a.fm

a.fm 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います TB3099 ゼロクロススイッチングによるリレーの長寿命化 Author: Stephen Allen Microchip Technology Inc. はじめに本書では PIC16F1708 マイクロコントローラでゼロクロス検出機能を実装する方法を紹介します 本書では この機能を使って 220

More information

Microsoft PowerPoint - NxLecture ppt [互換モード]

Microsoft PowerPoint - NxLecture ppt [互換モード] 011-05-19 011 年前学期 TOKYO TECH 命令処理のための基本的な 5 つのステップ 計算機アーキテクチャ第一 (E) 5. プロセッサの動作原理と議論 吉瀬謙二計算工学専攻 kise_at_cs.titech.ac.jp W61 講義室木曜日 13:0-1:50 IF(Instruction Fetch) メモリから命令をフェッチする. ID(Instruction Decode)

More information

PIC24F Family Reference Manual Section 9 WDT

PIC24F Family Reference Manual Section 9 WDT 第 9 章 (WDT) ハイライト 本章では次のトピックについて説明します 9.1 はじめに... 9-2 9.2 WDT の動作... 9-2 9.3 レジスタマップ... 9-5 9.4 設計の秘訣... 9-6 9.5 関連するアプリケーションノート... 9-7 9.6 改版履歴... 9-8 9 2007 Microchip Technology Inc. Advance Information

More information

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一 RX210 グループ IRQ 割り込みを使用したパルス出力 要旨 本サンプルコードでは IRQ 割り込みが発生すると 一定期間タイマでパルスを出力する 方法について説明します 対象デバイス RX210 1 / 25 内容 1. 仕様... 3 2. 動作確認条件... 3 3. ハードウェア説明... 3 3.1 使用端子一覧... 3 4. ソフトウェア説明... 4 4.1 動作概要... 4

More information

PIC24F Family Reference Manual, Section 9 Watchdog Timer (WDT)

PIC24F Family Reference Manual, Section 9 Watchdog Timer (WDT) 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 9. ウォッチドッグタイマ (WDT) ハイライト 本セクションには以下の主要項目を記載しています 9.1 はじめに... 9-2 9.2 WDT の動作... 9-3 9.3 レジスタマップ... 9-7 9.4 設計のヒント... 9-8 9.5 関連アプリケーションノート...

More information

Flash Loader

Flash Loader J MA1309-A プロジェクターファームウェア更新ガイド 本書はお読みになった後も大切に保管してください 本書の最新版は下記ウェブサイトに公開されております http://world.casio.com/manual/projector/ Microsoft Windows Windows Vistaは米国 Microsoft Corporationの米国およびその他の国における登録商標または商標です

More information

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

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer) RX 開発環境の使用方法 (CS+ Renesas Flash Programmer) 第 2 版 2018 年 03 月 13 日 1. 概要 1.1 概要 本アプリケーションノートでは RX シリーズで使用する開発環境についての解説を行います 解説を行う開発環境は以下の 3 つです 1.RX ファミリ用 C/C++ コンパイラパッケージ 2.Renesas Flash Programmer(RFP)

More information

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

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ 第 2 回 本日の内容割り込みとは タイマー 割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれば 次の動作に移るし そうでなければ また少し待ってから同じことを繰り返す

More information

PIC16(L)F1703/7 Data Sheet

PIC16(L)F1703/7 Data Sheet 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 14/20 ピン 8 ビット先進アナログフラッシュマイクロコントローラ コアの特長 : C コンパイラ向けに最適化された RISC アーキテクチャ わずか 49 個の命令 動作速度 : - 0 ~ 32 MHz - 最小 125 ns の命令サイクル 割り込み機能 16 段のハードウェアスタック

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

ex04_2012.ppt

ex04_2012.ppt 2012 年度計算機システム演習第 4 回 2012.05.07 第 2 回課題の補足 } TSUBAMEへのログイン } TSUBAMEは学内からのログインはパスワードで可能 } } } } しかし 演習室ではパスワードでログインできない設定 } 公開鍵認証でログイン 公開鍵, 秘密鍵の生成 } ターミナルを開く } $ ssh-keygen } Enter file in which to save

More information

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

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ 第 2 回 本日の内容割り込みとは タイマー 割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれば 次の動作に移るし そうでなければ また少し待ってから同じことを繰り返す

More information

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c 第 11 回機械語とアーキテクチャ コンピュータは, 記号で組み立てられ, 記号で動く機械 : ソフトウェアソフトウェア としても理解されなければならない ソフトウェアの最も下位レベルのしくみが ( 命令セット ) アーキテクチャ である 講義では命令符号 ( 機械語 ) の構成と種類についてまとめる また, 機械語を効率良く実行するために採用されている技術について紹介する 機械語とアセンブリ言語

More information

Microsoft Word - 4章.doc

Microsoft Word - 4章.doc Ⅳ 赤外線 LED 活用例 ( 赤外線通信 ) 3 実験 (1) 赤外線通信の様子を調べる回路の製作ア使用部品実験に使用する部品を表 Ⅳ-3に示す 表 Ⅳ-3 赤外線通信実験ボード部品表 No 部品名 個数 1 家庭用電化製品のリモコン 1 2 ブレットボード 1 3 赤外線受信モジュール 1 4 抵抗 430Ω 1 5 信号確認用赤色発光ダイオード 1 6 測定用オシロスコープ 1 7 電池 BOX

More information

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

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev:01 10.4.2013 PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を確認する方法 JTAG アクセスができるデバイス ( セキュリティ Fuse 断ではできません ) に対して

More information

SMSC LAN8700 Datasheet

SMSC LAN8700 Datasheet 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います Microchip 社 LAN9252 SDK と Beckhoff 社 EtherCAT SSC の統合 Author: Kansal Mariam Banu Shaick Ibrahim Microchip Technology Inc. 概要 Microchip 社の LAN9252 は

More information

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl NUCLEO-F401RE の TrueSTUDIO プロジェクト構築方法 V001 2014/09/24 Atollic TrueSTUDIO for ARM Lite を使用して NUCLEO-F401RE のプロジェクトを新規に作成する方法について説明します また ビルドとデバッグについても説明しています 目次 1. 新規プロジェクト作成の準備... 2 2. 新規プロジェクトの作成... 3

More information

Sharpdesk V3.5インストレーションガイド:プロダクトキー編

Sharpdesk V3.5インストレーションガイド:プロダクトキー編 Sharpdesk V3.5 インストレーションガイド : プロダクトキー編 Version 1.0 著作権 このソフトウェアの著作権はシャープ株式会社にあります 著作権法で許諾される場合を除き 無断で複製 転載 翻訳することはできません 登録商標 SHARP および Sharpdesk はシャープ株式会社の登録商標です Microsoft および Windows は Microsoft 社の登録商標です

More information

Nios II Flash Programmer ユーザ・ガイド

Nios II Flash Programmer ユーザ・ガイド ver. 8.0 2009 年 4 月 1. はじめに 本資料は Nios II 開発環境においてフラッシュメモリ または EPCS へのプログラミングを行う際の参考マニュアルです このマニュアルでは フラッシュメモリの書き込みの際に最低限必要となる情報を提供し さらに詳しい情報はアルテラ社資料 Nios II Flash Programmer User Guide( ファイル名 :ug_nios2_flash_programmer.pdf)

More information

Notes and Points for ADuCM320 Internal Flash memory

Notes and Points for ADuCM320 Internal Flash memory 表紙 ANALOG DEVICES 社製 ADuCM320 内蔵 Flash メモリ対応手順書 株式会社 DTS インサイト ご注意 (1) 本書の内容の一部または 全部を無断転載することは禁止されています (2) 本書の内容については 改良のため予告なしに変更することがあります (3) 本書の内容について ご不明な点やお気付きの点がありましたら ご連絡ください (4) 本製品を運用した結果の影響については

More information

Sample Rate Conversion Library for PIC32 User’s Guide

Sample Rate Conversion Library for PIC32 User’s Guide 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 2013 Microchip Technology Inc DS61190A_JP Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください Microchip 社製品は 該当する Microchip 社データシートに記載の仕様を満たしています Microchip 社では

More information

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

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc DWR-S01D Updater 取扱説明書 発行日 :2012/5/14 目次 概要...3 機能...3 準備するもの...3 本ソフトウェアについて...3 インストール手順...4 USBドライバーのインストール手順...8 デバイスマネージャーからのUSBドライバーのインストール手順...11 アップデート手順...16 アップデート後の確認...17 アップデートに失敗した場合...17

More information

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL ブート領域 フラッシュ領域の分割方法 RL78 ファミリ用 C コンパイラ CC-RL 2016 年 10 月 5 日 Rev.2.00 ソフトウエア事業部 ソフトウエア技術部 ルネサスシステムデザイン株式会社 R20UT3475JJ0200 アジェンダ はじめにページ 3 概要ページ 4 ブート領域 フラッシュ領域共通ページ 12 ブート領域ページ 19 フラッシュ領域ページ 38 デバッグツールページ

More information

ご注意 : この日本語版ドキュメントは 参考資料としてご使用の上 最新情報につきましては 必ず英語版オリジナルをご参照いただきますようお願いします PIC12F1822/16F182X 8/14/20 ピン 8 ビットフラッシュマイクロコントローラ製品概要 高性能 RISC CPU: 命令数は 49

ご注意 : この日本語版ドキュメントは 参考資料としてご使用の上 最新情報につきましては 必ず英語版オリジナルをご参照いただきますようお願いします PIC12F1822/16F182X 8/14/20 ピン 8 ビットフラッシュマイクロコントローラ製品概要 高性能 RISC CPU: 命令数は 49 ご注意 : この日本語版ドキュメントは 参考資料としてご使用の上 最新情報につきましては 必ず英語版オリジナルをご参照いただきますようお願いします 8/14/20 ピン 8 ビットフラッシュマイクロコントローラ製品概要 高性能 RISC CPU: 命令数は 49 で習得が容易 動作速度 : - DC 32 MHz クロック入力 - DC 125 ns 命令サイクル 割り込み機能 自動コンテキスト保存機能付き

More information

#define HOUR 0x04 #define DAY 0x05 #define WEEKDAY 0x06 #define MONTH 0x07 #define YEAR 0x08 #define CKOUT 0x0D #define CTRLT 0x0E // CLKOUT // TIMER

#define HOUR 0x04 #define DAY 0x05 #define WEEKDAY 0x06 #define MONTH 0x07 #define YEAR 0x08 #define CKOUT 0x0D #define CTRLT 0x0E // CLKOUT // TIMER ****************** RTC clock with thermo & moisture meter by PIC12F1827 LCD display and internal clock By nobcha all right reserved Ver 1.0 10/14/2012 PIC16F1827 4bits paralell LCD PIC12F1827 + LCD + RTC8564NB

More information

Visual DSP++ install and tutorial

Visual DSP++ install and tutorial Visual DSP++ インストール & チュートリアル 第 4 版 金子システム株式会社 1 ご注意 1. 本資料に記載されている内容は本資料発行時点のものであり 予告なく変更することがあります 当社製品のご購入およびご使用にあたりましては 当社ホームページを通じて公開される情報を参照ください 2. 当社から提供する情報の正確性と信頼性には万全を尽くしていますが 誤りがないことを保証するものではありません

More information

-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

-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 マイクロプロセッサと周辺回路の接続 制御バス プロセッサ データ バス アドレス バス メモリ 周辺インタフェース バスの基本構成 Fig.-1 バスによる相互接続は, 現在のコンピュータシステムのハードウェアを特徴づけている. バス (Bus): 複数のユニットで共有される信号線システム内の データの通り道

More information

も 常に 2 つのコイルに電圧を印加する 2 層励磁方式や 1 つのコイルと 2 つのコイルに交互に電圧を印 2

も 常に 2 つのコイルに電圧を印加する 2 層励磁方式や 1 つのコイルと 2 つのコイルに交互に電圧を印 2 コンピュータ工学講義プリント (2 月 5 日 ) 今回は パルスモータ ( ステッピングモータ ) の制御法を学ぶ パルスモータは 電圧のパルスを入力すると そのパルスの数に比例した角度だけ回転する性質を持っている そのため 回転角のセンサを用いることなく 回転角を制御用のマイコンが把握できる事となり マイコン制御に向いたモータといえる パルスモータの原理( 教科書 P.134 参照 ) パルスモータにはコイルに流れる電流の方向が変わるバイポーラ型と

More information

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

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code // USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 2017.03.16 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code void main(void) /* IO ピン初期設定 */ ANSEL = 0x00; // 0b10000000

More information

Notes and Points for TM4C123Gx Internal Flash memory

Notes and Points for TM4C123Gx Internal Flash memory 表紙 TI 社製 TM4C123GH6PM 内蔵 Flash メモリ対応手順書 株式会社 DTS インサイト ご注意 (1) 本書の内容の一部または 全部を無断転載することは禁止されています (2) 本書の内容については 改良のため予告なしに変更することがあります (3) 本書の内容について ご不明な点やお気付きの点がありましたら ご連絡ください (4) 本製品を運用した結果の影響については (3)

More information

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x Base_STM32F4_Discovery の説明 2013/09/05 STM32F4 Discovery 基板の CPU STM32F407VG の FlashMemory 0x08010000 番地に書き込んで実行させる ユーザープログラムのためのプロジェクトの雛形です 本プロジェクトを元にユーザープログラムを作成して USB 経由で CPU に書き込みます USB 経由で CPU にプログラムを書き込むためには

More information

Visual DSP++ install and tutorial

Visual DSP++ install and tutorial Visual DSP++ インストール & チュートリアル 第 3 版 金子システム株式会社 1 ご注意 1. 本資料に記載されている内容は本資料発行時点のものであり 予告なく変更することがあります 当社製品のご購入およびご使用にあたりましては 当社ホームページを通じて公開される情報を参照ください 2. 当社から提供する情報の正確性と信頼性には万全を尽くしていますが 誤りがないことを保証するものではありません

More information

ex05_2012.pptx

ex05_2012.pptx 2012 年度計算機システム演習第 5 回 2012.05.25 高水準言語 (C 言語 ) アセンブリ言語 (MIPS) 機械語 (MIPS) コンパイラ アセンブラ 今日の内容 サブルーチンの実装 Outline } ジャンプ 分岐命令 } j, jr, jal } レジスタ衝突 回避 } caller-save } callee-save 分岐命令 ( 復習 ) } j label } Jump

More information

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以 No. ESC-APN-026-02 Document No.: ESC-APN-026-02 adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以下 本書 ) は adviceluna にて下記 Linux 環境をデバッグする手順を説明した文書です Application Shared Library Loadable

More information

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の Create New Project をクリックし 要求されたプロジェクト情報を入 PSoC Creator クイックスタートガイド インストール http://www.cypress.com/go/creator から PSoC Creator をダウンロードするか キット CD からインストールします 支援が必要な場合は Cypress Support 1-800-541-4736 へ電話して 8 を選択してください 機能 システム要件およびインストールの注意事項については http://www.cypress.com/go/creatordownloads

More information

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx PIC-USB マイコンボード C 言語による PIC プログラミング入門 ( 浅川毅著 ) にて使用しているマイコンボードです プログラム ファームウェア 基板単体 パーツ類 URL1 より全てダウンロード可能 URL2 より購入可能 URL2 または電子パーツ店より購入可能 URL1 ソースファイルほか http://www.tdupress.jp/download/robot-mpu/isbn978-4-501-55350-0-2.html

More information

余白 : 上下 25.4mm, 左右 19mm (Word2012 での やや狭い 設定 ) マイコンプログラミング演習 I レポート 1 実験日 提出日 回路構築 /LED を用いた I/O 制御 [16pt] 班員と担当責任者第 0 班レポート作成

余白 : 上下 25.4mm, 左右 19mm (Word2012 での やや狭い 設定 ) マイコンプログラミング演習 I レポート 1 実験日 提出日 回路構築 /LED を用いた I/O 制御 [16pt] 班員と担当責任者第 0 班レポート作成 レポートを書く上での心得 実験レポートは, この実験を何も知らない人がこのレポート通りに実験を行って, ほぼ同じ結果が出せる程度の完成度 ( 実験の再現性 ) が求められる. そのためには教科書やスライドを丸写しするのではなく, 自分で内容を理解し, 自分の言葉で書く必要がある. また, 学術分野などで多少の違いはあるが, 一般的なレポートおよびレジュメ等の書き方としての大まかなルールを以下に示す.

More information

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド RH850の割り込み / 例外実現方法 CC-RH アプリケーションガイド R20UT3546JJ0101 2018.10.12 ソフトウェア開発統括部 ソフトウェア技術部ルネサスエレクトロニクス株式会社 アジェンダ 概要ページ 03 割り込み / 例外発生時に実行する関数の定義ページ 10 直接ベクタ方式のベクタの定義ページ 17 テーブル参照方式のベクタの定義ページ 25 その他 割り込み制御ページ

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS07.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS

More information

スクールCOBOL2002

スクールCOBOL2002 (h) 登録集原文の指定方法 . 登録集原文の指定方法 複数の COBOL プログラムに共通の記述を別のソースファイルとしておき COPY 文で取り込むことができます 登録集原文の概念図を下欄に示します このようにすると コーディング量を削減でき 記述ミスもなくなるため 開発効率を高めることができます ここでは 第 章で実習した reidai.cbl というソースファイルの DATA0 と YYMMDD

More information

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ 8 タイマ割り込みを使ってみよう割り込み (Interrupt) とは, 言葉の意味の通り, ある作業中に割り込むことである. マイコンにおいてはとても重要な機能の一つである. 例えば, インスタントカップ麺にお湯を入れて 3 分間待ってから食べることを想像してみよう. お湯を入れてカップ麺ができるまでの 3 分間, 時計の針だけを見つめ続けて, 他には何にもせずに待ち続ける人はほとんどいないだろう.

More information

型名 RF014 デジタル ラジオコミュニケーションテスタ Digital Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation 参考資料 RF014SDK-M001 第 1 章製品概要本開発キットは RF014 デジタルラジオコミュニケーションテスタ ( 本器 ) を使用したソフトウェアを開発するためのライブラリソフトウェアです

More information

PICF/LF1847 表 1: デバイス PICF/LF1847 ファミリの各製品 プログラムメモリフラッシュ ( ワード ) データ EEPROM ( バイト ) SRAM ( バイト ) I/O 10 ビット A/D (ch) タイマ 8/ ビット EUSART MSSP CCP/ ECCP

PICF/LF1847 表 1: デバイス PICF/LF1847 ファミリの各製品 プログラムメモリフラッシュ ( ワード ) データ EEPROM ( バイト ) SRAM ( バイト ) I/O 10 ビット A/D (ch) タイマ 8/ ビット EUSART MSSP CCP/ ECCP ご注意 : この日本語版ドキュメントは 参考資料としてご使用の上 最新情報につきましては 必ず英語版オリジナルをご参照いただきますようお願いします PICF/LF1847 18/20/28 ピン 8 ビットフラッシュマイクロコントローラ製品概要 高性能 RISC CPU: 命令数は 49 で習得が容易 動作速度 : - DC 32 MHz クロック入力 - DC 12 ns 命令サイクル 割り込み機能

More information

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

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000 CoIDE 用 STM32F4_UART2 の説明 V002 2014/03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000000 です デバッグが可能です 提供する PC のアプリケーションの Access_SerialPort

More information

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

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受 STM32L_UART1 の説明 V004 2014/03/30 STM32L-Discovery の UART 1 の送受信を行うプログラムです 無料の開発ツール Atollic TrueSTUDIO for ARM Lite( 試用版 ) で作成したプロジェクトです プログラムの開始番地は 0x08000000 です デバッグが可能です PC アプリケーションの Access_SerialPort

More information

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O コンピュータ工学講義プリント (1 月 29 日 ) 今回は TA7257P というモータ制御 IC を使って DC モータを制御する方法について学ぶ DC モータの仕組み DC モータは直流の電源を接続すると回転するモータである 回転数やトルク ( 回転させる力 ) は 電源電圧で調整でき 電源の極性を入れ替えると 逆回転するなどの特徴がある 図 1 に DC モータの仕組みを示す DC モータは

More information

Crucial Client SSDでのファームウェアアップデート手順

Crucial Client SSDでのファームウェアアップデート手順 Crucial Client SSD でのファームウェアアップデート手順 概要このガイドを使うことにより パーソナルコンピューティング環境に ( 以下本文書ではホストシステムという ) インストールされた Crucial SSD でファームウェアアップデートを実行することがきます このガイドでは 2 つのアップデート方法を説明します 方法 1:Crucial Storage Executive ソフトウェアを介したオンラインアップデート

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 13 週 割込みアーキテクチャ 2013 年 12 月 18 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ ( 演算アルゴリズムと回路

More information

PIC (, 2, 3 ) PIC ( 1, 2, 3 ) 1 2 (, 2 ) PIC ( 1, 2 ) 2.1 (p.34) define #define (define ) (p.61) 1 30 (RD 7 /P SP 7 ) 32 (V DD ) IC

PIC (, 2, 3 ) PIC ( 1, 2, 3 ) 1 2 (, 2 ) PIC ( 1, 2 ) 2.1 (p.34) define #define (define ) (p.61) 1 30 (RD 7 /P SP 7 ) 32 (V DD ) IC PIC 19 12 22 1 (, 2, 3 ) PIC ( 1, 2, 3 ) 1 2 (, 2 ) PIC ( 1, 2 ) 2.1 (p.34) define #define (define ) 2.2 4-1 (p.61) 1 30 (RD 7 /P SP 7 ) 32 (V DD ) IC 2.3 5-2 (p.102) 5 6 ADCON0< 5 >, ADCON0< 4 > ADCON1

More information

Manchester Decoder Using the CLC and NCO

Manchester Decoder Using the CLC and NCO 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います AN1470 CLC と NCO を使ったマンチェスタデコーダ 著者 : 概要 PIC16F150x が内蔵する CLC( 構成可能なロジックセル ) と NCO ( 数値制御オシレータ ) を使うと マンチェスタデコーダを構築できます PIC16F150x は 低消費電力 XLP 技術に対応したエンハンストコアを実装したデバイスです

More information

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

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R TrueSTUDIO 用 L152CD_UART1 の説明 V001 2014/10/22 UART( 非同期シリアル通信 ) で送受信を行う STM32L152C-DISCO のプロジェクトサンプルです STM32L152C-DISCO は STMicroelectronics 社製の Cortex-M3 ARM CPU である STM32L152RCT6 を搭載した基板です 試用版の開発ツール

More information

DSP5Dアップグレードガイド

DSP5Dアップグレードガイド DSP5D アップグレードガイド このガイドでは DSP5D の各種ファームウェアを最新にアップデートする手順を説明します 必ずお読みください アップデート作業は お客様ご自身の責任において行なっていただきます アップデートを実行する前に 必要なデータはバックアップしておいてください PM5D とカスケード接続している場合は DSP5D をアップデートすると PM5D のアップデートも必要になる場合があります

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2019 年度クラス C D 情報科学基礎 I 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節命令一覧は p.113) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語

More information

WLAR-L11G-L/WLS-L11GS-L/WLS-L11GSU-L セットアップガイド

WLAR-L11G-L/WLS-L11GS-L/WLS-L11GSU-L セットアップガイド の特長や 動作環境を説明します プロバイダ契約について の特長 動作環境 各部の名称とはたらき 設定ユーティリティについて 第 章 はじめにお読みください 動作確認プロバイダや最新の情報は のホームページからご覧いただけます は次の通りです を使ってインターネットをご利用になるためには 以下の条件を満たしたプロバイダと契約してください ルータを使用して 複数台のパソコンをインターネットに接続できるプロバイダ

More information

ETCB Manual

ETCB Manual ETCB Manual HARDWARE & PROGRAMMING MANUAL 目次 始めに ETCB 仕様 開発環境の構築 01 始めに 始めに 始めに 注意事項 免責事項 同梱品 02 始めに サポート 03 ETCB 仕様 ETCB 仕様 概要 仕様 項目サブ項目内容電源推奨入力電圧 6.6V~12V 最大入力電圧 16V 出力電圧内部 3.3V 外部 5.0V 最大出力電流値最大 2.2A

More information

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

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

More information

AN1019 そのような配慮として 下記の基本的ガイドラインに沿って 可能な限り 環境条件または動作条件を制限する必要があります アプリケーションの温度を可能な限り下げる アプリケーションの電圧 ( または EEPROM の VCC 電圧 ) を可能な限り下げる 書き込みバイト数を可能な限り少なくす

AN1019 そのような配慮として 下記の基本的ガイドラインに沿って 可能な限り 環境条件または動作条件を制限する必要があります アプリケーションの温度を可能な限り下げる アプリケーションの電圧 ( または EEPROM の VCC 電圧 ) を可能な限り下げる 書き込みバイト数を可能な限り少なくす 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います EEPROM 書き込み耐性の基礎 AN1019 Author: 基礎 David Wilkie Microchip Technology Inc. EEPROM の 書き込み耐性 を一言で明確に定義して理解する事はできません 以下で説明するように メーカーごとに定義が異なります 全てのメーカー

More information

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル < 概要 > WAGO-I/O-SYSTEM750 シリーズ PROFIBUS バスカプラ / コントローラと 三菱電機 製 PROFIBUS ユニット QJ71PB92D とのコンフィグレーション手順を説明しております < 使用機器接続図 > 下記機器を準備し 図の通り接続しました WAGO-I/O-SYSTEM PROFIBUS バスカプラ / コントローラ 750-xxx および I/O モジュール

More information

回路 : Vdd GND 回路図と呼べるようなものではありません オシレータは外部 ( セラミック発振子 ) なので GP4 と GP5 は使えません 四角の枠内はモジュールなので ここから VDD GND TX RX の4 本をつなぐだけです 測定端子 (GP0) は 1MΩの抵抗と 2MΩの半固

回路 : Vdd GND 回路図と呼べるようなものではありません オシレータは外部 ( セラミック発振子 ) なので GP4 と GP5 は使えません 四角の枠内はモジュールなので ここから VDD GND TX RX の4 本をつなぐだけです 測定端子 (GP0) は 1MΩの抵抗と 2MΩの半固 ペン型オシロスコープ ( もどき ) の作り方 本書は PC 接続タイプの簡易 ペン型オシロスコープ を自作する方のための解説書です 開発時間 経費を極力おさえたため 通常の電子回路やファームウェアの作成方法と異なることがあります 動作不具合 故障などは保証いたしません また 本機を接続 ソフトウェアを使用したことによるパソコンの故障等の一切の責務は当方にはありません 自己責任にてご利用ください と

More information