OSS-ECAL組込み方法

MCU(NXP i.MX RT1050)にEPROM 24xx256シリーズを1つ接続した例をもとにOSS-ECALの組み込む方法について説明します。青文字のコード部をMCUや製品プログラムに合わせてください。

下図のMCU設定は、NXP MCUXpresso SDKにて設定したラベル名回路設定です。

コマンドAPI関数の周期の設定

コマンドAPI関数のコール周期をuser_setting.hに設定します。
この例では、50ms周期です。

// Immediate definitions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define THREAD_OSS_ECAL_PERIOD  50U     // Thread period time[ms]
Device addressの設定

24xx256シリーズのA0、A1、A2 pinの端子レベルは、以下のコードのように user_setting.hに設定してください。
この例では、A0 pin=Low(b0=0), A1 pin=Low(b1=0), A2 pin=Low(b2=0)にした場合です。

// Device address Code bit2:A2, bit1:A1, bit0:A0
#define M24xx256              0b00000000
// I2C components address
#define I2C_ADR_24xx256       (( 0b00001010 << 3 ) | ( 0x07 & M24xx256 ))
送受信バッファ数の設定

送受信バッファ数は、以下のコードのように user_setting.hに設定してください。24xx256シリーズの送受信バッファ数は最大64Byteです。
この例では、送信バッファ数64Byte、受信バッファ数64Byteにした場合です。

// TX and RX buffer size(bytes) for 24xx256
// CAUTION : Set the minimum value among the following
// - Number of send/receive buffers used by the application
// - Number of send/receive buffers used by HAL
// - Number of 24xx256 send/receive Max 64 bytes
#define TX_N_24xx256            64U
#define RX_N_24xx256            64U
Write protectのMCU pinの設定

24xx256シリーズのWrite protect pinと接続しているMCU GPIO pinは、以下のコードのように user_setting.hに設定してください。
この例では、Write protect pinをBOARD_INITPINS_M24xx256_WP_PORTBOARD_INITPINS_M24xx256_WP_PINに接続した場合です。

// OSS-ECAL GPIO hard wiring
#define CMP_GPIO_NUM       1U      // OSS-ECAL GPIO components number
#define GPIO_24xx256_WP  BOARD_INITPINS_M24xx256_WP_PORT
#define PIN_24xx256_WP   BOARD_INITPINS_M24xx256_WP_PIN
I2C通信の設定

24xx256シリーズと通信するI2Cは、以下のコードのように user_setting.hに設定してください。
この例では、I2C通信 LPI2C1_PERIPHERALに接続し、ボーレート400kHzに設定した場合です。また、I2C通信を行うOSS-ECALを用いたコンポーネントは1つとしています。

// OSS-ECAL I2C components hard wiring
#define CMP_I2C_NUM             1U
#define I2C_HZ                  400000              // MCU I2C frequency
#define I2C_24xx256             LPI2C1_PERIPHERAL   // LPI2C peripheral base address
I2C通信リトライ数の設定

I2C通信リトライ数は、以下のコードのように user_setting.hに設定してください。
この例では、I2C通信エラーが発生した場合、3回リトライする設定にした場合です。

// I2C settings
#define I2C_RETRY               3U      // Retry times
Device addressおよびI2Cのテーブル登録

2項で設定したDevice addressと5項で設定したI2Cは、以下のコードのように user_setting.cに設定してください。

// HAL I2C object table for components
const stI2C_MCUX_OBJ tblI2C[ CMP_I2C_NUM ] =
{
        { e24xx256, I2C_ADR_24xx256, I2C_24xx256 }
};
Write protectのMCU pinのテーブル設定

4項で設定したWrite-protect のGPIOは、以下のコードのように user_setting.cに設定してください。

// HAL GPIO object table for components
const stGPIO_MCUX_OBJ tblGPIO[ CMP_GPIO_NUM ] =
{
        { e24xx256, GPIO_24xx256_WP, PIN_24xx256_WP }
};
OSS-ECAL Japanese
error: コンテンツは保護されている