Getting Started with the tinyAVR 1-series

Similar documents
TB3179 メモリ保護ユニット (MPU) の設定方法 はじめに メモリ保護ユニット (MPU) は Cortex -M7 コアがメモリ保護のために備えているオプションのコンポーネントです MPU はメモリマップを分割し それぞれにアクセス権とルールを設定します 本書では Cortex-M7 ベー

B MPLAB XC HPA Renewal Instructions.book

TB3172 Cortex -M7 マイクロコントローラの XDMAC を使ってオーディオアプリケーションにピンポンバッファリングを実装する方法 はじめに オーディオシステムアプリケーションでは リアルタイムシステムに関する代表的なプロデューサ / コンシューマ問題が発生する可能性があります タイミ

Cortex -M キャッシュコントローラを使って決定論的コード性能を達成する方法 TB3186 はじめに マイクロコントローラベース (MCU) の組み込みアプリケーションでは ソフトウェアは不揮発性メモリに保存して実行します この不揮発性メモリとは 通常はフラッシュメモリです フラッシュメモリは

TB3177 MPLAB Harmony Configurator (MHC) を使った Hello World アプリケーションの作成 はじめに MPLAB Harmony は互換で相互運用可能なライブラリで構成されたソフトウェアフレームワークであり 周辺モジュールドライバ ミドルウェア システム

AVRAPPS-1544: Getting Started with Events on the tinyAVR 1-series

PIC10(L)F320/322 Product Brief

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

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

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

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

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

SMSC LAN8700 Datasheet

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

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

a.fm

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

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

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

PIC16F18446 Sensor Board User's Guide

Lab GPIO_35 GPIO

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

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

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

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

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

Manchester Decoder Using the CLC and NCO

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

目次 はじめに キャッシュポリシーの概要 サポートされている設定 キャッシュコヒーレンシ問題 キャッシュメンテナンス API を使ったキャッシュコヒーレンシの処理 DMA と CPU が共有するメモリ領域でのキャッシュの無効化..

Welcome-Kit ~STM32L4-Nucleo~

ST-LINK/V2-1 への Upgrade V /10/07 ST-LINK/V2-1 USB driver のインストールおよび ST-LINK/V2-1 の Upgrade について説明します ST-LINK/V2-1 USB driver をインストールしてから ST-LIN

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

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

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

スライド 1

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

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

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

FT-450D シリーズ MAIN ファームウェアアップデートマニュアル 本ソフトウェアは FT-450D/FT-450DM/FT-450DS の アップデートファームウェアです FT-450 シリーズのアップデートには使用できません 八重洲無線株式会社

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

SMSC LAN8700 Datasheet

スライド 1

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

スライド 1

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

AN2754 USB-to-I2C Bridging with USB7002, USB7050, USB7051, and USB7052 Hubs

はじめに URBANO PROGRESSO を microusb ケーブル 01 ( 別売 ) またはこれと共通の仕様の microusb ケーブル ( 別売 )( 以下 USB ケーブル ) と接続して USB テザリング機能をご使用いただくためには あらかじめパソコンに USB ドライバ をイン

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

EB-RL7023+SB/D2

ポリシーマネージャ       Linux版                                 集中管理環境の新規構築

著作権および商標 この文書には が所有権を持つ機密事項が含まれます この資料のいかなる部分も許 可無く複製 使用 公開することを固く禁じます 本書は の従業員および許可された 取引先だけに使用が認められています 本書で提供されたデータは正確で信頼性の高いものですが このデータの使用について株式会社

MPLAB Code Configurator v3.xx User’s Guide

MS104-SH2 USBドライバ(仮想COMポートドライバ)の不具合について

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

目次 USBドライバダウンロードの手順...2 USBドライバインストールの手順...3 インストール結果を確認する...19 USBドライバアンインストール / 再インストールの手順...21 USB ドライバダウンロードの手順 1. SHL21 のダウンロードページからダウンロードしてください

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

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

FC4510HT2 インストールマニュアル(ダウンロード編)

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

ESOTERIC ASIO USB DRIVER インストールマニュアル Windows 用 システム推奨条件 2 インストールで使用する言語を選択して 次へ ボタンをクリックする Intel Core 2 Duo 以上のプロセッサー搭載コンピュータ 搭載メモリ 1GB 以上 対応 OS Windo

monologue Sound Librarian 取扱説明書

起動画面

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

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

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

地図 SD カードを取り外す 最初に ナビゲーション本体から地図 SD カードを取り外します 本操作は地図 SD カードを初めて ROAD EXPLORER Updater に登録するときや パソコンにダウンロードしたデータを地図 SD カードに保存するときに実行してください 1 ナビゲーション本体

:30 18:00 9:30 12:00 13:00 17:00

DSP5Dアップグレードガイド

はじめに 京セラ製スマートフォンを指定の microusb ケーブル ( 別売 ) またはこれと共通仕様の microusb ケーブル ( 別売 )( 以下 USB ケーブル ) と接続して USB テザリング機能をご使用いただくためには あらかじめパソコンに USB ドライバ をインストールしてい

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

Microsoft Word - バーチャルクラス(Blackboard)ログイン方法ガイド.docx

FC4510HT2バージョンアップマニュアル

Notes and Points for TMPR454 Flash memory

Microsoft Word - (171118_v4250)ACS_インストールマニュアル.doc

A 既製のプロジェクトがある場合

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

AN1609 GNUコンパイラ導入ガイド

スライド 1

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト :

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

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

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

adviceシリーズスタートアップガイド(Cortex-M3編)

AN178 USB仮想シリアルドライバ インストールガイド

USBドライバインストールマニュアル [Windows Vista/Windows 7]

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

Transcription:

tinyavr 1 シリーズ入門 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 前提条件 ハードウェア要件 Microchip ATtiny817 Xplained Pro ボード Micro-USB ケーブル (Type-A/Micro-B) ケーブル ( 両端にメスコネクタ付き ) インターネット接続 ソフトウェア要件 Atmel Studio 7.0 Atmel Studio ATtiny_DFP バージョン 1.2.112 以上 サポートするブラウザの一覧は以下でご覧になれます : http://start.atmel.com/static/help/ から [Requirements and Compatibility] [Supported Web Browsers] を選択 実習の所要時間 : 120 分 はじめに 本書の実践トレーニングにより Atmel Studio および Atmel START と それらが提供する高機能なユー ザインターフェイスおよび開発ツールを使って AVR アプリケーションを開発する方法が学べます Atmel START を使うと Microchip 社製マイクロコントローラを使った開発が容易に始められます MCU を選択し 各種ソフトウェアコンポーネント ( ドライバ ミドルウェア サンプルプロジェクト ) を組み込みアプリケーション向けに簡単かつ効率的な方法で設定できます 設定を完了した後は Atmel Studio またはサードパーティー製開発ツールを使ってプロジェクトを生成できます 最終製品向けに機 能を拡張するためのコード開発と ダウンロードしたコードのコンパイル / プログラミング / デバッグには IDE を使います Atmel START は以下の機能を提供します : ソフトウェアおよびハードウェア要件に基づいて MCU を選定するための支援 サンプルコードの入手と開発 ドライバ ミドルウェア サンプルプロジェクトの設定 適切な PINMUX レイアウトを設定するための支援 システムクロックの設定 ATtiny817 Xplained Proi 評価用キットは ATtiny817 マイクロコントローラを評価するためのハードウ ェアプラットフォームを提供します このキットはデバッガを内蔵し Atmel Studio とのシームレスな 統合を提供します このキットにより ATtiny817 の各種機能を容易に利用でき ユーザ回路にデバイ スを簡単に組み込む事ができます このトレーニングモジュールにより Atmel START 内でのアプリケーションの設定方法および Atmel START プロジェクトの再構成方法と その後の Atmel Studio 7 内での実装方法が学べます Training Manuals DS40001949A_JP - p. 1

アプリケーションは以下の周辺モジュールを使って実装します : GPIO TCA/TCB タイマ イベントシステム USART CCL (Configurable Custom Logic) PIT (Periodic Interrupt Interval) 図 1. ATtiny817 Xplained Pro 本書の主な内容は以下の通りです Atmel START 内でドライバを設定する PINMUX ドライバを設定し ボタンを押した時に LED がトグルする事を確認する タイマカウンタ A (TCA) を使って PWM 信号を生成し RTC 割り込みを使ってパルス幅を変更する TCB の入力キャプチャモードを使ってデューティサイクルと周波数を計測する USART を設定する Data Visualizer ツールを使ってデータをシリアルターミナルへ送信する CCL (Configurable Custom Logic) を使う : CCL はプログラマブルな論理モジュールです CCL を各種デバイスピン イベント 周辺モジュールに接続する事で 外部の論理ゲートを使わずに簡潔なグルーロジック機能を実装できます 本書では CCL により GPIO からのイベント信号と 2 つの PWM 信号を使って特別な信号を生成します Note: このトレーニングのためのソリューションプロジェクトは Atmel START BROWSE EXAMPLES: 'Getting Started with the tinyavr 1-series で提供しています Training Manuals DS40001949A_JP - p. 2

