SBC側の移動覚NNストアが,MCU 側の IMUストアの imu_store_buffer を,I2C で読み出す。
IMUストアはこの通信の slave であり,imu_store_buffer にはアドレス 0x30 がついている。
- I2C slave の設定
ここでは,使用 I2C を I2C3 に, slave アドレスを 0x30 に設定する。
この設定の要点は,モータストアで設定した I2C1, 0x10 と,SBC 側から見て重複しないこと。
そして,IMUセンサにあてた I2C2 と重複しないこと。
この設定により,
I2C3 のハンドル (設定情報) hi2c3 が生成され,
IOwn Address レジスタに 0x30 が入る
typedef struct
{
‥‥
} I2C_HandleTypeDef;
I2C_HandleTypeDef hi2c3;
hi2c3.Instance = I2C3;
hi2c3.Init.OwnAddress1 = 0x30;
hi2c3.Init.ClockSpeed = 400000;
‥‥
そして,つぎが実現する:
SBC 側からの 0x30 への送信は,
STM32の I2C3回路が
これを自分宛と判断する
|