test version 0.2

Dependents:   SC18IS606_Hello SC18IS606_EEPROM_access_test SC18IS606_OS6_Hello

Committer:
okano
Date:
Tue Jul 13 10:45:46 2021 +0000
Revision:
1:b44f801ac9f2
Parent:
0:d4d72026aaf3
Child:
2:4e64923032ad
class lib version 0.1 (only data send test had been done)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 0:d4d72026aaf3 1 /*
okano 0:d4d72026aaf3 2 * SC18IS606 library
okano 0:d4d72026aaf3 3 *
okano 0:d4d72026aaf3 4 * @author Akifumi (Tedd) OKANO, NXP Semiconductors
okano 0:d4d72026aaf3 5 * @version 0.1
okano 0:d4d72026aaf3 6 * @date 13-July-2021
okano 0:d4d72026aaf3 7 *
okano 1:b44f801ac9f2 8 * SC18IS606 is an "I2C-bus to SPI bridge"
okano 1:b44f801ac9f2 9 * http://www.nxp.com/ (product infomation page will be updated later)
okano 0:d4d72026aaf3 10 */
okano 0:d4d72026aaf3 11
okano 1:b44f801ac9f2 12 #include "mbed.h"
okano 1:b44f801ac9f2 13
okano 0:d4d72026aaf3 14 #ifndef MBED_SC18IS606
okano 0:d4d72026aaf3 15 #define MBED_SC18IS606
okano 0:d4d72026aaf3 16
okano 0:d4d72026aaf3 17
okano 0:d4d72026aaf3 18 /** SC18IS606 class
okano 0:d4d72026aaf3 19 *
okano 0:d4d72026aaf3 20 * This is a driver code for the SC18IS606: *
okano 0:d4d72026aaf3 21 * Example:
okano 0:d4d72026aaf3 22 * @code
okano 0:d4d72026aaf3 23 * #include "mbed.h"
okano 0:d4d72026aaf3 24 * @endcode
okano 0:d4d72026aaf3 25 */
okano 0:d4d72026aaf3 26
okano 0:d4d72026aaf3 27 class SC18IS606
okano 0:d4d72026aaf3 28 {
okano 0:d4d72026aaf3 29 public:
okano 0:d4d72026aaf3 30
okano 0:d4d72026aaf3 31 /** Function IDs */
okano 0:d4d72026aaf3 32 typedef enum {
okano 0:d4d72026aaf3 33 SPI_read_and_write = 0x00,
okano 0:d4d72026aaf3 34 Configure_SPI_Interface = 0xF0,
okano 0:d4d72026aaf3 35 Clear_Interrupt,
okano 0:d4d72026aaf3 36 Idle_mode,
okano 1:b44f801ac9f2 37 GPIO_Write = 0xF4,
okano 0:d4d72026aaf3 38 GPIO_Read,
okano 0:d4d72026aaf3 39 GPIO_Enable,
okano 0:d4d72026aaf3 40 GPIO_Configuration
okano 0:d4d72026aaf3 41 }
okano 0:d4d72026aaf3 42 FunctionID;
okano 0:d4d72026aaf3 43
okano 0:d4d72026aaf3 44 /** Create a SC18IS606 instance connected to specified I2C pins with specified address
okano 0:d4d72026aaf3 45 *
okano 0:d4d72026aaf3 46 * @param I2C_sda I2C-bus SDA pin
okano 0:d4d72026aaf3 47 * @param I2C_scl I2C-bus SCL pin
okano 0:d4d72026aaf3 48 */
okano 0:d4d72026aaf3 49 SC18IS606( PinName sda, PinName scl, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS );
okano 0:d4d72026aaf3 50
okano 0:d4d72026aaf3 51 /** Create a SC18IS606 instance connected to specified I2C pins with specified address
okano 0:d4d72026aaf3 52 *
okano 0:d4d72026aaf3 53 * @param i2c I2C object (instance)
okano 0:d4d72026aaf3 54 */
okano 1:b44f801ac9f2 55 SC18IS606( I2C &i2c, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS );
okano 0:d4d72026aaf3 56
okano 0:d4d72026aaf3 57 /** Destractor
okano 0:d4d72026aaf3 58 */
okano 1:b44f801ac9f2 59 ~SC18IS606();
okano 0:d4d72026aaf3 60
okano 0:d4d72026aaf3 61 /** Transfer (send and receive) data
okano 0:d4d72026aaf3 62 *
okano 0:d4d72026aaf3 63 * @param send_ptr Send_data_ptr
okano 0:d4d72026aaf3 64 * @param receive_ptr Receive_data_ptr
okano 0:d4d72026aaf3 65 * @param length Length of data array
okano 0:d4d72026aaf3 66 * @return dummy
okano 0:d4d72026aaf3 67 */
okano 0:d4d72026aaf3 68 int transfer( char *send_data_ptr, char *receive_data_ptr, int length );
okano 0:d4d72026aaf3 69
okano 0:d4d72026aaf3 70 /** Set congiguration
okano 0:d4d72026aaf3 71 *
okano 0:d4d72026aaf3 72 * @param data Donfig data byte
okano 0:d4d72026aaf3 73 * @return dummy
okano 0:d4d72026aaf3 74 */
okano 0:d4d72026aaf3 75 int config( FunctionID fid, char data );
okano 0:d4d72026aaf3 76
okano 1:b44f801ac9f2 77 /** Clear interrupt
okano 1:b44f801ac9f2 78 *
okano 1:b44f801ac9f2 79 * @return dummy
okano 1:b44f801ac9f2 80 */
okano 1:b44f801ac9f2 81 int clear_interrupt( void );
okano 1:b44f801ac9f2 82
okano 0:d4d72026aaf3 83 private:
okano 0:d4d72026aaf3 84
okano 0:d4d72026aaf3 85 enum {
okano 1:b44f801ac9f2 86 DEFAULT_I2C_SLAVE_ADDRESS = 0x50
okano 0:d4d72026aaf3 87 };
okano 0:d4d72026aaf3 88
okano 1:b44f801ac9f2 89 int init( void );
okano 1:b44f801ac9f2 90
okano 0:d4d72026aaf3 91 I2C *i2c_p;
okano 0:d4d72026aaf3 92 I2C &i2c;
okano 0:d4d72026aaf3 93 char device_address;
okano 0:d4d72026aaf3 94 };
okano 0:d4d72026aaf3 95
okano 0:d4d72026aaf3 96 #endif // end of "#ifndef MBED_SC18IS606"