目次 前提条件... 1 はじめに... 1 1. 本書で使うアイコン.... 4 2. 課題 1: LED をトグルする... 5 2.1. Atmel START プロジェクトを作成する... 5 2.2. Atmel START プロジェクトの概要... 9 2.3. コード開発... 11 2.4. アプリケーションをデバッグする... 12 3. 課題 2: PWM 信号を生成し デューティサイクルと周波数を計測する... 17 3.1. TCA ドライバ... 17 3.2. RTC ドライバ.... 23 3.3. TCB ドライバ... 25 3.4. イベントシステムドライバ.... 27 3.5. USART ドライバ.... 29 3.6. プロジェクトの生成とコードの開発... 30 4. 課題 3: バイナリ周波数シフトキーイング法の基本... 39 4.1. CCL ドライバ... 40 4.2. イベントシステムドライバ.... 42 4.3. PIT ドライバ... 44 4.4. プロジェクトを生成し コードを実行する... 44 5. まとめ... 47 6. 改訂履歴... 48 Microchip 社のウェブサイト... 49 顧客変更通知サービス... 49 カスタマサポート... 49 Microchip 社のデバイスコード保護について... 49 法律上の注意点... 50 商標... 50 DNV による品質管理システム認証... 51 各国の営業所とサービス... 52 Training Manuals DS40001949A_JP - p. 3

1. 本書で使うアイコン 本書では 課題の説明を読みやすくするために 以下のアイコンを使います 関連する情報を示します Tip: 役に立つヒントやテクニックを示します To do: 実行する目的を示します Result: 課題の手順を実行した結果を示します Warning: 重要な情報を示します Execute: 必要に応じてターゲットの外で実行するアクションを示します あ Training Manuals DS40001949A_JP - p. 4

2. 課題 1: LED をトグルする ボード上の押しボタンを使って LED を制御するアプリケーションを開発します LED は既定値状態で点灯し ボタンを押すと消灯します Atmel START 内で PINMUX ドライバ設定とクロック設定を使ってプロジェクトを設定した後 対応する Atmel Studio 7 プロジェクトを生成します Atmel START 設定によって生成した PINMUX ドライバ関数を使って Atmel Studio 7 内でコードを開発します ATtiny817 Xplained Pro ボードでは LED0 は PB4 ピンに接続し 押しボタン (SW0) は PB5 ピンに接続しています このアプリケーションは以下を使います 周辺モジュール : GPIO (PB4 PB5) クロック : 3.33 MHz 2.1 Atmel START プロジェクトを作成する PINMUX ドライバとクロックを Atmel START 内で設定し プロジェクトを作成します To do: Atmel START プロジェクトを新規作成します 1. Atmel Studio を起動します 2. [File] [New] [Atmel Start Project] を選択します 3. [CREATE NEW PROJECT] ウィンドウが Atmel Studio 7 内で開きます 下図の通り [Filter on device...] テキストボックスに 817X と入力した後 リストから [ATtiny817 Xplained Pro] を選択してハイライト表示にし [CREATE NEW PROJECT] をクリックします 図 2-1. 新規プロジェクトを作成する [MY SOFTWARE COMPONENTS] ウィンドウが開きます あ Training Manuals DS40001949A_JP - p. 5

4. [MY SOFTWARE COMPONENTS] ウィンドウ内で 以下を行います 1. [MY PROJECT] をクリックします 2. [Rename Component] を選択します 図 2-2. コンポーネントの名前を変更する [RENAME COMPONENT] ウィンドウが開きます 5. [RENAME COMPONENT] ウィンドウ内で 新規プロジェクトの名前として Assignment_ATtiny817 を指定し [Rename] を選択します 6. PINMUX を設定するため ウィンドウの左側にある ( ナビゲーションタブ ) をクリックしま す PINMUX Configurator には 選択されたデバイスパッケージのイラストが表示されます このイラストは 現在どのピンがどの周辺モジュールによって使われているのかを示します GPIO ピンはここで設定できます 図 2-3 内の赤枠 1~4 に示す通り PB4 を LED0 として設定し PB5 を SW0 として設定します 7. PB4 の設定 : 1. [PB4] をクリックします 2. [User label:] に LED0 と入力します 3. [Pin mode:] で [Digital output] を選択します Training Manuals DS40001949A_JP - p. 6

4. [Initial level:] で [Low] を選択します 図 2-3. PINMUX の設定 - LED0 8. PB5 の設定 : 1. [PB5] をクリックします 2. [User label:] に SW0 と入力します 3. [Pin mode:] で [Digital intput] を選択します 4. [Initial level:] で [Pull-up] を選択します 図 2-4. PINMUX の設定 - SW0 ATtiny817 Xplained Pro に関連する技術文書は Atmel Studio 内の [ATtiny817 Xplained Pro] ページ ( [Technical Documentation] を選択 ) からダウンロードできます [ATtiny817 Xplained Pro] ページは ATtiny817 Xplained Pro ボードを PC に接続すると表示されます 9. クロックを設定するため ウィンドウの左側にある ( ナビゲーションタブ ) をクリックし ます Training Manuals DS40001949A_JP - p. 7

[CLOCK CONFIGURATOR] ウィンドウが開きます そこには各種のオシレータおよびクロック源が表示されます その中から必要なクロック源を選択できます ( 出力周波数が計算されて表示されます ) [OSCILLATORS] セクションには 選択したデバイスで利用可能なオシレータが表示されま す オシレータパラメータは [Settings Dialog] ( 歯車アイコン ) を選択する事により設定で きます [SOURCES] セクションでは 入力信号とプリスケーラ分周比を選択する事により クロッ ク周波数を設定します 10. [SOURCES] から [Settings Dialog] ( 歯車アイコン ) をクリックすると 下図の通り 既定値のメインクロック設定が表示されます [CLOCK SETTING] ウィンドウが開きます 図 2-5. クロックの設定 このアプリケーションでは 既定値のクロック設定を変更しません メインクロック源は 20 MHz OSC に設定され プリスケーラの分周比を 6 に設定されています この設定で得られる CPU クロック周波数は 3.33 MHz です 各設定フィールドの横のをクリックすると 個々のビット設定に関するデータシートの説明が表示されます 11. [Close] をクリックして [CLOCK SETTING] ウィンドウを閉じます 12. 次に [GENERATE PROJECT] ボタンをクリックします 13. 下図の通りにプロジェクトの保存先パスを選択し [OK] をクリックします Training Manuals DS40001949A_JP - p. 8

図 2-6. プロジェクトインポートウィンドウ Result: Atmel START プロジェクトが作成されました 2.2 Atmel START プロジェクトの概要 Atmel START 内で設定されたプロジェクトは 周辺モジュールのドライバ関数およびファイルと 全てのドライバを初期化する main() 関数を生成します Atmel START はフォルダとファイルを以下の通りに生成します Config フォルダはクロック設定を格納します F_CPU が clock_config.h 内で定義されます ドライバヘッダファイルとソースファイルは src フォルダと include フォルダ内に格納されます include フォルダ内の atmel_start_pins.h ファイルは PINMUX ドライバ関数を格納します utils フォルダは ドライバとアプリケーション自体によってよく使われる一部の関数を定義したファイルを格納します atmel_start.c ファイル内の関数 atmel_start_init() により プロジェクト内の MCU ドライバ ミドルウェアが初期化されます プロジェクトの設定内で割り込みが有効にされている場合 ISR が driver_isr.c ファイルに格納されます Training Manuals DS40001949A_JP - p. 9

To do: Atmel START プロジェクトの概要を確認します 1. Assignment_ATtiny817 プロジェクト内で [Solution Explorer] ウィンドウから main.c ファイルをダブルクリックします 2. atmel_start_init 関数を選択してから 右クリックして [Goto Implementation] を選択します 同じ手順を system_init() 関数に対して実行する事で 関数定義を表示します mcu_init() 関数は 消費電力を削減するために 全てのピンの内部プルアップ抵抗を有効にします 全てのドライバ初期化関数は system_init() 関数から呼び出されます また LED0 および SW0 ポートピンは 出力および入力モードに設定され 初期状態に設定されます 3. CLKCTRL_init() 関数を右クリックして [Goto Implementation] を選択し 既定値クロック設定がコメントアウトされている事を確認します Tip: driver_init.c system_init() CLKCTRL_init() Atmel START 内で既定値とは異なるクロック設定を選択した場合 それは CLKCTRL_init() に反映されます Training Manuals DS40001949A_JP - p. 10

