📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == FRAM / FeRAM (Ferroelectric Random Access Memory)は、強誘電体材料を使用して情報を記憶して、電界の向きによって分極状態を変化させてデータを保存するメモリである。<br> 多くのFRAM製品は、SPIやI2Cインターフェースを採用している。<br> <br> FRAMは、高速性、低消費電力、高い信頼性が求められる用途で特に有用である。<br> ただし、大容量のストレ…」 |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 122行目: | 122行目: | ||
# 100[mS]待機する。 | # 100[mS]待機する。 | ||
# FRAMのアドレス0x00から4バイトのデータを読み出す。 | # FRAMのアドレス0x00から4バイトのデータを読み出す。 | ||
<br> | |||
[[ファイル:MSP430F149 FeRAM FM24CL Flowchart.jpg|フレームなし|中央]] | |||
<br> | <br> | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
| 158行目: | 160行目: | ||
void initI2C(void) | void initI2C(void) | ||
{ | { | ||
P3SEL |= BIT1 + BIT3; | P3SEL |= BIT1 + BIT3; // P3.1 = SCL, P3.3 = SDA | ||
U0CTL = I2C + SYNC + MST; | U0CTL = I2C + SYNC + MST; // I2Cマスターモード、同期 | ||
I2CTCTL = I2CSSEL1; | I2CTCTL = I2CSSEL1; // SMCLKをクロック源として選択 | ||
I2CPSC = 0; | I2CPSC = 0; // プリスケーラなし | ||
I2CSCLH = 0x50; | I2CSCLH = 0x50; // SCL High時間 | ||
I2CSCLL = 0x50; | I2CSCLL = 0x50; // SCL Low時間 (約100[kHz]) | ||
I2COA = 0x01A5; | I2COA = 0x01A5; // 自局アドレス | ||
I2CSA = FRAM_ADDR; | I2CSA = FRAM_ADDR; // スレーブアドレス | ||
U0CTL &= ~I2CEN; | U0CTL &= ~I2CEN; // I2Cモジュールを一時的に無効化 | ||
U0CTL |= I2CEN; | U0CTL |= I2CEN; // I2C有効化 | ||
I2CIFG = 0x00; | I2CIFG = 0x00; // 割り込みフラグクリア | ||
} | } | ||
| 180行目: | 182行目: | ||
while (len--) { | while (len--) { | ||
while ((I2CIFG & TXRDYIFG) == 0); // TXバッファが空になるまで待機 | while ((I2CIFG & TXRDYIFG) == 0); // TXバッファが空になるまで待機 | ||
I2CDRB = *data++; | I2CDRB = *data++; // データを送信 | ||
} | } | ||
| 240行目: | 242行目: | ||
* <u>MSP430F149のI2Cクロック周波数は、I2CSCLH/I2CSCLLレジスタで調整可能である。</u> | * <u>MSP430F149のI2Cクロック周波数は、I2CSCLH/I2CSCLLレジスタで調整可能である。</u> | ||
<br> | <br> | ||
==== MB85RC256V / MB85RC512T (I2C) ==== | ==== MB85RC256V / MB85RC512T (I2C) ==== | ||
以下の例では、MSP430F149マイコンとMB85RC256VまたはMB85RC512T (FRAM) を使用してデータを読み書きしている。<br> | 以下の例では、MSP430F149マイコンとMB85RC256VまたはMB85RC512T (FRAM) を使用してデータを読み書きしている。<br> | ||
| 258行目: | 261行目: | ||
*: I2C通信のクロック周波数は約100[kHz]に設定している。 | *: I2C通信のクロック周波数は約100[kHz]に設定している。 | ||
*: FRAMはより高速な通信も可能であるが、MSP430F149マイコンの制限を考慮している。 | *: FRAMはより高速な通信も可能であるが、MSP430F149マイコンの制限を考慮している。 | ||
<br> | |||
[[ファイル:MSP430F149 FeRAM MB85RC Flowchart.jpg|フレームなし|中央]] | |||
<br> | <br> | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||