test version 0.2
Dependents: SC18IS606_Hello SC18IS606_EEPROM_access_test SC18IS606_OS6_Hello
Diff: SC18IS606.h
- Revision:
- 0:d4d72026aaf3
- Child:
- 1:b44f801ac9f2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SC18IS606.h Tue Jul 13 08:33:47 2021 +0000 @@ -0,0 +1,94 @@ +/* + * SC18IS606 library + * + * @author Akifumi (Tedd) OKANO, NXP Semiconductors + * @version 0.1 + * @date 13-July-2021 + * + * SC18IS606 is a + * http://www.nxp.com/ + * + * RTC initializing part is ported from.. + * http://mbed.org/users/roen/notebook/real-time/ + */ + +#ifndef MBED_SC18IS606 +#define MBED_SC18IS606 + +#include "mbed.h" + +/** SC18IS606 class + * + * This is a driver code for the SC18IS606: * + * Example: + * @code + * #include "mbed.h" + * @endcode + */ + +#define DEFAULT_I2C_SLAVE_ADDRESS 0x50 + +class SC18IS606 +{ +public: + + /** Function IDs */ + typedef enum { + SPI_read_and_write = 0x00, + Configure_SPI_Interface = 0xF0, + Clear_Interrupt, + Idle_mode, + GPIO_Write = 0xF4, + GPIO_Read, + GPIO_Enable, + GPIO_Configuration + } + FunctionID; + + /** Create a SC18IS606 instance connected to specified I2C pins with specified address + * + * @param I2C_sda I2C-bus SDA pin + * @param I2C_scl I2C-bus SCL pin + */ + SC18IS606( PinName sda, PinName scl, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS ); + + /** Create a SC18IS606 instance connected to specified I2C pins with specified address + * + * @param i2c I2C object (instance) + */ + PCF2127( I2C &i2c, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS ); + + /** Destractor + */ + ~PCF2127(); + + /** Transfer (send and receive) data + * + * @param send_ptr Send_data_ptr + * @param receive_ptr Receive_data_ptr + * @param length Length of data array + * @return dummy + */ + int transfer( char *send_data_ptr, char *receive_data_ptr, int length ); + + /** Set congiguration + * + * @param data Donfig data byte + * @return dummy + */ + int config( FunctionID fid, char data ); + +private: + + enum { + DEFAULT_I2C_SLAVE_ADDRESS = 0x90 + }; + + I2C *i2c_p; + I2C &i2c; + char device_address; +}; + +} +; +#endif // end of "#ifndef MBED_SC18IS606"