4. 下図の通り atmel_start_pins.h ファイルを開いてから下向き三角をクリックする事で このフ ァイル内で定義されている関数のリストを開き 便利な各種の GPIO 関数が生成された事を確認 します Result: Atmel START プロジェクトの概要を確認しました 2.3 コード開発 ATtiny817 Xplained Pro ボード上で LED0 と SW0 に関連付けられたピンの挙動を下表に示します 表 2-1. LED0 と SW0 に関連付けられたピンの挙動 SW0/LED0 ステータス ピンの状態 SW0 ボタンは押されている PB5: LOW SW0 ボタンは解放されている ( 既定値状態 ) PB5: HIGH LED0 ON PB4: LOW LED0 OFF PB4: HIGH To do: ボタンが押された時に LED を OFF にし ボタンが解放された時に LED を ON に戻すコードを書きます 1. ATtiny817_getting_started_events プロジェクト内で main.c ファイルを開きます 2. 以下の通りに SW0 ステータスを読み出して LED0 ステータスを設定するためのコードを while (1) ループの中に挿入します ボタン (SW0) が押されている時に LED0 は OFF です (LED0 ピンレベル = HIGH) ボタン (SW0) が解放されている時に LED0 は ON です (LED0 ピンレベル = LOW) if(!sw0_get_level()) { LED0_set_level(true); while(!sw0_get_level()); LED0_set_level(false); } // (SW0)button pressed. PB5 is low //LED0 is turned OFF : PB4 is high //wait till (SW0)button release. //(SW0)button released. LED0 is turned ON:PB4 is low Training Manuals DS40001949A_JP - p. 11

SW0_get_level() 関数は SW0 ピンのステータスを返します LED0_set_level(true) 関数は LED0 のレベルを HIGH に設定します 3. コードが完成したら <F7> を押す事によりソリューションをビルドします エラーが発生する事 なくソリューションは正常にビルドされます Result: コードは以下の通りに表示されます 図 2-7. 課題 1 のコード 2.4 アプリケーションをデバッグする To do: アプリケーション Assignment1: LED Toggle をデバッグします 1. Micro-USB ケーブルをコンピュータに接続する事により ATtiny817 Xplained Pro ボードに給電します 2. [Debug] [Start Debugging and Break] を選択するか <Alt + F5> を押します 指示に従って ATtiny817 Xplained Pro EDBG をプログラマ / デバッガとして選択し <Alt + F5> を再度押します Training Manuals DS40001949A_JP - p. 12

図 2-8. [Debug] メニュー ボードの内蔵デバッガのファームウェアバージョンが Atmel Studio のバージョン より古い場合 ファームウェアをアップグレードするためのダイアログが開きます Training Manuals DS40001949A_JP - p. 13

図 2-9. ファームウェアのアップグレード [Upgrade] を選択します 進捗バーが処理の完了を示したら [Close] をクリックします 次に [Debug] [Start Debugging and Break] を選択するか <Alt + F5> を押す事により デバッグを 開始します Result: デバッガが起動し main() 内でブレークしたら デバッグを開始できます 3. 下図の通り マージンをクリックしてブレークポイントを挿入します 図 2-10. ブレークポイントの挿入 4. [Debug] [Continue] をクリックする事により ブレークポイントまで実行します Training Manuals DS40001949A_JP - p. 14

Tip: デバッグを開始または再開するには Atmel Studio 7 ウィンドウの上端近くにあるツールバー内の再生ボタンが使えます キーボードショートカットとして <F5> キーも使えます 5. 押しボタン SW0 を押して 実行がブレークポイントで停止する事を観察します 6. 全ての PORTB ピンのステータスを確認するため [I/O View] ウィンドウを開き ([Debug] [Windows] [I/O] を選択 ) 下図の通りに[I/O Ports (PORTB)] レジスタグループをクリックします [I/O View] ウィンドウでは 全ての周辺モジュールのステータスを確認できます 下図の通り PB0~PB7 ピンの状態が OUT レジスタの Bits 列に右から左へ順番に示されます この図では PB4 ピン (LED0) のレベルは HIGH です ( 塗りつぶされた四角はビットステータス 1 (HIGH) を表し 空白の四角はビットステータス 0 (LOW) を表します ) 図 2-11. I/O 画面 Training Manuals DS40001949A_JP - p. 15

7. <F10> を押してシングルステップデバッグを実行し PB4 のステータスを観察します 上図の [Bits] 列では PB7 のビットステータスは左端の四角で示され PB0 のビットステータスは右端の四角で示されます 8. ブレークポイントをクリックする事で削除し [Debug] [Continue] をクリックするか を 選択する事により コードを実行します 9. を選択する事により デバッグを停止します 10. プッシュボタン (SW0) を押した時に LED0 がトグルする事を観察します アプリケーションが ATtiny817 Xplained Pro ボードに正しくプログラミングされました Training Manuals DS40001949A_JP - p. 16

3. 課題 2: PWM 信号を生成し デューティサイクルと周波数を計測する ATtiny817 は 2 つの 16 ビットタイマ / カウンタインスタンス (TCA TCB) と 1 つの 12 ビットタイマ / カウンタ (TCD) を備えています 以下では TCA を使って PWM 信号を生成するアプリケーションを開発します このアプリケーションでは RTC 割り込みを使って PWM 信号のデューティサイクルを変更します イベントシステムを介して TCA 波形出力を TCB に入力します TCB を入力キャプチャモードで使う事により 波形のデューティサイクルと周波数を計測します 計測したデータは USART を介してターミナルへ送信します TCA ではシングルスロープ PWM 生成モードを使います このモードでは PER レジスタによって周期を制御し CMPn コンパレータレジスタの値によって波形ジェネレータ (WG) 出力 (WOn) のデューティサイクルを制御します カウンタ値を CMPx レジスタおよび PER レジスタと比較する事で 波形の周期とパルス幅を設定します 課題 1 ( LED TOGGLE (Assignment_ATtiny817)) で使った Atmel START プロジェクトを再構成する事で TCA TCB イベントシステム RTC USART 向けのドライバを追加します このアプリケーションには以下の周辺モジュールを使います TCA (PB0 での波形出力 WO0) TCB イベントシステム (PA5 ピンからのイベント入力 ) RTC USART クロック : メインクロック : 3.33 MHz RTC クロック : 1 khz 3.1 TCA ドライバ To do: PWM 信号を生成するために TCA ドライバを追加します 1. 課題 1 で使ったプロジェクト Assignment_ATtiny817 を開きます 2. [Solution Explorer] ウィンドウ内でプロジェクト名 [Assignment_ATtiny817] をクリックしてか ら右クリックし 下図の通りに [Re-Configure Atmel Start Project] を選択します Training Manuals DS40001949A_JP - p. 17

図 3-1. [Re-Configure] メニュー [Atmel START] ウィンドウが開きます 3. ボックスをクリックし [ADD SOFTWARE COMPONENTS] ウィン ドウから [Drivers] を展開します 4. 下図の通り [Timer] ドライバを選択してから [Add Component(s)] をクリックします Training Manuals DS40001949A_JP - p. 18

図 3-2. ソフトウェアコンポーネントを追加する tinyavr 1 シリーズのトレーニング Timer 0 ドライバがプロジェクトに追加されます 5. 下図の通り [TIMER_0] をクリックしてから [Rename component] をクリックします Training Manuals DS40001949A_JP - p. 19

図 3-3. TCA の名前を変更する 6. 新しい名前として TCA_PWM を指定し [Rename] をクリックします 次に PWM 信号を生成するために 下図の通りに TCA モジュールを設定します To do: PB0 ピンで PWM 信号 W0 ( 周波数 : 32 khz 初期デューティサイクル : 10%) を生 成するよう TCA ドライバを設定します 図 3-4 内の赤枠 1~8 に設定を示します 1. [Driver] を [TCA:Init] として選択し [Mode] を [TCA Normal Mode] として選択します 既定値により [Driver] は [TCA:Init] として選択され [Mode] は [TCA Normal Mode] として選択されます このタイマは 2 通りのモード ( Normal mode (1x16 ビットタイマ / カウンタ ) と Split Mode (2x8 ビットタイマ )) を備えています Split Mode では 16 ビットタイマ / カウンタは 2 つの独立した 8 ビットタイマとして動作します 各 8 ビットタイマは PWM 生成用の 3 つのコンペアチャンネルを備えます 2. 波形出力 [WO/0] 向けに [PB0] ピンを選択します Training Manuals DS40001949A_JP - p. 20

