test version 0.2

Dependents:   SC18IS606_Hello SC18IS606_EEPROM_access_test SC18IS606_OS6_Hello

Files at this revision

API Documentation at this revision

Comitter:
okano
Date:
Tue Jul 13 08:33:47 2021 +0000
Child:
1:b44f801ac9f2
Commit message:
trial0

Changed in this revision

SC18IS606.c Show annotated file Show diff for this revision Revisions of this file
SC18IS606.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SC18IS606.c	Tue Jul 13 08:33:47 2021 +0000
@@ -0,0 +1,64 @@
+/*
+ *  SC18IS606 library
+ *
+ *  @author     Akifumi (Tedd) OKANO, NXP Semiconductors
+ *  @version    0.1
+ *  @date       13-Jul-2021
+ *
+ *  SC18IS606 is a 
+ *  http://www.nxp.com/
+ */
+
+#include    "mbed.h"
+#include    "SC18IS606.h"
+
+SC18IS606::SC18IS606( PinName sda, PinName sdl, char i2c_address )
+    : i2c_p( new I2C( sda, sdl ) ), i2c( *i2c_p ), device_address( i2c_address )
+{
+    init();
+}
+
+SC18IS606::SC18IS606( I2C &i2c_, i2c_address )
+    : i2c_p( NULL ), i2c( i2c_ ), device_address( i2c_address )
+{
+    init();
+}
+
+SC18IS606::~SC18IS606()
+{
+    if ( NULL != i2c_p )
+        delete  i2c_p;
+}
+
+int SC18IS606::init( void )
+{
+    //  dummy
+}
+
+
+int SC18IS606::transfer( char *send_data_ptr, char *receive_data_ptr, int length )
+{
+    char    *p
+    p   = new char[ length + 1 ];
+    
+    *p  = SPI_read_and_write;
+    memcpy( p + 1, send_data_ptr, length );
+    i2c.write( device_address, p, length + 1 );
+    delete[]    p;
+    
+    if ( receive_data_ptr )
+        i2c.read( device_address, receive_data_ptr, length );
+    
+    return 0;   //  dummy
+}
+
+
+int SC18IS606::config( FunctionID fid, char data )
+{
+    char    s[ 2 ];
+    s[ 0 ]  = fid;
+    s[ 1 ]  = data;
+    i2c.write( device_address, s, sizeof( s ) );
+    
+    return 0;   //  dummy
+}
--- /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"