I2C
Last updated
Last updated
I2C, which stands for Inter-Integrated Circuit, is a de-facto standard protocol for inter-chip communication widely used for attaching lower-speed peripheral ICs to processors and MCU in short-distance, intra-board communication.
Mirroring its approach with SPI, Binho Mission Control presents a streamlined yet potent interface to navigate the I2C protocol. The Command Panel is divided into three segments: operational settings, selection of target devices by address, and execution of I2C transactions.
The Settings segment allows users to adjust the following parameters:
Internal Pull-Up Resistors
On/Off
It's a switch button.
Clock Frequency
0.1 to 3.4 MHz
4 possible values (if Non-Standard Frequencies is Off)
Non-Standard Frequencies
On/Off
It's a switch button.
Notes:
Clock Frequency: The Binho Nova and Binho Supernova facilitate I2C bus clock frequencies ranging from 100 kHz to 3.4 MHz, covering all typical operating modes. Enabling the "Non-Standard Frequencies" option lets users input any desired clock frequency within this range.
Open Drain Configuration: I2C’s electronic-level execution employs an open-drain configuration, necessitating at least one pull-up resistor for the SDA and SCL pins. The app allows users to activate the in-built pull-up resistors in the Binho Nova.
The app simplifies device detection on the I2C bus. Clicking the "Address" textbox prompts the host adapter to scan for connected devices, listing them for easy selection. Alternatively, users can manually input an address (in hexadecimal).
Featured parameters and allowed values:
Address
Hexadecimal
Byte grouped.
Address format
7-bit, 8-bit.
Subaddress
Hexadecimal
Optional.
Notes:
Address Formats: Both 7-bit and 8-bit address lengths are accommodated. The former uses its initial bit to discern between read and write operations, while the latter assigns distinct addresses for both procedures.
Subaddress: This optional parameter can pinpoint a specific device register or a memory cell.
This segment is dedicated to I2C read/write transfers:
Write Buffer: Users enter the data payload meant for the target device here, in hexadecimal format grouped by byte packets. The WRITE button confirms the transaction.
Read Size: Specifies the byte amount to be retrieved from the target device. Initiating a read operation is as simple as pressing the READ button.
The Onsemi CAT24C512 is an I2C EEPROM 512 kb memory that supports Standard, Fast, and Fast-Plus modes. To our knowledge, it lacks pull-up resistors for its SCL and SDA pins, se we activate them via the I2C command panel. We also select a clock frequency of 400 kHz (Fast mode).
When we place the cursor within the "Address" input box, the app automatically detects the memory at address 0x50. We write the payload 0xDE.AD.BE.EF to the subaddress 0xAB.CD. Subsequently, altering the subaddress to 0xAB.CB and requesting an 8-byte read yields the result 0xFF.FF.DE.AD.BE.EF.FF.FF – precisely what we anticipated based on the datasheet's default register values.