Tip: TCA の WO/0 出力ピンを検証するには データシート内の I/O Multiplexing and Considerations セクションを参照してください 任意の設定フィールドの横のアイコンをクリックして I/O Multiplexing and Considerations セクションに移動し TCA WO/0 ピンを確認します 3. [ENABLE: Module Enable] チェックボックスを ON にする事により モジュールを有効にします 4. タイマ / カウンタのクロックとして [System Clock] を選択します 既定値として [System Clock] ( プリスケーラなし ) が選択済みです 5. [PER: Period] にレジスタ値として 100 ( または 0x64) を入力します このレジスタはタイマ / カウンタ内の 16 ビット TOP 値を格納します これにより PWM 周波数が決まります 6. WO0 出力向けに PORT 出力設定を得るため [CMP0EN: Compare 0 Enable:] チェックボックスを ON にします 7. [CMP0: Compare Register 0] に値 10 ( または 0xa) を入力します このレジスタは タイマのカウンタ値と常に比較されます 通常 コンパレータからの出力を使って波形を生成します このレジスタは PWM のデューティサイクルを決定します 初期デューティサイクルとして 10 (0xa) が選択済みです 波形出力 WO/0 が必要であるため コンパレータチャンネル 0 をここで設定します 8. [WGMMODE: waveform generation mode] では 波形生成モードとして [Single Slope PWM] を選択します 波形生成モードはカウンタのカウントシーケンス TOP 値 更新条件 割り込み条件 生成する波形のタイプを制御します Single Slope PWM モードでは WG 出力の周期を TCA.PER の値によって制御し デューティサイクルを TCA.CMPn の値によって制御します シングルスロープ PWM 周波数 (f PWM_SS ) は 周期設定 (TCA.PER) システムの周辺モジュールクロック周波数 (f CLK_PER ) TCA クロックプリスケーラ (CLKSEL: クロック選択 ) によって決まります この周波数は 下式により求まります N = 1 PER =100 f PWM_SS = 3.3 MHz Training Manuals DS40001949A_JP - p. 21

図 3-4. TCA の設定 Result: 以上で TCA の設定は完了します Training Manuals DS40001949A_JP - p. 22

3.2 RTC ドライバ To do: オーバーフロー割り込みを生成するために RTC ドライバを追加します 1. [Add software component] ボックスをクリックします 2. [ADD SOFTWARE COMPONENT] ウィンドウから [Drivers] を展開します [RTC] ドライバを選 択してから [Add Component(s)] をクリックします ( TCA ドライバ 内の手順 3 と 4 参照 ) Note: ここで RTC ドライバを追加します RTC_0 ドライバが Assignment_ATtiny817 プロジェクトに追加されます RTC モジュールは以下の手順で設定する必要があります To do: [RTC_0] ボックスをクリックし 500 ms の周期でオーバーフロー割り込みを生成する よう RTC ドライバを設定します 図 3-5 内の赤枠 1~5 に示す通りに設定します 1. [RTCEN: Enable] チェックボックスを ON にする事によりモジュールを有効にします 2. [RTC Clock Source Selection:] で [32 khz Internal Ultra-Low Power oscillator (OSCULP32K)] を選 択します 3. [PRESCALER: Prescaling Factor] で [32] を選択します Tip: 設定した RTC クロックは ウィンドウの右側にあるナビゲーションボタン [CLOCKS] を選 択する事により確認できます [DASHBOARD] を選択してドライバ設定画面に戻ります 4. [PER: Period] にレジスタ値として 500 ( または 0x1f4) を入力します これは 16 ビットの周期レジスタです カウンタレジスタがこの値に達すると オ ーバーフロー割り込みがセットされ カウンタレジスタはリセットされます 5. [Include ISR harness in driver_isr.c] チェックボックスを ON にする事により driver_isr.c 内に ISR コードを生成します 6. [OVF: Overflow Interrupt enable] チェックボックスを ON にする事により オーバーフロー割り込みを有効にします Training Manuals DS40001949A_JP - p. 23

図 3-5. RTC の設定 割り込みを生成するには ステータスレジスタ内でグローバル割り込みイネーブルビ ットを有効にする必要があります これは 以下の通りに設定します 7. 下図の通りに [Show system drivers] を ON にします ( を右側に移動させます ) 図 3-6. システムドライバの表示 8. 下図の通り [CPUINT] をクリックしてから [CPU_SREG: Global Interrupt Enable] チェックボ ックスを ON にします Training Manuals DS40001949A_JP - p. 24

図 3-7. CPU_SREG を有効にする Result: 以上で RTC の設定は完了します 3.3 TCB ドライバキャプチャ機能をテストするため TCB モジュールを PWM 信号キャプチャ用に設定します To do: TCB ドライバを追加します 1. [Add software component] ボックスをクリックします 2. [ADD SOFTWARE COMPONENT] ウィンドウから [Drivers] を展開します 3. [Timer] ドライバを選択してから [Add Component(s)] をクリックします ( TCA ドライバ 内の手 順 3 と 4 参照 ) TIMER_0 ドライバが Assignment_ATtiny817 プロジェクトに追加されます 4. [TIMER_0] をクリックしてから [Rename component] をクリックします 新しい名前として TCB_Duty_Frequency_Measure を指定し [Rename] をクリックします ( TCA ドライバ 内の手順 5 と 6 参照 ) TCB モジュールを入力キャプチャモードに設定する必要があります Training Manuals DS40001949A_JP - p. 25

To do: 与えられた入力 PWM 信号のデューティサイクルと周波数を計測するため TCB ドライバを入力キャプチャモードで設定します 図 3-8 内の赤枠 1~5 に設定を示します 1. [Driver] で [TCB:Init] を選択します 既定値により [Driver] は [TCB:init] として選択済みです 2. [ENABLE: Enable] チェックボックスを ON にする事により モジュールを有効にします 3. [CLKSEL: Clock select] を [CLK_PER (No Prescaling)] として選択します このモジュール向けのクロック源は プリスケールなしで選択されます このモジ ュールは システムの周辺モジュールクロック CLK_PER を使います 4. [CNTMODE: Timer mode] を [Input Capture Frequency and Pulse-Width measurement] として選択します 5. [CAPTEI: Event Input Enable] チェックボックスを ON にします PWM 信号はイベント入力として TCB に与えられるため イベント入力を有効にします EVENT CONFIGURATION の[EDGE: Event Edge] チェックボックスは ON にしません これによりタイマは イベント入力信号で立ち上がりエッジを検出した時にカウントを開始します そして 次の立ち下がりエッジでカウント値がキャプチャされます カウンタは イベント入力信号で次の立ち上がりエッジを検出した時に停止します [EDGE: Event Edge] チェックボックスを ON にした場合 タイマは立ち下がりエッジを検出した時にカウントを開始します Note: イベントシステムの設定は 次の項目で説明します Training Manuals DS40001949A_JP - p. 26

図 3-8. TCB の設定 Result: 以上で TCB の設定は完了します 3.4 イベントシステムドライバイベントシステム (EVSYS) を使うと 周辺モジュールから別の周辺モジュールへ直接信号を送る事ができます これにより ある周辺モジュール ( イベントジェネレータ ) で変化が生じた時に他の周辺モジュール ( イベントユーザ ) の動作をトリガできます これは CPU を使わずにイベントチャンネルを介して行われます チャンネルパスは メインクロックに対して同期または非同期にできます モードはアプリケーションの要件に基づいて選択します ここでは TCA からの PWM 信号を PA5 ピンに接続し イベント入力として使います To do: イベントシステムドライバを追加します 1. [Add software component] ボックスをクリックします 2. [ADD SOFTWARE COMPONENT] ウィンドウから [Drivers] を展開します 3. [Event System] ドライバを選択してから [Add Component(s)] をクリックします ( TCA ドライ バ 内の手順 3 と 4 参照 ) Training Manuals DS40001949A_JP - p. 27

EVENT_SYSTEM_0 ドライバが Assignment_ATtiny817 プロジェクトに追加されます 次に EVENT_SYSTEM 周辺モジュールを設定する必要があります To do: PA5 ピンをイベント入力とし TCB をイベントユーザとしてイベントシステムを設定します イベントシステムの設定を図 3-9 内の赤枠 1 2 に示します 1. [EVENT_SYSTEM_0] ボックスをクリックします 2. [ASYNCCH0: Asynchronous Multiplexer Channel 0] を [Asynchronous Event from pin PA5] として設定します 3. [ASYNCUSER0: Asynchronous User Selection Ch0 -TCB0] を [Asynchronous Event Channel 0] と して設定します イベントユーザは TCB0 であり イベント入力は ASYNCCH0 を介します このため EVENT SYSTEM ASYNCHRONOUS USER CONFIGURATION の下の [ASYNCUSER0] は [Asynchronous Event Channel 0] として選択します 図 3-9. イベントシステムの設定 Result: 以上でイベントシステムの設定は完了します Training Manuals DS40001949A_JP - p. 28

