AN-1443: ADUCM3027 / ADUCM3029 の SPI バスを介した SD カードとのインターフェース

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

TFTP serverの実装

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

CommCheckerManual_Ver.1.0_.doc

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

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 ポート )

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

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

スライド 1

8051 개발보드 메뉴얼

スライド 1

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

RS-422/485 ボード取扱説明書 RS-422/485 ボード取扱説明書 Revision 0.3 コアスタッフ株式会社技術部エンジニアリング課 Copyright 2009 Core Staff Co.,Ltd. All Rights Reserved - 1 of 17

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

Introducing_SPIStorm-JP

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

AP-RZA-1A シリアルFlashROMの書き込み方法

スライド 1

スライド 1

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

TRQerS - Introduction

Notes and Points for TMPR454 Flash memory

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

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

AKI-PIC16F877A開発キット (Ver1

UCB User's Manual

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

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

Warp demo station manual

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

Arduinoで計る,測る,量る

EB-RL7023+SB/D2

オートビュー

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

Microsoft Word - SD-Card-Formatter-5.0-User-Manual-JP-v1.01.docx

Industrial shields brochure_JP

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

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

NFCライブラリマニュアル

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

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

オートビュー

AN-1077: ADXL345 Quick Start Guide

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

世界の技術を日本の品質で すべてはお客様の ベストパートナーであるために 1 2 納入分野 斬 新な 企画 展開力 高 品質 ダックスが持つ つの特長 3 交通機器 金融機器 医療機器 製造機器 工作機器 あらゆる分野へ 高信頼性 3 最 新 最適な 技術と開発 主な開発 生産製品 ダックスは産業用

Photo Sensor – 적외선 센서

EU-SD/MCシリーズ アプリケーションノート

Microsoft Word - Cubesuite+_78K0R.doc

アナログ・接点変換器

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

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

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

UMB-CP2114 User's Manual

STM32F405VG 搭載 CPU 基板の仕様 V /10/14 STMicroelectronics 社製の Cortex-M4 ARM CPU STM32F405VGT6 を搭載した CPU 基板です 目次 1. 概要 CPU 基板のブロック図 C

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

Microsoft Word - TY_WLAN_WBSBMVGXB-1_EVBManual_V1.3J_ doc

注意 本製品は FCC Class A 装置です 一般家庭でご使用になると 電波干渉を起こすことがあります その際には ユーザーご自身で適切な処置を行ってください 本製品は FCC( 米国連邦通信委員会 ) 規則の Part15 に準拠したデジタル装置 Class A の制限事項を満たして設計され

OS バージョンアップ実行後のご注意 OS バージョンアップ後 更新完了通知が自動的にNECカシオモバイルコミュニケーションズ株式会社の運用するサーバへ送信されます なお NECカシオモバイルコミュニケーションズ株式会社は送信された情報を OS バージョンアップ以外の目的には利用いたしません また

Microsoft Word - dg_sataahciip_refdesign_jp.doc

-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

富士通セミコンダクタープレスリリース 2009/05/19

ターゲット項目の設定について

Photo Sensor – 적외선 센서

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

Microsoft Word - Cubesuite+_V850_AM.doc

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

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

(Microsoft PowerPoint - E6x5C SDXC Demo Seminar [\214\335\212\267\203\202\201[\203h])

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

プロバイダ ユーザーズガイド

ComputerArchitecture.ppt

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

MODBUS ユーザーズマニュアル 페이지 1 / 23

AN5101 SA-Cy500S (Cyclone V SoC CPU BOARD) スタートガイド

スライド 1

CM-3G 周辺モジュール拡張技術文書 INA226センサ(電流、電圧、電力)

アプリケーション インスペクションの特別なアクション(インスペクション ポリシー マップ)

Spectrum Setup 画面が現れます Install Tab の各項目に マウス カーソルを合わせると 項目の詳細説明 が表示されます 通常はデフォルトの選択で問題ありませんが LabVIEW Driver Matlab Driver が必要な場合は 選択します 6. Install sel

Microsoft Word - StmView...._Rev4_for_ver.3.0.0_.doc

Microsoft Word - Si Multi Digitalカード.docx

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること

DUSx200 シリーズコントローラ I2C インターフェース仕様書

2. 仕様 電源 :USB バスパワー (USB 入力の 5V 電源を使用します ) 出力 : 3.5mm ステレオジャック アナログステレオ出力 最大 20mArms 対応ヘッドホンインピーダンス 1Ω~500Ω RCA ピンジャック アナログ 2ch 出力 (L R) ラインレベル ヘッドホンア

複数の Nios II を構成する際の注意事項

Macintosh

FlashAir ソフトウェア更新ツール Version 東芝メモリ株式会社 Copyright 2017 Toshiba Memory Corporation, All Rights Reserved. 対応 OS: 最新の対応 OS は Web サイトをご参照ください 概要本ソフ

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

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

富士通セミコンダクター株式会社発表資料

MS5145、MS7120,USB通信の設定

はじめに 本書は GRATINA2 とパソコンを指定の USB ケーブル ( 別売 ) を使用して接続し インターネット通信や au ホームページで公開している各種ツールをご利用になるための USB ドライバ のインストール方法を説明しています USB ドライバをインストールする 3 パソコンに接続

CONTEC DIOプロバイダ ユーザーズガイド

Cisco CSS HTTP キープアライブと ColdFusion サーバの連携

K006/ K006 < カメラなしモデル >

ネットワークカメラ Edge Storage マニュアル ~SD / microsd で映像録画 再生 ~ ご注意このマニュアルは Firmware が Ver1.9.2 のカメラを対象としています Edge Storage 機能 (SD / microsd で映像録画 再生 ) をお使いになる 場

FTP_RW_ProgramDescription_jp_V100

XIMERA(Ver1

データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc Rev 1.01

Transcription:

15344-001 日本語参考資料最新版英語はこちら ADUCM3027/ADUCM3029 の SPI バスを介した SD カードとのインターフェース はじめに セキュア デジタル (SD) カードは 携帯機器や組み込みシステムで使用されている最も一般的なフラッシュベースのストレージ デバイスです SD カードは小型 低消費電力 簡素 低コストなどの特長があるため ストレージ条件に対する理想的なソリューションです SD カードはほとんどの機器と互換性があるため どのコンピュータを使用しても カードからデータの容易なアクセスや検索ができ アプリケーションに応じてさらに進んだ処理を行うことができます このでは SD カードとインターフェースする ADuCM3027/ADuCM3029 プロセッサのシリアル ペリフェラル インターフェース (SPI) の使用方法について説明します また ピン配列 通信規格 設計上の考慮事項など SD カードに関する一般的な情報を詳述するとともに 信号や波形などの SPI の基本事項や ADuCM3027/ADuCM3029 の SPI インターフェースの機能について説明します 必要なボード類 図 1. 必要なボード類 :EVAL-ADuCM3029 EZ-KIT 評価用ボード ( 左 ) Arduino( アルドゥイーノ ) 互換 SD カード シールド ( 右上 ) SD カード ( 右下 ) アナログ デバイセズ社は 提供する情報が正確で信頼できるものであることを期していますが その情報の利用に関して あるいは利用によって生じる第三者の特許やその他の権利の侵害に関して一切の責任を負いません また アナログ デバイセズ社の特許または特許の権利の使用を明示的または暗示的に許諾するものでもありません 仕様は 予告なく変更される場合があります 本紙記載の商標および登録商標は それぞれの所有者の財産です 日本語版資料は REVISION が古い場合があります 最新の内容については 英語版をご参照ください 2017 Analog Devices, Inc. All rights reserved. 本社 / 105-6891 東京都港区海岸 1-16-1 ニューピア竹芝サウスタワービル電話 03(5402)8200 大阪営業所 / 532-0003 大阪府大阪市淀川区宮原 3-5-36 新大阪トラストタワー電話 06(6350)6868

目次はじめに...1 必要なボード類...1 改訂履歴...2 SD カード...3 容量とタイプ...3 インターフェースとモード...3 SD カードの SPI プロトコル...4 ファイル アロケーション テーブル (FAT) ファイル システム... 5 SD カードの実装... 6 ADuCM3027/ADuCM3029 SPI... 6 ハードウェアの実装... 6 ソフトウェアの実装... 7 SD カードとマイクロコントローラのインターフェース用のサンプル コード... 8 参考文献... 8 改訂履歴 7/2017 Revision 0: Initial Version - 2/8 -

15344-002 POWER ON DETECTION 15344-003 SD カード SD カードは 携帯機器で使用するマルチメディア カード (MMC) の機能を拡大するため 1999 年に SD アソシエーション (SDA) によって規格が策定されたメモリ カードです それ以来 SD カードは広く普及し 業界標準となり 今ではほとんどの携帯機器で画像や音楽などのファイルを格納するために使用されています 図 2 に示すように SD カードは ピン インターフェース メモリ コア 内部レジスタ そして内部コントローラで構成されています メモリ コアはデータ用の記憶装置で 1 MB ~ 2 TB のさまざまな容量のものがあります 内部レジスタは SD カードの状態を保存します ピン インターフェースは カードとマスター デバイス ( 通常はカードを使用するマイクロコントローラ ) を接続するものです カードのインターフェース コントローラは SD カードのコア メモリを管理します 通常 このコントローラはフラッシュ内のデータの書込み 読出し 消去 エラー処理 およびフラッシュのウェア レベリングを行います このため SD カードを実装するメインのマイクロコントローラは 一連のデータ パケットを介してコマンドやデータをカードのインターフェース コントローラに送信しますが メモリ コアの管理には関与しません 表 1 に さまざまなタイプの SD カードとそれらの容量を示します 表 1. SD カードのタイプと容量 Common SD Card Type SD Standard Capacity (SDSC) SD High Capacity (SDHC) SD extended Capacity (SDXC) Capacity 1 MB to 2 GB 2 GB to 32 GB 32 GB また 図 3 に示すように SD カードには 標準サイズ ミニ サイズ マイクロ サイズなど 形状や大きさが異なるものがあります 32.0mm 2GB 24.0mm V DD DAT2 CMD VSS1 CLK VSS2 CD/DAT3 INTERFACE DRIVER DAT0 DAT1 21.5mm OCR[31:0] CID[127:0] RCA[15:0] DSR[15:0] CARD INTERFACE CONTROLLER 2GB 20.0mm CSD[127:0] SCR[63:0] RESET 11.0mm 2GB SSR[511:0] CSR[31:0] 容量とタイプ MEMORY CORE INTERFACE MEMORY CORE 図 2. SD カードの内部構成 RESET SD カードには さまざまなタイプ 大きさ 容量があります SD カードのタイプは メモリ容量と準拠する SD 規格によって決まります 15.0mm 図 3. SD カードの大きさ インターフェースとモード SD カードにはピン インターフェースがあり 使用されている通信モードやカード形状要素に応じて ピン配列構成が異なります 一般に このインターフェースは 電源ライン ( 電源およびグラウンド ) クロック ライン データ ライン コマンド ラインで構成されています 最新の高速カードでは 高速で広帯域な転送を実現するために 低電圧差動インターフェースが実装されています 通常 SD カードとの通信は SDA で規定されたインターフェースである SD バス モードで行われます このモードでは インターフェースには独立したコマンド ラインおよびデータ ライン ならびにクロック ラインがあります 転送は独自フォーマットで行われます ただし ネイティブ SD インターフェースのない組み込みシステムで このフォーマットを実装するのは困難です - 3/8 -

15344-006 15344-005 15344-004 ネイティブ SD インターフェースのない組み込みシステムやマイクロコントローラに対応するため SDA では SD カードが SPI バス モードにも対応するように仕様規定しています このモードでは SD カードはマイクロコントローラで広く用いられている周知の SPI で動作します ただし SPI バス モードは SD カードの全標準プロトコルのうち 1 つのサブセットにしか対応しません 図 4 に 標準の SD カードのピン配列と micro SD カードのピン配列を示します 9 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 図 4. 標準の SD カードと micro SD カードのピン配列 標準の SD カードのピン機能を表 2 に示します 表 2. 標準の SD カードの機能 Pin No. Name SD Mode SPI Mode 1 CS/DAT3 Data Line 3 Chip select 2 CMD/DI Command line MOSI 3 VSS1 Ground Ground 4 VDD Supply voltage Supply voltage 5 CLK Clock Clock (SCK) 6 VSS2 Ground Ground 7 DAT0 Data Line 0 MISO 8 DAT1 Data Line 1 Unused or IRQ 9 DAT2 Data Line 2 Unused micro SD カードのピン機能を表 3 に示します 表 3. microsd カードの機能 Pin No. Name SD Mode SPI Mode 1 DAT2 Data Line 2 Unused 2 DAT3/CS Data Line 3 Chip select 3 CMD Command line MOSI 4 VDD Supply voltage Supply voltage 5 CLK Clock Clock (SCK) 6 VSS Ground Ground 7 DAT0 Data Line 0 MISO 8 DAT1 Data Line 1 Unused or IRQ SD カードの SPI プロトコル SPI バス モードで使用する SD プロトコルは SD バス モードで使用するプロトコルとは若干異なります SPI バス モードでの SD カードとの通信は 単純なコマンド応答プロトコルを用いて行われ マスター デバイス ( マイクロコントローラ ) がコマンド フレームを送信することで開始されます SD カードがコマンド フレームを受信すると このカードはホスト マイクロコントローラが送信したコマンドに応じて 応答フレームまたはエラーフレームを送信して応答します SD カードに送信する SD カード コマンド フレームは 6 バイトで構成されています コマンド フレームは常にビット 01 で始まり 6 ビットのコマンド番号が後に続きます 最初のバイト パケットの後に ビッグ エンディアン フォーマットの 4 バイトの引数が続きます 最後のバイトは 7 ビットの巡回冗長検査 (CRC) と 1 ビットのストップ ビットで構成されています ( 図 5 参照 ) 2 BITS 6 BITS 32 BITS 7 BITS 1 BIT 01 COMMAND ARGUMENT CRC 図 5. コマンド フレームのフォーマット SD カードは送信されたコマンド フレームに応じて 異なる応答フレームを用いて各コマンド フレームに応答します SPI バス モードで使用可能な応答タイプは R1 R3 R7 の 3 通りのみです ( 図 6 参照 ) 0 PARAM ERROR ADDRESS ERROR R1 RESPONSE 1 BIT 1 BIT 1 BIT 1 BIT 1 BIT 1 BIT 1 BIT 1 BIT ERASE SEQ ERROR CMD CRC ERROR R3/R7 RESPONSES 8 BITS 32 BITS R1 RESPONSE ILLEGAL CMD 図 6. 応答フレームのフォーマット ERASE STATE OPERATION CONDITION REGISTER 次に SD カードは SEND_STATUS コマンドを除き すべてのコマンドの後に R1 応答トークンを送信します このコマンドは 1 バイト長で 最上位ビット (MSB) は常に 0 に設定されています その他のビットはエラー表示で エラーは 1 で示されます エラー フラグの意味は次のように規定されています アイドル状態 : カードはアイドル状態で 初期化プロセスを実行中です 消去リセット : 消去範囲外シーケンス コマンドを受信したため 消去シーケンスが実行前にクリアされました 不当コマンド : 不当コマンド コードが検出されました 通信 CRC エラー : 最後のコマンドの CRC が失敗しました 消去シーケンス エラー : 消去コマンドのシーケンス中にエラーが発生しました アドレス エラー : ブロック長が一致しない誤ったアドレスがコマンド内で使用されました 1 IN IDLE STATE - 4/8 -

パラメータ エラー : コマンドの引数 ( アドレスやブロック長など ) がこのカードの許容範囲外でした SD カードの SPI モードでは SD モードで使用するコマンドの 1 つのサブセットのみが使用されます SPI モードのコマンドの詳細なリストについては 表 4 を参照してください コマンド セットは カードの初期化 いくつかの重要な詳細情報の検索 およびメモリ カードとの間のデータ ブロックの読み書きに限定されています 表 4. SPI モードのコマンド設定 Command Description CMD0 CMD8 CMD55 ACMD41 CMD58 CMD16 CMD17 CMD24 CMD32 CMD33 CMD38 Reset card Request for current operational conditions Leading command for application specific commands (ACMDs) Start card initiation process Request for operation conditions register (OCR) Change block length Read a block of data Write a block of data Set the start block to be deleted Set the end block to be deleted Start block erase set by CMD32 and CMD33 ファイル アロケーション テーブル (FAT) ファイル システム 一般的に使用されている SD カードは デフォルトで FAT ファイル システムとしてフォーマットされています FAT ファイル システムは ほぼすべての PC モバイル デバイス 組み込みシステムで広くサポートされている伝統的なファイル システムです このファイル システムをサポートするドライバは 小型化 堅牢化 軽量化が可能で マイクロコントローラや組み込みシステムに容易に実装できます FAT でフォーマットされたメモリ カードに保存された任意のファイルは この基本ファイル システムに対応可能であるため ほぼすべての PC で表示や変更が可能です SD カードの仕様では 異なる SD カードで容量別に使用できる FAT ファイル システムのタイプを定めています ( 追加情報については 参考文献のセクションを参照してください ) - 5/8 -

15344-008 15344-007 SD カードの実装 ADuCM3027/ADuCM3029 SPI ADuCM3027/ADuCM3029 マイクロコントローラには 高速センサーやメモリ デバイスなどのさまざまな SPI 互換デバイスとの通信に使用可能な 3 つの SPI インターフェース (SPI0 SPI1 SPIH) が搭載されています 各 SPI ポートには 4 個の SPI 対応デバイスを制御する 4 つのハードウェア チップ セレクト信号があります SPI バスのペリフェラルには プログラマブル ボーレート クロック位相 クロック極性 ハードウェア フロー制御のさまざまなメカニズムも含まれており SPI マスターまたは SPI スレーブとして機能することができます 3 つの SPI は 接続されている内部バス インターフェースを除き SPI のプログラミングとモデルの視点から見ると同一です SPIH ペリフェラルは プロセッサ クロックと同じレートのクロックで動作する高性能なアドバンスト ペリフェラル バス (APB) に接続されます SPI0 と SPI1 はメインの APB に接続されます ADuCM3027/ADuCM3029 マイクロコントローラのペリフェラルの多くは APB を使用します このため アービトレーションを必要とするモジュール数がきわめて多くなり 遅延が安定しなくなります したがって 高データ レートの場合 SPIH を使用したほうが効率が高く 低遅延でデータを転送できます ハードウェアの実装 SD カードと ADuCM3027/ADuCM3029 プロセッサとの間のインターフェース機能を実証するために使用するハードウェアは次のとおりです 1. EVAL-ADuCM3029 EZ-KIT ボード 2. Arduino ( アルドゥイーノ ) 互換データ ロギング シー ルド 3. 4 GB の SanDisk SD カード EVAL-ADuCM3029 EZ-KIT ボード EVAL-ADuCM3029 EZ-KIT ボードは ADuCM3027/ ADuCM3029 プロセッサ用の評価システムです ( 図 7 参照 ) このボードには ADuCM3027/ADuCM3029 マイクロコントローラを評価することのできる部品が豊富に搭載されています さらに EVAL-ADuCM3029 EZ-KIT には EI3 インターフェースと Arduino インターフェースも搭載されています これらのインターフェースは さまざまなドーター ボードやシールドに接続可能で EVAL-ADuCM3029 EZ-KIT ボードの機能を拡張することができます 図 7. EVAL-ADuCM3029 EZ-KIT ボード Arduino 互換データ ロギング シールド 使用するデータ ロギング シールドは ほとんどの Arduino ロギング プロジェクトで一般に使用されているシールドです ( 図 8 参照 ) このロギング シールドの SPI は ADuCM3027 /ADuCM3029 マイクロコントローラの SPIH ポートに接続されます 図 8. データ ロギング シールド ほとんどのデータ ロギング シールドには 相補型金属酸化膜半導体 (CMOS) バッファ ( 例えば CD4050) が搭載されており 3.3 V から 5 V への電圧変換器として機能し SD カードを損傷から保護します 通常 SD カードのデータ入力 シリアル クロック およびチップ セレクト ラインは カードの入力ピンであるため バッファで保護されています ただし SD カードを ADuCM3027/ADuCM3029 マイクロコントローラとインターフェースさせる場合は マイクロコントローラの出力が SD カードと同じ電圧レベルであるため この電圧変換器は省略可能です SPIH インターフェースと汎用入出力 (GPIO) のポート 1 は ADuCM3027/ADuCM3029 マイクロコントローラのピンを共有しています SPIH SCLK MOSI および MISO の信号ラインもマイクロコントローラのピン ( ピン P1_02 ピン P1_03 およびピン P1_04) を使用します このため これらのピンは未使用のままにしておく必要があります - 6/8 -

15344-009 このでは GPIO のピン P2_01 を SD カード用のチップ セレクトとして使用し SPIH 専用のチップ セレクトは使用していません ( 図 9 参照 ) 2. ビット レートを設定します SPIH のビット レートの変化は マイクロコントローラと SD カードとの相互作用の内容に依存することに注意してください 3.3V R3 1kΩ D1 3.3V マイクロコントローラが SD カードを通信用に初期化する場合は ビット レートは 100 khz ~ 400 khz である必要があります P2_01 P1_03 P1_02 P1_04 3.3V R1 100kΩ R2 100kΩ D2 1N4148 図 9. データ ロギング シールドの回路図 ソフトウェアの実装 このアプリケーションをテストするには 次のソフトウェア ツールを使用します IAR Embedded Workbench 7.60 このソフトウェアをダウンロードするには EVAL-ADuCM3029 EZ-KIT のウェブページを参照してください IAR 用の ADuCM302x ソフトウェア EVAL-ADuCM3029 EZ-Kit のウェブページからダウンロード可能 ChaN による FatFs ライブラリ R0.12a FatFs - Generic FAT Filesystem Module のウェブサイトからダウンロード可能 アプリケーションは ファイル システム コールを処理し FAT でフォーマットされた SD カード内のファイルの読出しと変更を可能にする FatFs ライブラリを使用します このファイル システム ライブラリを使用するには 下位のハードウェア依存のファンクション コールを処理するハードウェア抽象化レイヤを実装する必要があります SPI インターフェースの初期化 ADuCM3027/ADuCM3029 の SPIH ペリフェラルを初期化するには 以下の手順を実行します 1. SPIH ペリフェラルの設定を行います 2. GPIO ピン P2_01 をチップ セレクトとして設定します 3. GPIO1 と SPIH の共有ピンについてのピン マルチプレク スを設定します SPIH ペリフェラルの設定 GND SPIH ペリフェラルの設定は SPIH ペリフェラルを SD カードと通信するための準備完了状態に設定する複数のコールで構成されています SPIH ペリフェラルを設定するには 以下の手順を実行します 1. SPIH ペリフェラルを開きます CS DI SCLK DO 1 2 3 4 5 6 7 8 9 X1 FPS009-3004 COM+_TERM WRITE_PROT SD カードを SPI モードに設定後は ハードウェアの設計とマイクロコントローラの容量に応じて ビット レートを 20 MHz まで高くすることができます 3. 連続モード動作に設定します 連続モードでは SPI ペリフェラルは複数バイトのデータの送受信が実行でき 転送を中止したり中断したりすることはありません 以下に示すのは ADuCM3027/ADuCM3029 マイクロコントローラの SPIH を設定するために使用されるコードの例です static uint8_t SPIMem[ADI_SPI_MEMORY_SIZE]; static ADI_SPI_HANDLE spih_dev; // Open the SPI adi_spi_open(spi_dev_num, SPIMem, // Set the bit rate ADI_SPI_MEMORY_SIZE, &spih_dev); adi_spi_setbitrate(spih_dev, 100000); // Set the continuous mode adi_spi_setcontinousmode(spih_dev, true); チップ セレクトの設定 チップ セレクトは SPI 専用のチップ セレクトではなく GPIO ピン ( ピン P2_01) を使用します カスタマイズされた GPIO ピンを使用すると チップ セレクト信号を完全に制御できます SD カードとマイクロコントローラ間のトランザクションによっては ソフトウェアがチップ セレクトを適切に制御するように チップ セレクト信号の特別処理が必要となる場合があります チップ セレクト ピンを設定するには 以下のコードを使用して SPIH チップ セレクト オプションを none に設定し 次に GPIO ピン P2_01 を出力に設定します adi_spi_setchipselect (spih_dev, ADI_SPI_CS_NONE); adi_gpio_outputenable (SPI_CS_PORT, SPI_CS_PIN, true); adi_gpio_sethigh(spi_cs_port, SPI_CS_PIN); - 7/8 -

マイクロコントローラのピン マルチプレクサの設定 GPIOx_CFG レジスタは ADuCM3027/ADuCM3029 マイクロコントローラのピン マルチプレクサの設定値を保持する設定レジスタです SPIH では ピン P1_02 ピン P1_03 ピン P1_04 を SD カードへの接続ピンとして使用します これらのピンを SPIH 用に設定するには REG_GPIO1_CFG レジスタで適切なビット オプションを設定します このジスタの詳細については マニュアル ADuCM302x Ultra Low Power ARM Cortex-M3 MCU with Integrated Power Management Hardware Reference を参照してください 以下のコードは ポート設定レジスタを SPIH 用に設定する例です #define SPI0_SCLK_PORTP1_MUX ((uint32_t) ((uint32_t) 1<<4)) #define SPI0_MISO_PORTP1_MUX ((uint32_t) ((uint32_t) 1<<8)) #define SPI0_MOSI_PORTP1_MUX ((uint32_t) ((uint32_t) 1<<6)) *((volatile uint32_t *) REG_GPIO1_CFG) = SPI0_SCLK_PORTP1_MUX SPI0_MISO_PORTP1_MUX SPI0_MOSI_PORTP1_MUX; データの送受信 SPI ペリフェラルを SD カードとの通信用に設定すると インターフェースは データ パケットの送受信と SD カードの起動が可能になります adi_spi_readwrite 関数が SD カードとのデータの送受信を行います この関数は データと SPI デバイス ポインタを保持する構造体命令が必要です 以下に示すのは このセクションで説明したコードの例です ADI_SPI_TRANSCEIVER spi_xcv_buff; spi_xcv_buff.ptransmitter = txbuff; spi_xcv_buff.preceiver = rxbuff; spi_xcv_buff.transmitterbytes = txsize; spi_xcv_buff.receiverbytes = rxsize; spi_xcv_buff.ntxincrement = 1; spi_xcv_buff.nrxincrement = 1; ADI_SPI_TRANSCEIVER は このトランザクションで使用されるバッファを保持する構造体命令です 送信 受信 データ サイズ およびインクリメント用のバッファが定義される必要があります 送信バッファと受信バッファは 送信または受信されるデータに応じたサイズの uint8_t の配列です 送信のデータ サイズは約 6 バイト ~ 8 バイトで 受信のデータ サイズは 1 バイト ~ 512 バイトです adi_spi_readwrite 関数はブロッキング関数であり マイクロコントローラは トランザクションが成功してはじめて次の命令を実行することに注意してください SD カードとマイクロコントローラのインターフェース用のサンプル コード このには SD カードと ADuCM3027 /ADuCM3029 をインターフェースするサンプル コードが付属しています サンプル コードを見るには このプロジェクトを解凍し IAR Embedded Workbench 7.6 にインポートしてください このサンプル コードは EVAL-ADuCM3029 EZ-KIT の製品ウェブページからダウンロード可能です 参考文献 ADuCM302x Ultra Low Power ARM Cortex-M3 MCU with Integrated Power Management Hardware Reference. Analog Devices, Inc. 2016. SD Specifications Part 1, Physical Layer Simplified Specifications, Version 5.00. SD Card Association. 2014. adi_spi_readwrite(spih_dev, &spi_xcv_buff); - 8/8 -