RL78 -[9]- CS+_Lab3_I2C + MPU6050

MPU6050是InvenSense所出的六軸感測器(三軸陀螺儀+三軸加速計)

可以透過I2C/SPI來擷取資料,此次要使用它和RL78來實現I2C的動作

此模組版的電路已有一5v轉3.3v LDO及SDA/SCL pull high resistance

所以只要和RL78的SDA/SCL/Gnd連接,並供給5v電源即可使用

MPU6050的Device address為 1101_0000 (0xD0), AD0 = 0 <-此模組

                                      1101_0010 (0xD2), AD0 = 1

要讀取reg 75hWHO_AM_I, 預設數值為68h



此次實驗要透過RL78/G13 (R5F100LE)的P10/P11來和MPU6050連接

000


1.Code Generator (Design Tool)

Serial > SAU0 > Channel 0 > IIC00

001


clock rate為預設的100 kHz

003


點擊Generate Code產生對應檔案

004


2. Procedure Modify

在main.c下加入全域宣告

1
2
3
4
5
6
#define DevicdID	0xD0

uint8_t txd[10];
uint8_t rxd[10];
bit b_tx;// flag of send data finish
bit b_rx;// flag of receive data finish


main()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
    txd[0] = 0x75;
    b_tx = 0;
    b_rx = 1;
    
    R_IIC00_Master_Send(DevicdID,txd,1);
    while( !b_tx){
    };

    R_IIC00_Master_Receive(DevicdID,rxd,1);
    while( !b_rx){
    };

001


r_cg_serial_user.c

r_iic00_callback_master_receiveend()

1
2
extern bit b_rx;
b_rx = 1; 

002


r_iic00_callback_master_sendend()

1
2
    extern bit b_tx;
    b_tx = 1;

003


3. Build & Download

讀回數值 rxd[0] = 68h

002

留言