3.5 USART ドライバ 与えられた入力 PWM 信号から計算したデューティサイクルと周波数の値を送信するために USART モ ジュールを設定します ATtiny817 Xplained Pro は 組み込みデバッガ (EDBG) と 仮想 COM ポートインターフェイスを備えた 複合 USB デバイスを備えています 仮想 COM ポートは ATtiny817 上の UART に接続されます これに より ターミナルソフトウェアを介してターゲットアプリケーションと容易に通信できます このポー トは可変 baud レート パリティ ストップビット設定を提供します ATtiny817 上の設定は ターミナ ルソフトウェア内で与えられた設定と一致する必要があります 仮想 COM ポートの接続 : PB2 UART TXD (ATtiny817 TX ライン ) PB3 UART RXD (ATtiny817 RX ライン ) To do: USART ドライバを追加します 1. [Add software component] ボックスをクリックします 2. [ADD SOFTWARE COMPONENT] ウィンドウから [Drivers] を展開します 3. [USART] ドライバを選択してから [Add Component(s)] をクリックします ( TCA ドライバ 内の手順 3 と 4 参照 ) Note: ここで USART ドライバを追加します USART_0 ドライバが Assignment_ATtiny817 プロジェクトに追加されます 次に USART モジュールを設定する必要があります To do: USART ドライバを baud レート 9600 PB2:TXD PB3:RXD 向けに設定します 図 3-10 の赤枠 1~3 に設定を示します 1. COMPONENT SETTINGS の下で [Driver:] を [Drivers:USART_Basic] として設定し [Mode:] を [Async Polled Mode] として設定します 2. SIGNALS の下で RXD = PB3 および TXD = PB2 を選択します 3. チェックボックス [TXEN: Transmitter Enable] を ON にする事により トランスミッタを有効にします [RXEN: Receiver Enable] チェックボックスが ON になっている場合は OFF に変更します 4. [Baud Rate] を 9600 に設定します baud レートは 既定値により 9600 に設定されます Training Manuals DS40001949A_JP - p. 29

図 3-10. USART の設定 Result: 以上で USART の設定は完了します 3.6 プロジェクトの生成とコードの開発以上で 必要な全てのドライバが追加されました 次にプロジェクトを生成し 以下を実行するためのコードを追加します RTC ISR 内で PWM のデューティサイクルを変更する 与えられた PWM 信号のデューティサイクルと周波数を計算する 計算したデューティサイクルと周波数を USART 経由で送信する To do: プロジェクトを生成します 1. ウィンドウの最下段にあるボックスをクリックします [Project Summary] ウィンドウには 変更されたファイルと この再構成されたプロジェクトに追加されたファイルの一覧が表示されます ここには 新しいドライバファイルと設定済みドライバファイルが全て表示されます 2. main.c ファイルを選択してから [OK] をクリックします Training Manuals DS40001949A_JP - p. 30

main.c ファイルを選択すると 新しい空白の main.c ファイルが生成されます 3. 生成されたプロジェクト内の全ての設定済みドライバが system_init() 関数によって初期化される事を確認します Tip: src driver_init.c system_init() Result: 設定済みドライバを使ってプロジェクトが生成されます To do: TCA によって生成される PWM 信号のデューティサイクルを変更するためのコードを RTC ISR 内に追加します 1. driver_isr.c ファイルを開きます 2. ISR より前でデューティサイクル変数を定義します この変数は 10 に初期化され ( 初期デューティ サイクル = 10%) ISR 内で変更されます volatile uint8_t change_duty_cycle=10; 3. 以下のコードを ISR の中に追加します このコードは ISR 内でデューティサイクルを 10% ずつ変 更します (100% に達した後は 10% にロールオーバーします ) change_duty_cycle+=10; if (change_duty_cycle >100) { change_duty_cycle =10; } TCA0.SINGLE.CMP0 = change_duty_cycle; CMP0 レジスタは TCA PWM のデューティサイクルを決定します 4. <F7> を押してプロジェクトをビルドします ( ビルドは エラーが発生する事なく正常に完了する必要があります ) 5. <Ctrl + Alt + F5> を押す事により 更新したコードをデバイスにプログラミングします 6. 下図の通り ATtiny Xplained Pro 上の PB0 と PB4 の間をケーブルで接続します Training Manuals DS40001949A_JP - p. 31

図 3-11. ハードウェア接続 Note: EXT1 コネクタでは 1 のピン列 ( 上面 ) が左側のピンラベル列に対応し 2 のピン列 ( 下面 ) が右側のピンラベル列に対応します 従って PB0 は 1 のピン列 ( 上面 ) にあり PB4 は 2 のピン列 ( 下面 ) にあります TCA PWM 出力は PB0 ピンで生成され LED は ATtiny Xplained Pro ボード上の PB4 ピンに接続しています 従って PB0 と PB4 を接続する事で 生成された PWM 信号のデューティサイクルに応じて LED の輝度が変化します Result: PWM デューティサイクルを変更すると LED の輝度が変化する事を観察します To do: 与えられた PWM のデューティサイクルと周波数を計算するためのコードを追加します TCB のモードは 入力キャプチャ周波数 / パルス幅計測モード に設定されます このモードでは イベント入力信号で立ち上がりエッジを検出した時にタイマがカウントを開始します 次の立ち下がりエッジでカウント値がキャプチャされます カウンタは イベント入力信号で次の立ち上がりエッジを検出した時に停止します この時に割り込みフラグがセットされます キャプチャレジスタを読み出すと 割り込みフラグはクリアされます Training Manuals DS40001949A_JP - p. 32

キャプチャレジスタが読み出されるか割り込みフラグがクリアされた時点で 次のキャプチャシーケン スに備えて TC の準備が完了します 1. main.c ファイルを開きます 2. 以下の通り main() の前で タイマレジスタを読み出すための変数と 計算したデューティサイ クルと周波数を保存するための変数を定義します volatile uint16_t period_after_capture = 0; volatile uint16_t pulse_width_after_capture = 0; volatile uint8_t capture_duty = 0; volatile uint16_t capture_frequency = 0; 3. デューティサイクルと周波数を計算するために 以下のコードを while(1) ループの中に追加します if(tcb0.intflags) { TCB0.INTFLAGS=1; period_after_capture = TCB0.CNT; pulse_width_after_capture = TCB0.CCMP; } capture_duty = ((pulse_width_after_capture * 100 )/period_after_capture); if (capture_duty>100) { capture_duty=0; } capture_frequency = F_CPU /period_after_capture; TCB0.INTFLAGS は キャプチャした値が利用可能になった時にセットされます このフラグは フラグに 1 を書き込む事によってクリアします 周期は TCB0.CNT レジスタを介して読み出され パルス幅は TCB0.CCMP レジスタを介して読み出されます デューティサイクルは % を単位として計算されます キャプチャした周波数の単位は Hz です To do: 与えられた PWM 信号のデューティサイクルと周波数の計算値を USART 経由で送信す るためのコードを追加します 500 ms 周期で RTC 割り込みが生成されてデューティサイクルが変更されるため デューティサイクルと 周波数の計算値を各周期後に送信するためのコードを追加します 1. main.c ファイルを開きます 2. 以下に示す通り main() の前で フラグを 500 ms 周期でセットするための変数と送信バッファ 文字列を定義します volatile uint8_t rtc_500ms_flg=0; const char tx_buf[]={"\ncaptured data:"}; 3. driver_isr.c を開きます driver_isr.c 内の ISR より前で rtc_500ms_flg を extern として定義します extern uint8_t rtc_500ms_flg; 4. driver_isr.c 内の RTC ISR の中で rtc_500ms_flg をセットします rtc_500ms_flg=1; Training Manuals DS40001949A_JP - p. 33

