test code
Sample code for SC18IS606 class library
The SC18IS606 : I2C-bus to SPI bridge
Hello program operation sample on Mbed OS6 is available.
Import programSC18IS606_OS6_Hello
operation test on Mbed OS6
This is a "Hello" code for SC18IS606 class library. Showing how to send/receive data to/from SPI bus through this bridge chip.
How to wire the SC18IS606 (using evaluation board)
main.cpp@4:2759b8e6d5ec, 2021-07-14 (annotated)
- Committer:
- okano
- Date:
- Wed Jul 14 03:00:41 2021 +0000
- Revision:
- 4:2759b8e6d5ec
- Parent:
- 2:6d65d24e55ed
- Child:
- 6:741cdb9c5726
buffer write/read splitted
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 2:6d65d24e55ed | 1 | /* |
okano | 2:6d65d24e55ed | 2 | * SC18IS606 library |
okano | 2:6d65d24e55ed | 3 | * |
okano | 2:6d65d24e55ed | 4 | * @author Akifumi (Tedd) OKANO, NXP Semiconductors |
okano | 2:6d65d24e55ed | 5 | * @version 0.1 |
okano | 2:6d65d24e55ed | 6 | * @date 13-July-2021 |
okano | 2:6d65d24e55ed | 7 | * |
okano | 2:6d65d24e55ed | 8 | * SC18IS606 is an "I2C-bus to SPI bridge" |
okano | 2:6d65d24e55ed | 9 | * http://www.nxp.com/ (product infomation page will be updated later) |
okano | 2:6d65d24e55ed | 10 | */ |
okano | 2:6d65d24e55ed | 11 | |
okano | 0:45ec5ead6731 | 12 | #include "mbed.h" |
okano | 1:f0126d924ff8 | 13 | #include "SC18IS606.h" |
okano | 0:45ec5ead6731 | 14 | |
okano | 0:45ec5ead6731 | 15 | I2C i2c( p28, p27 ); |
okano | 1:f0126d924ff8 | 16 | InterruptIn int_line( p21 ); |
okano | 1:f0126d924ff8 | 17 | SC18IS606 bridge( i2c ); |
okano | 0:45ec5ead6731 | 18 | |
okano | 4:2759b8e6d5ec | 19 | #define I2C_FREQUENCY (400 * 1000) // Hz |
okano | 4:2759b8e6d5ec | 20 | #define SLAVE_SELECT_NUM 0 |
okano | 4:2759b8e6d5ec | 21 | #define DATA_LENGTH 256 |
okano | 4:2759b8e6d5ec | 22 | |
okano | 4:2759b8e6d5ec | 23 | void data_check( char *data, int length ); |
okano | 2:6d65d24e55ed | 24 | |
okano | 0:45ec5ead6731 | 25 | volatile int int_flag = false; |
okano | 0:45ec5ead6731 | 26 | |
okano | 0:45ec5ead6731 | 27 | void int_handler() |
okano | 0:45ec5ead6731 | 28 | { |
okano | 0:45ec5ead6731 | 29 | int_flag = true; |
okano | 0:45ec5ead6731 | 30 | } |
okano | 0:45ec5ead6731 | 31 | |
okano | 0:45ec5ead6731 | 32 | int main() |
okano | 0:45ec5ead6731 | 33 | { |
okano | 2:6d65d24e55ed | 34 | printf( "SC18IS606 Hello\r\n" ); |
okano | 4:2759b8e6d5ec | 35 | |
okano | 1:f0126d924ff8 | 36 | int_line.mode( PullUp ); |
okano | 1:f0126d924ff8 | 37 | int_line.fall( &int_handler ); |
okano | 4:2759b8e6d5ec | 38 | i2c.frequency( I2C_FREQUENCY ); |
okano | 0:45ec5ead6731 | 39 | |
okano | 4:2759b8e6d5ec | 40 | char snd_data[ DATA_LENGTH ]; |
okano | 4:2759b8e6d5ec | 41 | char rcv_data[ DATA_LENGTH ]; |
okano | 0:45ec5ead6731 | 42 | |
okano | 4:2759b8e6d5ec | 43 | for ( int i = 0; i < DATA_LENGTH; i++ ) { |
okano | 4:2759b8e6d5ec | 44 | snd_data[ i ] = i; |
okano | 0:45ec5ead6731 | 45 | } |
okano | 0:45ec5ead6731 | 46 | |
okano | 0:45ec5ead6731 | 47 | while(1) { |
okano | 4:2759b8e6d5ec | 48 | bridge.transfer( SLAVE_SELECT_NUM, snd_data, sizeof( snd_data ) ); |
okano | 0:45ec5ead6731 | 49 | |
okano | 0:45ec5ead6731 | 50 | while ( !int_flag ) |
okano | 0:45ec5ead6731 | 51 | ; |
okano | 4:2759b8e6d5ec | 52 | |
okano | 2:6d65d24e55ed | 53 | bridge.clear_interrupt(); |
okano | 0:45ec5ead6731 | 54 | int_flag = false; |
okano | 0:45ec5ead6731 | 55 | |
okano | 4:2759b8e6d5ec | 56 | bridge.read_buffer( rcv_data, sizeof( rcv_data ) ); |
okano | 4:2759b8e6d5ec | 57 | // data_check( rcv_data, DATA_LENGTH ); |
okano | 0:45ec5ead6731 | 58 | } |
okano | 0:45ec5ead6731 | 59 | } |
okano | 4:2759b8e6d5ec | 60 | |
okano | 4:2759b8e6d5ec | 61 | |
okano | 4:2759b8e6d5ec | 62 | void data_check( char *data, int length ) |
okano | 4:2759b8e6d5ec | 63 | { |
okano | 4:2759b8e6d5ec | 64 | for ( int i = 0; i < length; i++ ) { |
okano | 4:2759b8e6d5ec | 65 | if ( !(i % 16) ) |
okano | 4:2759b8e6d5ec | 66 | printf( "\r\n %02X :", i ); |
okano | 4:2759b8e6d5ec | 67 | printf( " %02X", data[ i ] ); |
okano | 4:2759b8e6d5ec | 68 | } |
okano | 4:2759b8e6d5ec | 69 | |
okano | 4:2759b8e6d5ec | 70 | } |