Ben Willems / Mbed 2 deprecated MLX90418_I2C_master_bwi

Dependencies:   mbed

Committer:
wuliqunyy
Date:
Fri Jan 22 14:06:54 2021 +0000
Revision:
5:daab0e0e67e2
Parent:
0:fe3c7dde9771
Child:
6:019ab407ac3c
i2c ready

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wuliqunyy 0:fe3c7dde9771 1 #include "mbed.h"
wuliqunyy 0:fe3c7dde9771 2 #include "i2c_mbed_fpga.h"
wuliqunyy 0:fe3c7dde9771 3
wuliqunyy 0:fe3c7dde9771 4
wuliqunyy 0:fe3c7dde9771 5 /** i2c write to slave DUT
wuliqunyy 0:fe3c7dde9771 6 *
wuliqunyy 0:fe3c7dde9771 7 * @param i2c_master specifies the i2c interface
wuliqunyy 0:fe3c7dde9771 8 * @param word is considered as 4byte char data
wuliqunyy 0:fe3c7dde9771 9 */
wuliqunyy 5:daab0e0e67e2 10 int i2c_mbed_fpga::i2c_word_write(char *word){
wuliqunyy 5:daab0e0e67e2 11 int ack;
wuliqunyy 5:daab0e0e67e2 12 ack = i2c_master.write(i2c_slave_addr, word, 4, 0);
wuliqunyy 5:daab0e0e67e2 13 wait_us(100);
wuliqunyy 5:daab0e0e67e2 14 return ack;
wuliqunyy 0:fe3c7dde9771 15 }
wuliqunyy 0:fe3c7dde9771 16
wuliqunyy 0:fe3c7dde9771 17
wuliqunyy 0:fe3c7dde9771 18 /** i2c read from slave DUT
wuliqunyy 0:fe3c7dde9771 19 *
wuliqunyy 0:fe3c7dde9771 20 * @param i2c_master specifies the i2c interface
wuliqunyy 0:fe3c7dde9771 21 * @param word is 4byte, first 2bytes as addr, the rest 2bytes to store data
wuliqunyy 0:fe3c7dde9771 22 */
wuliqunyy 5:daab0e0e67e2 23 int i2c_mbed_fpga::i2c_word_read(char *word){
wuliqunyy 5:daab0e0e67e2 24 int ack;
wuliqunyy 5:daab0e0e67e2 25 ack = i2c_master.write(i2c_slave_addr, word, 2, 1);
wuliqunyy 5:daab0e0e67e2 26 ack += i2c_master.read(i2c_slave_addr, word+2, 2, 0);
wuliqunyy 5:daab0e0e67e2 27 wait_us(100);
wuliqunyy 5:daab0e0e67e2 28 return (ack == 0) ? 0 : 1;
wuliqunyy 0:fe3c7dde9771 29 }
wuliqunyy 0:fe3c7dde9771 30
wuliqunyy 0:fe3c7dde9771 31
wuliqunyy 5:daab0e0e67e2 32 /** i2c enter key to open I2C window
wuliqunyy 0:fe3c7dde9771 33 *
wuliqunyy 0:fe3c7dde9771 34 * @param specifc key needed to enter i2c mode of DUT
wuliqunyy 0:fe3c7dde9771 35 */
wuliqunyy 5:daab0e0e67e2 36 int i2c_mbed_fpga::i2c_window_open(){
wuliqunyy 5:daab0e0e67e2 37 char i2cKey[4] = {0x13, 0xA4, 0xD0, 0xD0};
wuliqunyy 5:daab0e0e67e2 38 return i2c_word_write(i2cKey);
wuliqunyy 0:fe3c7dde9771 39 }
wuliqunyy 0:fe3c7dde9771 40
wuliqunyy 5:daab0e0e67e2 41 /** i2c enter key to Start the motor
wuliqunyy 0:fe3c7dde9771 42 *
wuliqunyy 0:fe3c7dde9771 43 * @param specifc key needed to enter i2c mode of DUT
wuliqunyy 0:fe3c7dde9771 44 */
wuliqunyy 5:daab0e0e67e2 45 int i2c_mbed_fpga::i2c_motor_start(){
wuliqunyy 5:daab0e0e67e2 46 char i2cKey[4] = {0x13, 0xA4, 0xCA, 0xFE};
wuliqunyy 5:daab0e0e67e2 47 return i2c_word_write(i2cKey);
wuliqunyy 0:fe3c7dde9771 48 }