5. 以下に示す通り main.c ファイル内の main() より前で関数 send_data() を定義します この関数は 計算したデューティサイクルと周波数を文字列に変換し USART を介して送信します void send_data() { uint8_t i=0; char duty str[4]={0},freq str[10]={0},tx data[30]={0}; itoa(capture duty, duty str, 10); //duty cycle to ASCII ltoa(capture frequency, freq str, 10); //frequency to ASCII } strcat(tx_data,tx_buf); strcat(tx_data,duty_str); strcat(tx_data,"% "); strcat(tx_data,freq_str); strcat(tx_data,"hz"); while(tx_data[i]!=0) { USART_0_write(tx_data[i]); i++; } //tx data=tx buf+duty cycle string+frequency string //check for null character // send data 6. ファイルの先頭で string.h ファイルをインクルードします #include <string.h> string.h 内で定義された itoa および ltoa 関数は デューティサイクルと周波数を ASCII 文字列に変換します strcat 関数は tx_buf とデューティサイクル文字列および周波数文字列を連結します その結果得られた tx_data 文字列がターミナルへ送信されます USART_0_putc 関数は データを TXDATA USART レジスタに書き込みます TXDATA は データレジスタエンプティフラグ (USART.STATUS 内の DREIF) がセット されている時にのみ書き込み可能です このフラグは レジスタがエンプティであり新しいデータの書き込みが可能である事を示します 7. 各 500 ms 周期の後に send_data() 関数を呼び出すためのコードを while(1) ループの中に追加します if (rtc_500ms_flg==1) { rtc_500ms_flg=0; send_data(); } 8. <F7> を押してプロジェクトをビルドします ( ビルドは エラーが発生する事なく正常に完了する必要があります ) 9. [Debug] [Start without Debugging] を選択するか <Ctrl + Alt + F5> を押す事により 更新したコードをデバイスにプログラミングします 10. 下図の通り ATtiny Xplained Pro ボード上の PB0 と PA5 の間をケーブルで接続します Training Manuals DS40001949A_JP - p. 34

図 3-12. ハードウェア接続 (PB0 - PA5) TCB は PA5 で PWM 信号をキャプチャするよう設定されており TCA PWM は PB0 で生成されます 11. Atmel Studio 7 内で メニューから [Tools] [Data Visualizer] を選択します Training Manuals DS40001949A_JP - p. 35

12. [Data Visualizer] ウィンドウ内で [Configuration] タブをクリックしてから [Serial Port] をダブルクリックします 13. [Serial Port Control Panel] 内で [EDBG Virtual COM Port] 番号をリストの中から選択し [Baud rate] を 9600 に設定します [Open Terminal] ボタンをクリックしてから [Connect] をクリッ クします Tip: 接続している ATtiny Xplained Pro ボードの EDBG 仮想 COM ポート番号は Windows の [ スタート ] [ コントロールパネル ] [ デバイスマネージャ ] [ ポート ] を 選択する事で確認できます Result: 与えられた PWM 信号でキャプチャされたデューティサイクルと周波数は ターミ ナルウィンドウに表示されます Training Manuals DS40001949A_JP - p. 36

最終的なコードを以下に示します #include <string.h> #include <atmel_start.h> volatile uint16_t period_after_capture = 0; volatile uint16_t pulse_width_after_capture = 0; volatile uint8_t capture_duty = 0; volatile uint16_t capture_frequency = 0; volatile uint8_t rtc_500ms_flg=0; const char tx_buf[]={"\ncaptured data:"}; void send_data() { uint8_t i=0; char duty_str[4]={0},freq_str[10]={0},tx_data[30]={0}; itoa(capture_duty, duty_str, 10); //duty cycle to ASCII ltoa(capture_frequency, freq_str, 10); //frequency to ASCII strcat(tx_data,tx_buf); //tx_data=tx_buf+duty cycle string+frequency string strcat(tx_data,duty_str); strcat(tx_data,"% "); strcat(tx_data,freq_str); strcat(tx_data,"hz"); while(tx_data[i]!=0) //check for null character { USART_0_write(tx_data[i]); // send data i++; } } int main(void) { /* Initializes MCU, drivers and middleware */ atmel_start_init(); /* Replace with your application code */ while (1) { if(tcb0.intflags) { TCB0.INTFLAGS=1; period_after_capture = TCB0.CNT; pulse_width_after_capture = TCB0.CCMP; capture_duty = ((pulse_width_after_capture * 100 )/period_after_capture); if (capture_duty>100) { capture_duty=0; } capture_frequency = F_CPU /period_after_capture; } if (rtc_500ms_flg==1) { rtc_500ms_flg=0; Training Manuals DS40001949A_JP - p. 37

} } } send_data(); Training Manuals DS40001949A_JP - p. 38

4. 課題 3: バイナリ周波数シフトキーイング法の基本 CCL (Configurable Custom Logic) モジュールは デバイス上のピン イベント 周辺モジュールに接続可能なプログラマブルロジックモジュールです CCL モジュールを使う事で 外付けの論理ゲートを使わずに簡潔なグルーロジックを構成できます この課題では CCL を使った簡潔なアプリケーションを開発します このアプリケーションは ボタンが押されているかどうかに応じて 2 つの異なる周波数で LED を点滅させます このために 下図に示す通り 周波数が異なる 2 つのパルストレインを生成して CCL に入力し 3 つ目の入力の状態に基づいてどちらかのパルストレインを出力します 図 4-1. CCL 入出力の波形 上図では 入力 3 が LOW の時に入力 1 を出力し 入力 3 が HIGH の時に入力 2 を出力します このアプリケーションは バイナリ周波数シフトキーイング法 ( 出力を 2 つの周波数の間で切り換える事 によってバイナリデータをコード化する方法 ) の基本動作を提供します このアプリケーションの入出力は以下の通りです 入力 1: 課題 2 で TCA を使って生成した PWM 信号 入力 2: PIT からのイベント出力 入力 3: ボタン (SW0) の状態 出力 : CCL 出力 (PA7 ピン ) LED を PA7 に接続する事により ボタンの状態 ( 押されているかどうか ) に応じて異なる周波数で LED を 点滅させます RTC モジュールは 2 種類のタイミング機能 ( リアルタイムカウンタ (RTV) と周期割り込みタイマ (PIT)) を提供します PIT 機能は RTC 機能とは無関係に有効にできます RTC 機能と同じクロック源を使う事により PIT は n クロック周期ごとに割り込みを要求 ( または出力イベントをトリガ ) できます (n は {4 8 16...32768} から選択可能 ) ここでは PIT からイベントを出力するようにイベントシステムを設定します PIT からのイベント信号は RTC クロック周期の整数倍の周期を持つクロック信号です このアプリケーションでは 8192 RTC クロック周期のイベント信号を使います PIT からのイベント信号の周波数は 32 khz/8192 = 3.9 Hz です ( 周期は約 250 ms) CCL ドライバを追加し イベントシステムおよび RTC ドライバを変更するために Assignment_ATtiny817 プロジェクトを再構成します このアプリケーションには以下の周辺モジュールを使います TCA (PB0 での波形出力 WO0) PIT ( イベント出力 ) CCL ( 出力 PA7) イベントシステム Training Manuals DS40001949A_JP - p. 39

PB5 (SW0) クロックの詳細 : メインクロック : 3.33 MHz PIT: 32 khz 4.1 CCL ドライバ CCL (Configurable Custom Logic) はデバイスピン イベント 他の内蔵周辺モジュールに接続可能なプ ログラマブルロジックモジュールです CCL は デバイス内の周辺モジュールと外部デバイスの間の グルーロジック として機能できます CCL モジュールは 1 ペアのルックアップテーブル (LUT) を備えています 各 LUT は 3 つの入力 1 つの真理値表 1 つのフィルタ / エッジ検出器で構成されます 各 LUT により ユーザ設定可能な真理値表に基づいて 3 つの入力から 1 つの出力を生成できます 各種の入力の組み合わせから出力を生成できます このアプリケーションでは LUT1 を使います 入力 1 は TCA を使って生成される PWM 信号 (TCA の WO0) です 入力 2 は PIT からのイベント出力 ( イベント要因 1) です 入力 3 はボタン(SW0) の状態 ( イベント要因 0) です 出力 は PA7 ピンでの CCL 出力です このアプリケーションに必要な真理値表を下に示します IN[2] はボタン (SW0) です (IN[2] = 0 の時に OUTPUT= IN[1] IN[2] =1 の時に OUTPUT = IN[0]) 下表から OUT = 0xAC です 表 4-1. LUT の真理値表 IN[2] IN[1] IN[0] OUT 0 0 0 0 (LSB) 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 To do: CCL ドライバを追加します 1. Assignment_ATtiny817 プロジェクトを開きます 2. [Solution Explorer] ウィンドウ内でプロジェクト名 [Assignment_ATtiny817] をクリックしてから 右クリックし [Re-Configure Atmel Start Project] を選択します 3. [Atmel START] ウィンドウ内でボックスをクリックした後に [ADD SOFTWARE COMPONENT] ウィンドウから [Drivers] を展開します Training Manuals DS40001949A_JP - p. 40

4. [Digital Glue Logic (CCL)] ドライバを選択してから [Add Component(s)] をクリックします ( TCA ドライバ 内の手順 3 と 4 参照 ) DIGITAL_GLUE_LOGIC_0 ドライバが Assignment_ATtiny817 プロジェクトに追加されます 次に 以下の通りに CCL を設定します To do: CCL ドライバを設定します (IN[2] = イベント要因 0 IN[1]= イベント要因 1 IN[0] = WO0 TC PA7 で出力 ) 図 6-2 内の赤枠 1~4 に設定を示します 1. [LUT1_OUT/0] で [PA7] を選択します 2. [ENABLE: Enable] チェックボックスを ON にする事により モジュールを有効にします 3. LOOKUP TABLE 1 CONFIGURATION の下で [LUTEN: LUT Enable] チェックボックスを ON にします 4. LOOKUP TABLE 1 CONFIGURATION の下で [OUTEN: Output Enable] チェックボックスを ON にします 5. 入力を以下の通りに選択します INSEL0:LUT input 0 source selection: = TCA WO0 input source INSEL1:LUT input 1 source selection:= Event input source 1 INSEL2:LUT input 2 source selection:= Event input source 0 6. [TRUTH1: Truth 1] に真理値表の値として 172 ( または 0xAC) を入力します ( 表 4-1 の OUT 列参照 ) Training Manuals DS40001949A_JP - p. 41

図 4-2. CCL の設定 Result: 以上で CCL の設定は完了します 4.2 イベントシステムドライバイベントシステム (EVSYS) を使うと 周辺モジュールから別の周辺モジュールへ直接信号を送る事ができます これにより ある周辺モジュール ( イベントジェネレータ ) で変化が生じた時に他の周辺モジュール ( イベントユーザ ) の動作をトリガできます これは CPU を使わずにイベントチャンネルを介して行われます ここでは イベント信号を SW0 (PB5) 押しボタンと PIT ( 周期割り込みタイマ ) から生成します Training Manuals DS40001949A_JP - p. 42

