MSP430F149 - USB
概要
使用可能なUSBコントローラ
MSP430F149はUSBコントローラを内蔵していないため、USB通信を実装するにはPDIUSBD12等の外付けのUSBコントローラチップが必要となる。
# MSP430マイコンとPDIUSBD12 (USBコントローラIC) はパラレルバス接続 (8ビットデータバス + 制御信号) [MSP430F149] <--> [PDIUSBD12] <--> [USBコネクタ]
ただし、PDIUSBD12は現在入手が難しくなってきており、新規設計では推奨されない。
そのため、USBコントローラ機能が内蔵されているMSP430F5xxxシリーズやMSP432シリーズに移行、あるいは、USB-UARTブリッジIC (FT232RL等) を使用する。
特に、USB-UARTブリッジICを使用する方法は実装が容易であり、MSP430F149のUART機能 (USART0 / USART1) を利用できる。
また、USB-UARTブリッジICでは、ホスト側のドライバも広くサポートされている。
入手可能な主なUSBコントローラチップを以下に示す。
Microchip
- MCP2200
- USB-UARTコントローラ
- MCP2221/A
- USB-UART/I2Cコントローラ
- USB2512B / USB2513B
- USBハブコントローラ
FTDI
- FT232RL / FT232H
- USB-UARTコントローラ (産業標準的な製品)
- FT2232H
- デュアルUSB-UART/FIFO
- FT4232H
- クワッドUSB-UART/FIFO
WCH
- CH340
- 低コストのUSB-UARTコントローラ
- CH375
- 汎用USBインターフェースコントローラ
Silicon Labs
- CP2102N
- USB-UARTブリッジ
- CP2130
- USB-SPIブリッジ
※注意
- インターフェース要件
- UART接続が必要な場合は、FT232RLやCP2102Nがよく使用されている。MSP430F149はUSART0 / USART1を搭載しているため、容易に接続可能である。
- SPI / I2C接続が必要な場合は、MCP2221AやCP2130が適切である。MSP430F149はUSART1をSPIモードで使用できる。
- 価格帯
- CH340は低コスト
- FTDI、Microchipの製品は信頼性重視の中価格帯
- 入手性
- FTDI、Microchip、WCHの製品は世界的に流通が安定
- 開発サポート
- FTDI、Microchipの製品は豊富な開発ツールとドキュメントが利用可能であり、サポート体制が充実している。
MSP430F149の特徴
MSP430F149は、Texas Instrumentsの16ビットRISCマイコンで、以下に示す特徴を持つ。
- 60[KB] Flash ROM
- 2[KB] RAM
- 最大8[MHz]動作 (外部クロック使用時)
- USART0 / USART1 (UART、SPI、I2C対応)
- 12ビットADC
- タイマA/B
- 48ピン (LQFP、DIP)
- 低消費電力設計
※注意
MSP430F149は古い世代のマイコンであるため、新規設計ではMSP430F5xxxシリーズやMSP432シリーズへの移行を推奨する。
USBコントローラIC
PDIUSBD12
PDIUSBD12は、フィリップス社 (現NXPセミコンダクターズ) が開発したUSBペリフェラルコントローラICである。
このICは、特に、マイコンベースのシステムにUSB機能を追加する時のインターフェースコントローラとして使用されてきた。
ただし、このICは古い世代の製品であり、現在は新しい設計には一般的にUSB機能を内蔵したマイコンを使用することが多い。
- USB 1.1規格に準拠しており、フルスピード (12[Mbps]) をサポートしている。
- 8ビットパラレルインターフェースを介してマイコンと接続可能。
- 内蔵のUSBトランシーバ
- エンドポイント・バッファメモリを搭載 (Main Endpoint、Endpoint 1、Endpoint 2)
- 低消費電力設計
- サスペンド/レジューム機能
PDIUSBD12とMSP430F149の接続
PDIUSBD12とMSP430F149は、8ビットパラレルバスで接続する。
接続ピン
- D0-D7:
- データバス (MSP430F149のP1.0〜P1.7 または P2.0〜P2.7)
- A0
- アドレス選択 (MSP430F149の任意のGPIO 例: P3.0)
- RD#
- リード信号 (MSP430F149の任意のGPIO 例: P3.1)
- WR#
- ライト信号 (MSP430F149の任意のGPIO 例: P3.2)
- CS#
- チップセレクト (MSP430F149の任意のGPIO 例: P3.3)
- INT_N
- 割り込み信号 (MSP430F149のP1.2等の割り込み対応ピン)
PDIUSBD12のレジスタとコマンド
PDIUSBD12は、コマンドベースのインターフェースを持つ。
主要なコマンドを以下に示す。
- 0x00 : Set Address / Enable
- 0x01 : Endpoint Enable
- 0x02 : Set Mode
- 0x03 : Set DMA
- 0x0A : Read Interrupt Register
- 0x0F : Read Last Transaction Status
- 0x40 : Select Endpoint (Main Endpoint)
- 0x41: Select Endpoint (Endpoint 1)
- 0x42 : Select Endpoint (Endpoint 2)
- 0xF0 : Read Buffer
- 0xF1 : Write Buffer
読み出し / 書き込み手順を以下に示す。
- コマンドを送信
- A0=0、データバスにコマンドコード、WR#をパルス
- データを読み書き
- A0=1、RD#またはWR#をパルス
USBコントローラ搭載のMSP430マイコン
TIのMSP430シリーズには、USB機能を内蔵したマイコンがいくつか存在する。
MSP430F5xxxシリーズ
- MSP430F5527 / MSP430F5528 / MSP430F5529
- USB 2.0フルスピード (12[Mbps]) 対応
- USBブートローダ機能搭載
- 内蔵LDO (USB用の3.3[V]電源回路)
- 豊富なペリフェラル (ADC、タイマ、UART等)
- 128[KB] フラッシュROM
- 8〜10[KB] RAM
VBUSラインの電源フィルタ
USBコネクタにおいて、VBUS端子にLCフィルタ等の電源フィルタを構成する場合がある。
これは、入力電源のリップル除去、負荷変動による電圧変動の抑制、デカップリング (高周波ノイズの除去) が目的である。

- USB 1.1 / 2.0の場合
- フルスピード (12[Mbps])、ハイスピード (480[Mbps]) では比較的低周波であり、電源ノイズの影響が比較的少ないため、数10[uH]程度。
- 一般的に47[uH]〜100[uH]のインダクタと、100[uF]程度のコンデンサを使用する。
- USB 3.x
- 電源の応答性確保および大きな電流 (900[mA]以上) に対応する必要があり、高速信号 (5[Gbps]以上) のため、より小さい値 (数十〜数百[nH]) を選択する。
- インダクタの自己共振周波数 (SRF) にも注意が必要となる。
インダクタ選定の注意
- シールドインダクタまたはフェライトコアを使用したインダクタを選定する。
- 定格電流は使用する電流の1.5倍以上を確保する。
- EMI規制への適合
- 寄生容量による影響