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 75h的WHO_AM_I, 預設數值為68h
此次實驗要透過RL78/G13 (R5F100LE)的P10/P11來和MPU6050連接
1.Code Generator (Design Tool)
Serial > SAU0 > Channel 0 > IIC00
clock rate為預設的100 kHz
點擊Generate Code產生對應檔案
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){ }; |
r_cg_serial_user.c
r_iic00_callback_master_receiveend()
1 2 |
extern bit b_rx; b_rx = 1; |
r_iic00_callback_master_sendend()
1 2 |
extern bit b_tx; b_tx = 1; |
3. Build & Download
讀回數值 rxd[0] = 68h
留言
張貼留言