表 4-2. イベントユーザとイベントジェネレータ イベントユーザ CCL LUT1 イベント 0 イベントジェネレータ PB5 からのイベント CCL LUT1 イベント 1 PIT からのイベント : 1 周期は 8192 RTC クロックサイクル To do: [EVENT_SYSTEM_0] ボックスをクリックし 表 4-2 の通りに EVENT_SYSTEM を 設定します 図 4-3 内の赤枠 1~4 に設定を示します 1. [ASYNCCH1: Asynchronous Multiplexer Channel 1] を [Asynchronous Event from pin PB5] として設定します 2. [ASYNCCH3: Asynchronous Multiplexer Channel 3] を [Periodic Interrupt CLK_RTC div 8192] とし て設定します 3. [ASYNCUSER3: Asynchronous User Selection Ch3 -CCL LUT1 Event 0] を [Asynchronous Event Channel 1] として設定します ASYNCUSER3 のイベントユーザは CCL LUT1 Event0 であり ここでは ASYNCCH1 を介します 4. [ASYNCUSER5: Asynchronous User Selection Ch5 - CCL LUT1 Event 1] を [Asynchronous Event Channel 3] として設定します イベントユーザは CCL LUT1 Event 1 であるため ASYNCUSER5 ユーザ設定 は ASYNCCH3 を介します Training Manuals DS40001949A_JP - p. 43

図 4-3. イベントシステムの設定 Result: 以上でイベントシステムの設定は完了します 4.3 PIT ドライバ RTC モジュールは 2 種類のタイミング機能 ( リアルタイムカウンタ (RTV) と周期割り込みタイマ (PIT)) を提供します PIT 機能は RTC 機能とは無関係に有効にできます To do: PIT を有効にするため RTC ドライバを編集します 1. [RTC_0] をクリックします 2. スクロールダウンし PIT を有効にするために RTC を設定します [PITEN] の横のチェックボック スを ON にします Result: PIT が有効になります 4.4 プロジェクトを生成し コードを実行する必要な全てのドライバを追加した後に プロジェクトを生成します Training Manuals DS40001949A_JP - p. 44

To do: プロジェクトを生成します 1. ウィンドウの最下段にあるボックスをクリックします [Project Summary] ウィンドウには 変更されたファイルと この再構成されたプロジェクトに追加されたファイルの一覧が表示されます ここには 新しいドライバファイルと設定済みドライバファイルが全て表示されます 2. [Project Summary] ウィンドウ内で [OK] をクリックします main.c ファイルと driver_isr.c ファイルを選択した場合 以前のコードは全て上書きされ これら 2 つのファイルは空白のファイルとして生成されます 3. 生成されたプロジェクト内の全ての設定済みドライバが src フォルダ内の driver_init.c の中の関数 system_init() によって初期化される事を確認します Result: 設定されたドライバを使ってプロジェクトが生成されます To do: コードを実行します 1. <F7> を押してプロジェクトをビルドします ( ビルドは エラーが発生する事なく正常に完了する必要があります ) 2. [Debug] [Start without Debugging] を選択する事により 更新したコードをデバイスにプログラミングします 3. 下図の通り ATtiny Xplained Pro ボード上の PB7 と PB4 の間をケーブルで接続します Training Manuals DS40001949A_JP - p. 45

図 4-4. ハードウェア接続 Note: EXT1 では 1 のピン列 ( 上面 ) が左側のピンラベル列に対応し 2 のピン列 ( 下面 ) が 右側のピンラベル列に対応します 従って PA7 と PB4 はどちらも 2 のピン列 ( 下面 ) にあります CCL 出力は PA7 ピンで生成され LED は ATtiny Xplained Pro ボード上の PB4 ピンに接続しています PB4 と PA7 を接続する事により 異なる周波数で LED が点滅する事を観察できます 4. 押しボタン SW0 を押した時と解放した時の LED の点滅を観察します Result: 押しボタンを解放すると LED は TCA PWM 信号を使って点滅します ( デューティサイクルが 500 ms 周期で変化し LED の輝度が変化します ) 押しボタンを押すと LED は PIT RTC_clock/8192 の周期で点滅します RTC OVF 割り込みを無効にした場合 このアプリケーションをコアから独立させる事ができます LED の点滅が目視可能な PWM 信号を生成するよう TCA ドライバのコードを編集する必要があります ( 例 : 50% デューティサイクルで 12 Hz の信号を生成 ) Training Manuals DS40001949A_JP - p. 46

5. まとめ 本書の課題により以下が学べます Atmel START を使ったドライバの設定 自動的に生成されたドライバ関数を使ってコードを開発する方法 ドライバを編集および追加してプロジェクトを再構成する方法さらに 以下も学べます tinyavr 1 シリーズの各種周辺モジュール イベントシステムを使ってイベントを生成する方法 CCL を使って出力を生成する方法 Atmel Studio を使うと アプリケーションのリアルタイムデバッグを容易に実行できると共に I/O 画面を使ってマイクロコントローラのレジスタをリアルタイムに変更できます アプリケーションのデバッグには ブレークポイント シングルステップ実行 I/O 画面等 各種のデバッグ手法が使えます Training Manuals DS40001949A_JP - p. 47

6. 改訂履歴 文書リビジョン日付 改訂内容 A 2017 年 8 月本書は初版です Training Manuals DS40001949A_JP - p. 48

