test version 0.2
Dependents: SC18IS606_Hello SC18IS606_EEPROM_access_test SC18IS606_OS6_Hello
SC18IS606.h@0:d4d72026aaf3, 2021-07-13 (annotated)
- Committer:
- okano
- Date:
- Tue Jul 13 08:33:47 2021 +0000
- Revision:
- 0:d4d72026aaf3
- Child:
- 1:b44f801ac9f2
trial0
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:d4d72026aaf3 | 8 | * SC18IS606 is a |
okano | 0:d4d72026aaf3 | 9 | * http://www.nxp.com/ |
okano | 0:d4d72026aaf3 | 10 | * |
okano | 0:d4d72026aaf3 | 11 | * RTC initializing part is ported from.. |
okano | 0:d4d72026aaf3 | 12 | * http://mbed.org/users/roen/notebook/real-time/ |
okano | 0:d4d72026aaf3 | 13 | */ |
okano | 0:d4d72026aaf3 | 14 | |
okano | 0:d4d72026aaf3 | 15 | #ifndef MBED_SC18IS606 |
okano | 0:d4d72026aaf3 | 16 | #define MBED_SC18IS606 |
okano | 0:d4d72026aaf3 | 17 | |
okano | 0:d4d72026aaf3 | 18 | #include "mbed.h" |
okano | 0:d4d72026aaf3 | 19 | |
okano | 0:d4d72026aaf3 | 20 | /** SC18IS606 class |
okano | 0:d4d72026aaf3 | 21 | * |
okano | 0:d4d72026aaf3 | 22 | * This is a driver code for the SC18IS606: * |
okano | 0:d4d72026aaf3 | 23 | * Example: |
okano | 0:d4d72026aaf3 | 24 | * @code |
okano | 0:d4d72026aaf3 | 25 | * #include "mbed.h" |
okano | 0:d4d72026aaf3 | 26 | * @endcode |
okano | 0:d4d72026aaf3 | 27 | */ |
okano | 0:d4d72026aaf3 | 28 | |
okano | 0:d4d72026aaf3 | 29 | #define DEFAULT_I2C_SLAVE_ADDRESS 0x50 |
okano | 0:d4d72026aaf3 | 30 | |
okano | 0:d4d72026aaf3 | 31 | class SC18IS606 |
okano | 0:d4d72026aaf3 | 32 | { |
okano | 0:d4d72026aaf3 | 33 | public: |
okano | 0:d4d72026aaf3 | 34 | |
okano | 0:d4d72026aaf3 | 35 | /** Function IDs */ |
okano | 0:d4d72026aaf3 | 36 | typedef enum { |
okano | 0:d4d72026aaf3 | 37 | SPI_read_and_write = 0x00, |
okano | 0:d4d72026aaf3 | 38 | Configure_SPI_Interface = 0xF0, |
okano | 0:d4d72026aaf3 | 39 | Clear_Interrupt, |
okano | 0:d4d72026aaf3 | 40 | Idle_mode, |
okano | 0:d4d72026aaf3 | 41 | GPIO_Write = 0xF4, |
okano | 0:d4d72026aaf3 | 42 | GPIO_Read, |
okano | 0:d4d72026aaf3 | 43 | GPIO_Enable, |
okano | 0:d4d72026aaf3 | 44 | GPIO_Configuration |
okano | 0:d4d72026aaf3 | 45 | } |
okano | 0:d4d72026aaf3 | 46 | FunctionID; |
okano | 0:d4d72026aaf3 | 47 | |
okano | 0:d4d72026aaf3 | 48 | /** Create a SC18IS606 instance connected to specified I2C pins with specified address |
okano | 0:d4d72026aaf3 | 49 | * |
okano | 0:d4d72026aaf3 | 50 | * @param I2C_sda I2C-bus SDA pin |
okano | 0:d4d72026aaf3 | 51 | * @param I2C_scl I2C-bus SCL pin |
okano | 0:d4d72026aaf3 | 52 | */ |
okano | 0:d4d72026aaf3 | 53 | SC18IS606( PinName sda, PinName scl, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS ); |
okano | 0:d4d72026aaf3 | 54 | |
okano | 0:d4d72026aaf3 | 55 | /** Create a SC18IS606 instance connected to specified I2C pins with specified address |
okano | 0:d4d72026aaf3 | 56 | * |
okano | 0:d4d72026aaf3 | 57 | * @param i2c I2C object (instance) |
okano | 0:d4d72026aaf3 | 58 | */ |
okano | 0:d4d72026aaf3 | 59 | PCF2127( I2C &i2c, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS ); |
okano | 0:d4d72026aaf3 | 60 | |
okano | 0:d4d72026aaf3 | 61 | /** Destractor |
okano | 0:d4d72026aaf3 | 62 | */ |
okano | 0:d4d72026aaf3 | 63 | ~PCF2127(); |
okano | 0:d4d72026aaf3 | 64 | |
okano | 0:d4d72026aaf3 | 65 | /** Transfer (send and receive) data |
okano | 0:d4d72026aaf3 | 66 | * |
okano | 0:d4d72026aaf3 | 67 | * @param send_ptr Send_data_ptr |
okano | 0:d4d72026aaf3 | 68 | * @param receive_ptr Receive_data_ptr |
okano | 0:d4d72026aaf3 | 69 | * @param length Length of data array |
okano | 0:d4d72026aaf3 | 70 | * @return dummy |
okano | 0:d4d72026aaf3 | 71 | */ |
okano | 0:d4d72026aaf3 | 72 | int transfer( char *send_data_ptr, char *receive_data_ptr, int length ); |
okano | 0:d4d72026aaf3 | 73 | |
okano | 0:d4d72026aaf3 | 74 | /** Set congiguration |
okano | 0:d4d72026aaf3 | 75 | * |
okano | 0:d4d72026aaf3 | 76 | * @param data Donfig data byte |
okano | 0:d4d72026aaf3 | 77 | * @return dummy |
okano | 0:d4d72026aaf3 | 78 | */ |
okano | 0:d4d72026aaf3 | 79 | int config( FunctionID fid, char data ); |
okano | 0:d4d72026aaf3 | 80 | |
okano | 0:d4d72026aaf3 | 81 | private: |
okano | 0:d4d72026aaf3 | 82 | |
okano | 0:d4d72026aaf3 | 83 | enum { |
okano | 0:d4d72026aaf3 | 84 | DEFAULT_I2C_SLAVE_ADDRESS = 0x90 |
okano | 0:d4d72026aaf3 | 85 | }; |
okano | 0:d4d72026aaf3 | 86 | |
okano | 0:d4d72026aaf3 | 87 | I2C *i2c_p; |
okano | 0:d4d72026aaf3 | 88 | I2C &i2c; |
okano | 0:d4d72026aaf3 | 89 | char device_address; |
okano | 0:d4d72026aaf3 | 90 | }; |
okano | 0:d4d72026aaf3 | 91 | |
okano | 0:d4d72026aaf3 | 92 | } |
okano | 0:d4d72026aaf3 | 93 | ; |
okano | 0:d4d72026aaf3 | 94 | #endif // end of "#ifndef MBED_SC18IS606" |