{"product_id":"mikroe-3276","title":"LLC-I2C Click","description":"\u003csection id=\"info-description\"\u003e\n\u003cp\u003e\u003cstrong\u003eHow does it work?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eLLC I2C click does not use an integrated circuit, as already mentioned. With ICs avoided completely, there are some benefits gained: the overall cost of the LLC circuit is greatly reduced, a more robust MOSFET solution reduces the failure rate, and when powered off, both the low voltage and the high voltage sides are isolated from one another (by non-conductive MOSFETs). This type of circuit is sometimes referred to as a level shifting or level translating circuit and it is often necessary when the I2C slave device (typically a sensor IC) uses different logic voltage levels for the I2C communication than the master device, which is a host microcontroller in most cases. The conversion of this circuitry is bi-directional, which makes it suitable to be used with the I2C communication protocol.\u003c\/p\u003e\n\n\u003cp\u003e\u003cimg alt=\"LLC-I2C Click\" src=\"https:\/\/www.mikroe.com\/img\/images\/llc-i2c-click-inner-img.jpg\"\u003e\u003c\/p\u003e\n\n\u003cp\u003eThe I2C protocol was first introduced by NXP Semiconductors (formerly Philips Semiconductors), in 1982. They also introduced an application note that explains the operation of the LLC circuit in more details. The circuit is divided into \u003cem\u003elow-side\u003c\/em\u003e and \u003cem\u003ehigh-side\u003c\/em\u003e sections for future reference, although the circuit is symmetrical and can be used in both directions.\u003c\/p\u003e\n\n\u003cp\u003eWhen there is no communication going on, both gates and sources of the MOSFETs are pulled up to their specific reference voltage levels. This will turn OFF both MOSFETs since there is no gate-source voltage difference (e.g. V\u003csub\u003eG\u003c\/sub\u003e=V\u003csub\u003eS\u003c\/sub\u003e=V\u003csub\u003eSL\u003c\/sub\u003e).\u003c\/p\u003e\n\n\u003cp\u003eSince the I2C is operated by asserting its bus lines to a LOW logic level, when the source terminal of the MOSFET on one side (e.g. high-side) is driven to a LOW logic level, its V\u003csub\u003eGS\u003c\/sub\u003e potential will rise since the gate voltage is fixed. When the V\u003csub\u003eGS\u003c\/sub\u003e reaches the threshold voltage (1.2V typically for the used transistors), the MOSFET will turn ON, conducting current through the body diode of the opposite-side (low-side) MOSFET, which will become directly polarized. This mechanism can be used to convert signal levels in both directions, within the whole operating range of the used MOSFETs.\u003c\/p\u003e\n\n\u003cp\u003eThe reference voltage for the high-side can be selected by using the SMD jumper labeled as VCC SEL. The pull-up voltage for the high-side can be selected from the mikroBUS™ power rails, so it can be either 3.3V or 5V. For the low-side, an arbitrary reference voltage can be applied to the VSL pin of the J1 header, respecting the maximum voltage rating. J1 is the standard, 2.54mm pin-header. The low-side I2C bus pins are also routed to the J1 header, allowing an external device to be connected (using the standard wire-jumpers). As already mentioned, the low-side can actually use higher voltage levels than the master, but in most usage scenarios, it will be lower than the master, thus the terminology.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eSpecifications\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003csection id=\"data-sheets\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eType\u003c\/td\u003e\n\u003ctd\u003ePort expander\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eApplications\u003c\/td\u003e\n\u003ctd\u003eThe I2C logic level conversion circuit has its application in many different projects, for the logic voltage level matching between the I2C master, and the I2C slave device\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eKey Features\u003c\/td\u003e\n\u003ctd\u003eVery low cost achieved using only passive elements, and four MOSFETs, ability to use an arbitrary voltage level conversion in the range from 1.2V up to 10V\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eInterface\u003c\/td\u003e\n\u003ctd\u003eI2C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eInput Voltage\u003c\/td\u003e\n\u003ctd\u003e3.3V or 5V\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eClick board size\u003c\/td\u003e\n\u003ctd\u003eM (42.9 x 25.4 mm)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/section\u003e\n\n\u003cp\u003e\u003cstrong\u003ePinout diagram\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eThis table shows how the pinout on \u003cstrong\u003eLLC I2C Click\u003c\/strong\u003e corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).\u003c\/p\u003e\n\n\u003ctable style=\"width:549px\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eNotes\u003c\/th\u003e\n\u003cth\u003ePin\u003c\/th\u003e\n\u003cth colspan=\"4\"\u003e\u003ca href=\"http:\/\/www.mikroe.com\/mikrobus\/\"\u003e\u003cimg alt=\"Mikrobus logo.png\" src=\"https:\/\/cdn.mikroe.com\/img\/mikrobus\/mikroBUS-logo-black.png\"\u003e\u003c\/a\u003e\u003c\/th\u003e\n\u003cth\u003ePin\u003c\/th\u003e\n\u003cth\u003eNotes\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e1\u003c\/td\u003e\n\u003ctd\u003eAN\u003c\/td\u003e\n\u003ctd\u003ePWM\u003c\/td\u003e\n\u003ctd\u003e16\u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e2\u003c\/td\u003e\n\u003ctd\u003eRST\u003c\/td\u003e\n\u003ctd\u003eINT\u003c\/td\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e3\u003c\/td\u003e\n\u003ctd\u003eCS\u003c\/td\u003e\n\u003ctd\u003eRX\u003c\/td\u003e\n\u003ctd\u003e14\u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003eSCK\u003c\/td\u003e\n\u003ctd\u003eTX\u003c\/td\u003e\n\u003ctd\u003e13\u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e5\u003c\/td\u003e\n\u003ctd\u003eMISO\u003c\/td\u003e\n\u003ctd\u003eSCL\u003c\/td\u003e\n\u003ctd\u003e12\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eSCL\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eI2C Clock\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003eNC\u003c\/td\u003e\n\u003ctd\u003e6\u003c\/td\u003e\n\u003ctd\u003eMOSI\u003c\/td\u003e\n\u003ctd\u003eSDA\u003c\/td\u003e\n\u003ctd\u003e11\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eSDA\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eI2C Data\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePower supply\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e3V3\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e7\u003c\/td\u003e\n\u003ctd\u003e3.3V\u003c\/td\u003e\n\u003ctd\u003e5V\u003c\/td\u003e\n\u003ctd\u003e10\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e5V\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003ePower supply\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGround\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eGND\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e8\u003c\/td\u003e\n\u003ctd\u003eGND\u003c\/td\u003e\n\u003ctd\u003eGND\u003c\/td\u003e\n\u003ctd\u003e9\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eGND\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eGround\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003cp\u003e\u003cbr\u003e\n\u003cstrong\u003eOnboard settings and indicators\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLabel\u003c\/th\u003e\n\u003cth\u003eName\u003c\/th\u003e\n\u003cth\u003eDefault\u003c\/th\u003e\n\u003cth\u003eDescription\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePWR\u003c\/td\u003e\n\u003ctd\u003ePWR\u003c\/td\u003e\n\u003ctd\u003e-\u003c\/td\u003e\n\u003ctd\u003ePower LED indicator\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eVCC SEL\u003c\/td\u003e\n\u003ctd\u003eVCC SEL\u003c\/td\u003e\n\u003ctd\u003eLeft\u003c\/td\u003e\n\u003ctd\u003eLogic voltage level selection (master): left position 3.3V, right position 5V\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eJ1\u003c\/td\u003e\n\u003ctd\u003e-\u003c\/td\u003e\n\u003ctd\u003e-\u003c\/td\u003e\n\u003ctd\u003eI2C bus with the converted voltage levels (I2C slave)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003cp\u003e\u003cstrong\u003eSoftware support\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eWe provide a library for the LLC I2C click on our \u003ca href=\"https:\/\/libstock.mikroe.com\/projects\/view\/2611\/i2c-llc-click\"\u003eLibStock\u003c\/a\u003e page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eLibrary Description\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eThe library contains functions for starting, writing data to I2C wires and reading data from I2C wires.\u003c\/p\u003e\n\n\u003cp\u003eKey functions:\u003c\/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003ccode\u003evoid i2cllc_start()\u003c\/code\u003e - The function executes start condition on I2C wires.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003ccode\u003evoid i2cllc_write(uint8_t slaveAddress, uint8_t *pBuf, uint16_t nBytes, uint8_t endMode)\u003c\/code\u003e - The function should execute write sequence on I2C wires.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003ccode\u003evoid i2cllc_read(uint8_t slaveAddress, uint8_t *pBuf, uint16_t nBytes, uint8_t endMode)\u003c\/code\u003e - The function should execute read sequence on I2C wires.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eExamples description\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eThe application is composed of the three sections :\u003c\/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eSystem Initialization - Initializes I2C module\u003c\/li\u003e\n\u003cli\u003eApplication Initialization - Initialization driver init\u003c\/li\u003e\n\u003cli\u003eApplication Task - (code snippet) - Reads the temperature from the Thermo 7 click board and logs data to UART.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e The start configuration chip is required at the beginning of each program so that the chip wakes up and prepares for operation and measurement. What is included and set in the start-up function can be viewed in the help file.\u003c\/p\u003e\n\n\u003cpre\u003e\nvoid applicationTask()\n{\n\/\/ Thermo 7 measurement Temperature\nuint8_t writeReg[ 1 ];\nuint8_t readReg[ 2 ] = {0};\n\nfloat Temp_msb;\nuint8_t Temp_lsb;\nchar tempText[ 50 ];\n\nwriteReg[ 0 ] = 0x00;\ni2cllc_start();\ni2cllc_write( 0x48, \u0026amp;writeReg[0], 1, _I2CLLC_END_MODE_RESTART );\ni2cllc_read( 0x48, \u0026amp;readReg[0], 2, _I2CLLC_END_MODE_STOP );\n\nTemp_msb = readReg[ 0 ];\nTemp_lsb = readReg[ 1 ] \u0026amp; 0xF0;\n\nif( temp_lsb \u0026amp; 0x80 ) Temp_msb += 0.50;\nif( temp_lsb \u0026amp; 0x40 ) Temp_msb += 0.25;\nif( temp_lsb \u0026amp; 0x20 ) Temp_msb += 0.125;\nif( temp_lsb \u0026amp; 0x10 ) Temp_msb += 0.0625;\n\nFloatToStr(Temp_msb, tempText);\nmikrobus_logWrite(\" Ambient temperature : \", _LOG_TEXT );\nmikrobus_logWrite(tempText, _LOG_TEXT);\nmikrobus_logWrite(\" C\", _LOG_LINE);\nDelay_ms( 1000 );\n\n}\u003c\/pre\u003e\n\n\u003cp\u003e\u003cbr\u003e\nThe full application code, and ready to use projects can be found on our \u003ca href=\"https:\/\/libstock.mikroe.com\/projects\/view\/2611\/i2c-llc-click\"\u003eLibStock \u003c\/a\u003epage.\u003c\/p\u003e\n\n\u003cp\u003eOther mikroE Libraries used in the example:\u003c\/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eI2C\u003c\/code\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eAdditional notes and information\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eDepending on the development board you are using, you may need \u003ca href=\"https:\/\/shop.mikroe.com\/usb-uart-click\"\u003eUSB UART click\u003c\/a\u003e, \u003ca href=\"https:\/\/shop.mikroe.com\/usb-uart-2-click\"\u003eUSB UART 2 click\u003c\/a\u003e or \u003ca href=\"https:\/\/shop.mikroe.com\/rs232-click\"\u003eRS232 click\u003c\/a\u003e to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika \u003ca href=\"https:\/\/shop.mikroe.com\/compilers\"\u003ecompilers\u003c\/a\u003e, or any other terminal application of your choice, can be used to read the message.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003emikroSDK\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eThis click board is supported with \u003ca href=\"https:\/\/www.mikroe.com\/mikrosdk\"\u003emikroSDK\u003c\/a\u003e - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the \u003ca href=\"https:\/\/libstock.mikroe.com\/projects\/view\/2249\/mikrosdk\"\u003eLibStock\u003c\/a\u003e and installed for the compiler you are using.\u003cbr\u003e\n\u003cbr\u003e\nFor more information about mikroSDK, visit the \u003ca href=\"https:\/\/www.mikroe.com\/mikrosdk\"\u003eofficial page\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection id=\"info-downloads\"\u003e\n\u003cp\u003e\u003cstrong\u003eDownloads\u003c\/strong\u003e\u003c\/p\u003e\n\u003ca href=\"http:\/\/www.mikroe.com\/mikrobus\/\" target=\"_blank\"\u003e mikroBUS™ Standard specification \u003c\/a\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/libstock.mikroe.com\/projects\/view\/2249\/mikrosdk\" target=\"_blank\"\u003e LibStock: mikroSDK \u003c\/a\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/download.mikroe.com\/documents\/brochure\/click-brochure-avg-2018-web.pdf\"\u003e Click board catalog\u003c\/a\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/download.mikroe.com\/documents\/add-on-boards\/click\/llc-i2c\/llc-i2c-click-schematic-v100.pdf\"\u003e LLC-I2C Click Schematic\u003c\/a\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/download.mikroe.com\/documents\/2d-3d-files\/llc-i2c-click-2d-and-3d-files-v100.zip\"\u003e LLC-I2C Click 2D and 3D files\u003c\/a\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/libstock.mikroe.com\/projects\/view\/2611\/llc-i2c-click\" target=\"_blank\"\u003e LLC-I2C Click Libstock \u003c\/a\u003e\u003c\/p\u003e\n\u003c\/section\u003e","brand":"MikroElektronika","offers":[{"title":"Default Title","offer_id":47400869855515,"sku":"MIKROE-3276","price":949.0,"currency_code":"INR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0676\/3325\/0587\/products\/llc-i2c-click-thickbox_default-2ihUNAJPapg8DJ.jpg?v=1701959568","url":"https:\/\/mgsl.in\/products\/mikroe-3276","provider":"MG Super Labs","version":"1.0","type":"link"}