Microchip 社のウェブサイト Microchip 社は自社が運営するウェブサイト (www.microchip.com) を通してオンラインサポートを提供しています 当ウェブサイトでは お客様に役立つ情報やファイルを簡単に見つけ出せます インターネットブラウザから以下の内容がご覧になれます 製品サポート - データシートとエラッタ アプリケーションノートとサンプルプログラム 設計リソース ユーザガイドとハードウェアサポート文書 最新のソフトウェアと過去のソフトウェア 一般的技術サポート - よく寄せられる質問 (FAQ) 技術サポートのご依頼 オンラインディスカッショングループ Microchip 社のコンサルタントプログラムおよびメンバーリスト ご注文とお問い合わせ - 製品セレクタと注文ガイド 最新プレスリリース セミナー / イベントの一覧 お問い合わせ先 ( 営業所 / 販売代理店 ) の一覧 顧客変更通知サービス Microchip 社の顧客変更通知サービスは お客様に Microchip 社製品の最新情報をお届けする配信サービスです ご興味のある製品ファミリまたは開発ツールに関連する変更 更新 エラッタ情報をいち早くメールでお知らせします Microchip 社ウェブサイト (http://www.microchip.com/) にアクセスし [DESIGN SUPPORT] メニューの下の [Product Change Notification] からご登録ください カスタマサポート Microchip 社製品をお使いのお客様は 以下のチャンネルからサポートをご利用になれます 代理店または販売担当者 各地の営業所 フィールドアプリケーションエンジニア (FAE) 技術サポート サポートは販売代理店までお問い合わせください 各地の営業所もご利用になれます 本書の最後のページには各国の営業所の一覧を記載しています 技術サポートは以下のウェブページからもご利用になれます http://www.microchip.com/support Microchip 社のデバイスコード保護機能 Microchip 社製デバイスのコード保護機能について以下の点にご注意ください Microchip 社製品は 該当する Microchip 社データシートに記載の仕様を満たしています Microchip 社では 通常の条件ならびに仕様に従って使用した場合 Microchip 社製品のセキュリティレベルは 現在市場に流通している同種製品の中でも最も高度であると考えています しかし コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です 弊社の理解では こうした手法は Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます Microchip 社は コードの保全性に懸念を抱くお客様と連携し 対応策に取り組んで参ります Training Manuals DS40001949A_JP - p. 49

Microchip 社を含む全ての半導体メーカーで 自社のコードのセキュリティを完全に保証できる企業はありません コード保護機能とは Microchip 社が製品を 解読不能 として保証するものではありません コード保護機能は常に進歩しています Microchip 社では 常に製品のコード保護機能の改善に取り組んでいます Microchip 社のコード保護機能の侵害は デジタルミレニアム著作権法に違反します そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合 デジタルミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります 法律上の注意点 本書に記載されているデバイスアプリケーション等の情報は ユーザの便宜のためにのみ提供されるものであり 更新によって無効とされる事があります お客様のアプリケーションが仕様を満たす事を保証する責任は お客様にあります Microchip 社は 明示的 暗黙的 書面 口頭 法定のいずれであるかを問わず 本書に記載されている情報に関して 状態 品質 性能 商品性 特定目的への適合性をはじめとする いかなる類の表明も保証も行いません Microchip 社は 本書の情報およびその使用に起因する一切の責任を否認します Microchip 社の明示的な書面による承認なしに 生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入者のリスクとし また購入者はこれによって発生したあらゆる損害 クレーム 訴訟 費用に関して Microchip 社は擁護され 免責され 損害をうけない事に同意するものとします 暗黙的あるいは明示的を問わず Microchip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標 Microchip 社の名称とロゴ Microchip ロゴ AnyRate AVR AVR ロゴ AVR Freaks BeaconThings BitCloud CryptoMemory CryptoRF dspic FlashFlex flexpwr Heldo JukeBlox KeeLoq KeeLoq ロゴ Kleer LANCheck LINK MD maxstylus maxtouch MediaLB megaavr MOST MOST ロゴ MPLAB OptoLyzer PIC picopower PICSTART PIC32 ロゴ Prochip Designer QTouch RightTouch SAM-BA SpyNIC SST SST ロゴ SuperFlash tinyavr UNI/O XMEGA は米国およびその他の国における Microchip Technology Incorporated の登録商標です ClockWorks The Embedded Control Solutions Company EtherSynch Hyper Speed Control HyperLight Load IntelliMOS mtouch Precision Edge Quiet-Wire は米国における Microchip Technology Incorporated 社の登録商標です Adjacent Key Suppression AKS Analog-for-the-Digital Age Any Capacitor AnyIn AnyOut BodyCom chipkit chipkit ロゴ CodeGuard CryptoAuthentication CryptoCompanion CryptoController dspicdem dspicdem.net Dynamic Average Matching DAM ECAN EtherGREEN In-Circuit Serial Programming ICSP Inter-Chip Connectivity JitterBlocker KleerNet KleerNet ロゴ Mindi MiWi motorbench MPASM MPF MPLAB Certified ロゴ MPLIB MPLINK MultiTRAK NetDetach Omniscient Code Generation PICDEM PICDEM.net PICkit PICtail PureSilicon QMatrix RightTouch ロゴ REAL ICE Ripple Blocker SAM-ICE Serial Quad I/O SMART-I.S. SQI SuperSwitcher SuperSwitcher II Total Endurance TSHARC USBCheck VariSense ViewSpan WiperLock Wireless DNA ZENA は米国およびその他の国における Microchip Technology Incorporated の商標です SQTP は 米国における Microchip Technology Incorporated のサービスマークです Silicon Storage Technology は 米国以外の国における Microchip Technology Inc. の登録商標です GestIC は 米国以外の国における Microchip Technology Inc. の子会社である Microchip Technology Germany II GmbH & Co. KG の登録商標です その他の商標は各社に帰属します 2017, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Training Manuals DS40001949A_JP - p. 50

ISBN: 978-1-5224-2365-2 DNV による品質管理システム認証 ISO/TS 16949 Microchip 社では Chandler および Tempe( アリゾナ州 ) Gresham( オレゴン州 ) の本部 設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を 取得しています Microchip 社の品質システムプロセスおよび手順は PIC MCU および dspic DSC KEELOQ コードホッピングデバイス シリアル EEPROM マイクロペリフェラル 不揮発性メモリ アナログ製品に採用されています さらに 開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています Training Manuals DS40001949A_JP - p. 51

各国の営業所とサービス 北米アジア / 太平洋アジア / 太平洋ヨーロッパ 本社 アジア太平洋支社 中国 - 厦門 オーストリア - ヴェルス 2355 West Chandler Blvd. Suites 3707-14, 37th Floor Tel:86-592-2388138 Tel:43-7242 -2244-39 Chandler, AZ 85224-6199 Tower 6, The Gateway Fax:86-592-2388130 Fax:43-7242 -2244-393 Tel:480-792-7200 Harbour City, Kowloon 中国 - 珠海 デンマーク - コペンハーゲン Fax:480-792-7277 香港 Tel:86-756-3210040 Tel:45-4450-2828 技術サポート : Tel:852-2943-5100 Fax:86-756-3210049 Fax:45-4485-2829 http://www.microchip.com/ Fax:852-2401-3431 インド - バンガロール フィンランド - エスポー サポート オーストラリア - シドニー Tel:91-80 -3090-4444 Tel:358-9 -4520-820 URL: Tel:61-2 -9868-6733 Fax:91-80 -3090-4123 フランス - パリ www.microchip.com Fax:61-2 -9868-6755 インド - ニューデリー Tel:33-1-69-53-63-20 アトランタ 中国 - 北京 Tel:91-11 -4160-8631 Fax:33-1-69-30-90-79 Duluth, GA Tel:86-10 -8569-7000 Fax:91-11 -4160-8632 フランス - サンクルー Tel:678-957-9614 Fax:86-10 -8528-2104 インド - プネ Tel:33-1-30-60-70-00 Fax:678-957-1455 中国 - 成都 Tel:91-20 -3019-1500 ドイツ - ガーヒング オースティン TX Tel:86-28 -8665-5511 日本 - 大阪 Tel:49-8931-9700 Tel:512-257-3370 Fax:86-28 -8665-7889 Tel:81-6 -6152-7160 ドイツ - ハーン ボストン 中国 - 重慶 Fax:81-6 -6152-9310 Tel:49-2129-3766400 Westborough, MA Tel:86-23 -8980-9588 日本 - 東京 ドイツ - ハイルブロン Tel:774-760-0087 Fax:86-23 -8980-9500 Tel:81-3-6880-3770 Tel:49-7131 -67-3636 Fax:774-760-0088 中国 - 東莞 Fax:81-3 -6880-3771 ドイツ - カールスルーエ シカゴ Tel:86-769 -8702-9880 韓国 - 大邱 Tel:49-721-625370 Itasca, IL 中国 - 杭州 Tel:82-53 -744-4301 ドイツ - ミュンヘン Tel:630-285-0071 Tel:86-20 -8755-8029 Fax:82-53 -744-4302 Tel:49-89-627-144-0 Fax:630-285-0075 中国 - 杭州 韓国 - ソウル Fax:49-89-627-144-44 ダラス Tel:86-571 -8792-8115 Tel:82-2 -554-7200 ドイツ - ローゼンハイム Addison, TX Fax:86-571 -8792-8116 Fax:82-2-558-5932 or Tel:49-8031 -354-560 Tel:972-818-7423 中国 - 香港 SAR 82-2 -558-5934 イスラエル - ラーナナ Fax:972-818-2924 Tel:852-2943-5100 マレーシア - クアラルンプール Tel:972-9 -744-7705 デトロイト Fax:852-2401-3431 Tel:60-3 -6201-9857 イタリア - ミラノ Novi, MI 中国 - 南京 Fax:60-3 -6201-9859 Tel:39-0331-742611 Tel:248-848-4000 Tel:86-25 -8473-2460 マレーシア - ペナン Fax:39-0331-466781 ヒューストン TX Fax:86-25 -8473-2470 Tel:60-4 -227-8870 イタリア - パドヴァ Tel:281-894-5983 中国 - 青島 Fax:60-4 -227-4068 Tel:39-049-7625286 インディアナポリス Tel:86-532 -8502-7355 フィリピン - マニラ オランダ - ドリューネン Noblesville, IN Fax:86-532 -8502-7205 Tel:63-2 -634-9065 Tel:31-416-690399 Tel:317-773-8323 中国 - 上海 Fax:63-2 -634-9069 Fax:31-416-690340 Fax:317-773-5453 Tel:86-21 -3326-8000 シンガポール ノルウェー - トロンハイム Tel:317-536-2380 Fax:86-21 -3326-8021 Tel:65-6334-8870 Tel:47-7289-7561 ロサンゼルス 中国 - 瀋陽 Fax:65-6334-8850 ポーランド - ワルシャワ Mission Viejo, CA Tel:86-24 -2334-2829 台湾 - 新竹 Tel:48-22-3325737 Tel:949-462-9523 Fax:86-24 -2334-2393 Tel:886-3 -5778-366 ルーマニア - ブカレスト Fax:949-462-9608 中国 - 深圳 Fax:886-3 -5770-955 Tel:40-21-407-87-50 Tel:951-273-7800 Tel:86-755 -8864-2200 台湾 - 高雄 スペイン - マドリッド ローリー NC Fax:86-755 -8203-1760 Tel:886-7 -213-7830 Tel:34-91-708-08-90 Tel:919-844-7510 中国 - 武漢 台湾 - 台北 Fax:34-91-708-08-91 ニューヨーク NY Tel:86-27 -5980-5300 Tel:886-2 -2508-8600 スウェーデン - ヨーテボリ Tel:631-435-6000 Fax:86-27 -5980-5118 Fax:886-2 -2508-0102 Tel:46-31-704-60-40 サンノゼ CA 中国 - 西安 タイ - バンコク スウェーデン - ストックホルム Tel:408-735-9110 Tel:86-29 -8833-7252 Tel:66-2 -694-1351 Tel:46-8 -5090-4654 Tel:408-436-4270 Fax:86-29 -8833-7256 Fax:66-2 -694-1350 イギリス - ウォーキンガム カナダ - トロント Tel:44-118 -921-5800 Tel:905-695-1980 Fax:44-118 -921-5820 Fax:905-695-2078 Training Manuals DS40001949A_JP - p. 52