Cap Extend click is a mikroBUS add-on board with a SEMTECH SX8633 low power, capacitive button touch controller. It has 12 pins for connecting capacitive inputs (either touch-buttons or proximity sensors). Any sort of conductive object can be used as an input. Additional 8 GPIO pins, available on the side-edges of the board, can be used as LED drivers. The SX8633 IC integrates a 10 bit ADC – a resolution high enough to support a wide variety of touch pad sizes and shapes to be used with the click. Cap Extend click communicates with the target MCU through the mikroBUS™ I2C interface, with additional functionality provided by RST and INT pins. Designed to use a 3.3V power supply only.
Type | Proximity |
Applications | Replacement of mechanical buttons with capacitive inputs (both in consumer products or industrial instrumentation) |
On-board modules | SEMTECH SX8633 |
Key Features | 12 pins for connecting capacitive inputs, 8 GPIO pins |
Key Benefits | Can be used for proximity sensing as well as capacitive buttons, Capable of sensing through overlay materials (up to 5mm thick) |
Interface | GPIO,I2C |
Input Voltage | 3.3V |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
The SX8633 IC has a 10 bit ADC and up to 100pF offset capacitance compensation at full sensitivity. This high resolution enable it to support a wide variety of touch pad sizes and shapes to be used with the click. An overlay material up to 5mm thick can also be used, simplifying integration.
The 8 GPIO pins on Cap Extend click can be used as LED drivers. An interesting application that combines capacitive sensing with LED drivers is to have LEDs that slowly fade in as a user’s finger approaches.
The LED fading effect can be initiated using the SX8633 autolight mode.
This example shows how you can setup Cap Extend click very quickly and easily, and show which surface you are touching through the GPIOs as LEDs.
1 #include <stdint.h> 2 #include "capextend_hw.h" 3 4 void system_init( void ); 5 6 sbit RST at GPIOC_ODR.B2; 7 8 //Global Declatations 9 uint8_t address = 0x2B; 10 uint8_t my_buffer = 0; 11 12 void main() 13 { 14 //Local Decalartions 15 uint8_t msb = 0; 16 uint8_t lsb = 0; 17 char uart_text[20] = { 0 }; 18 19 system_init(); 20 Delay_ms(100); 21 22 GPIOD_ODR = 0xFF; 23 24 while(1) 25 { 26 msb = capextend_read_msb_buttons(); 27 lsb = capextend_read_lsb_buttons(); 28 GPIOD_ODR = ( lsb | ( msb << 8 ) ); 29 30 } //While 31 32 } //Main 33 34 void system_init( void ) 35 { 36 //GPIOs 37 GPIO_Digital_Output( &GPIOC_BASE, _GPIO_PINMASK_2 ); 38 GPIO_Digital_Output( &GPIOD_BASE, _GPIO_PINMASK_ALL ); 39 40 //Toggle Reset Pin 41 RST = 0; 42 Delay_ms(50); 43 RST = 1; 44 Delay_ms(200); 45 46 //Initialize UART 47 UART1_Init( 9600 ); 48 Delay_ms(100); 49 UART1_Write_Text( "UART Initializedrn" ); 50 51 //Initialize I2C 52 I2C1_Init_Advanced( 400000, &_GPIO_MODULE_I2C1_PB67 ); 53 UART1_Write_Text( "I2C Initializedrn" ); 54 55 //Initialize Cap Extend 56 capextend_init( address ); 57 UART1_Write_Text( "Cap Extend Initializedrn" ); 58 59 }
Code examples that demonstrate the usage of Cap Extend click with MikroElektronika hardware, written for mikroC for ARM, AVR, dsPIC, FT90x, dsPIC, PIC and PIC32 are available on Libstock